First commit for private source control. Older commits available on Github.
This commit is contained in:
120
Assets/Plugins/NaughtyAttributes/Scripts/Test/EnableIfTest.cs
Normal file
120
Assets/Plugins/NaughtyAttributes/Scripts/Test/EnableIfTest.cs
Normal file
@@ -0,0 +1,120 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NaughtyAttributes.Test
|
||||
{
|
||||
public class EnableIfTest : MonoBehaviour
|
||||
{
|
||||
public bool enable1;
|
||||
public bool enable2;
|
||||
public EnableIfEnum enum1;
|
||||
[EnumFlags] public EnableIfEnumFlag enum2;
|
||||
|
||||
[EnableIf(EConditionOperator.And, "enable1", "enable2")]
|
||||
[ReorderableList]
|
||||
public int[] enableIfAll;
|
||||
|
||||
[EnableIf(EConditionOperator.Or, "enable1", "enable2")]
|
||||
[ReorderableList]
|
||||
public int[] enableIfAny;
|
||||
|
||||
[EnableIf("enum1", EnableIfEnum.Case0)]
|
||||
[ReorderableList]
|
||||
public int[] enableIfEnum;
|
||||
|
||||
[EnableIf("enum2", EnableIfEnumFlag.Flag0)]
|
||||
[ReorderableList]
|
||||
public int[] enableIfEnumFlag;
|
||||
|
||||
[EnableIf("enum2", EnableIfEnumFlag.Flag0 | EnableIfEnumFlag.Flag1)]
|
||||
[ReorderableList]
|
||||
public int[] enableIfEnumFlagMulti;
|
||||
|
||||
public EnableIfNest1 nest1;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class EnableIfNest1
|
||||
{
|
||||
public bool enable1;
|
||||
public bool enable2;
|
||||
public EnableIfEnum enum1;
|
||||
[EnumFlags] public EnableIfEnumFlag enum2;
|
||||
public bool Enable1 { get { return enable1; } }
|
||||
public bool Enable2 { get { return enable2; } }
|
||||
public EnableIfEnum Enum1 { get { return enum1; } }
|
||||
public EnableIfEnumFlag Enum2 { get { return enum2; } }
|
||||
|
||||
[EnableIf(EConditionOperator.And, "Enable1", "Enable2")]
|
||||
[AllowNesting] // Because it's nested we need to explicitly allow nesting
|
||||
public int enableIfAll;
|
||||
|
||||
[EnableIf(EConditionOperator.Or, "Enable1", "Enable2")]
|
||||
[AllowNesting] // Because it's nested we need to explicitly allow nesting
|
||||
public int enableIfAny;
|
||||
|
||||
[EnableIf("Enum1", EnableIfEnum.Case1)]
|
||||
[AllowNesting] // Because it's nested we need to explicitly allow nesting
|
||||
public int enableIfEnum;
|
||||
|
||||
[EnableIf("Enum2", EnableIfEnumFlag.Flag0)]
|
||||
[AllowNesting] // Because it's nested we need to explicitly allow nesting
|
||||
public int enableIfEnumFlag;
|
||||
|
||||
[EnableIf("Enum2", EnableIfEnumFlag.Flag0 | EnableIfEnumFlag.Flag1)]
|
||||
[AllowNesting] // Because it's nested we need to explicitly allow nesting
|
||||
public int enableIfEnumFlagMulti;
|
||||
|
||||
public EnableIfNest2 nest2;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class EnableIfNest2
|
||||
{
|
||||
public bool enable1;
|
||||
public bool enable2;
|
||||
public EnableIfEnum enum1;
|
||||
[EnumFlags] public EnableIfEnumFlag enum2;
|
||||
public bool GetEnable1() { return enable1; }
|
||||
public bool GetEnable2() { return enable2; }
|
||||
public EnableIfEnum GetEnum1() { return enum1; }
|
||||
public EnableIfEnumFlag GetEnum2() { return enum2; }
|
||||
|
||||
[EnableIf(EConditionOperator.And, "GetEnable1", "GetEnable2")]
|
||||
[MinMaxSlider(0.0f, 1.0f)] // AllowNesting attribute is not needed, because the field is already marked with a custom naughty property drawer
|
||||
public Vector2 enableIfAll = new Vector2(0.25f, 0.75f);
|
||||
|
||||
[EnableIf(EConditionOperator.Or, "GetEnable1", "GetEnable2")]
|
||||
[MinMaxSlider(0.0f, 1.0f)] // AllowNesting attribute is not needed, because the field is already marked with a custom naughty property drawer
|
||||
public Vector2 enableIfAny = new Vector2(0.25f, 0.75f);
|
||||
|
||||
[EnableIf("GetEnum1", EnableIfEnum.Case2)]
|
||||
[MinMaxSlider(0.0f, 1.0f)] // AllowNesting attribute is not needed, because the field is already marked with a custom naughty property drawer
|
||||
public Vector2 enableIfEnum = new Vector2(0.25f, 0.75f);
|
||||
|
||||
[EnableIf("GetEnum2", EnableIfEnumFlag.Flag0)]
|
||||
[MinMaxSlider(0.0f, 1.0f)] // AllowNesting attribute is not needed, because the field is already marked with a custom naughty property drawer
|
||||
public Vector2 enableIfEnumFlag;
|
||||
|
||||
[EnableIf("GetEnum2", EnableIfEnumFlag.Flag0 | EnableIfEnumFlag.Flag1)]
|
||||
[MinMaxSlider(0.0f, 1.0f)] // AllowNesting attribute is not needed, because the field is already marked with a custom naughty property drawer
|
||||
public Vector2 enableIfEnumFlagMulti;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public enum EnableIfEnum
|
||||
{
|
||||
Case0,
|
||||
Case1,
|
||||
Case2
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum EnableIfEnumFlag
|
||||
{
|
||||
Flag0 = 1,
|
||||
Flag1 = 2,
|
||||
Flag2 = 4,
|
||||
Flag3 = 8
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user