Files
VOIDRPG/Assets/86 - ScriptableObjects/Generic/World/WorldAreaGeneratorSettings.cs
T
2026-07-09 21:33:33 +02:00

62 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
using VOID.Generic.World;
namespace VOID.ScriptableObjects.World
{
[Serializable]
public class WorldAreaGeneratorSettings
{
[RequiredListLength(MinLength = 1)]
public List<ComplexArea> group;
[HorizontalGroup("generic")]
[LabelWidth(125)]
public bool useRotatedVariants = true;
[HorizontalGroup("generic")]
[MinValue(0)]
[LabelWidth(75)]
public float weight = 1f;
[HorizontalGroup("limit")]
[OnValueChanged(nameof(OnIsLimitedChanged))]
[LabelWidth(125)]
public bool isLimited;
[HorizontalGroup("limit")]
[MinValue(1)]
[EnableIf(nameof(isLimited))]
[LabelWidth(75)]
public int limit = 9999;
[HorizontalGroup("distance")]
[OnValueChanged(nameof(OnRequireDistanceChanged))]
[LabelWidth(125)]
public bool requireDistance;
[HorizontalGroup("distance")]
[EnableIf(nameof(requireDistance))]
[MinMaxSlider(1, 999, true)]
[LabelWidth(75)]
public Vector2Int distance = new(1, 999);
private void OnIsLimitedChanged()
{
if (!isLimited)
{
limit = 9999;
}
}
private void OnRequireDistanceChanged()
{
if (!requireDistance)
{
distance = new Vector2Int(1, 999);
}
}
}
}