public static bool CheckEquals(this Equaler e, object a, object b) { switch (e) { case Equaler.Equal: return(a.Equals(b)); case Equaler.NoEqual: return(!a.Equals(b)); default: if (a is IComparable ac) { if (b is IComparable bc) { switch (e) { case Equaler.Greater: return(ac.CompareTo(bc) == 1); case Equaler.Lower: return(ac.CompareTo(bc) == -1); case Equaler.GreaterOrEqual: return(ac.CompareTo(bc) >= 0); case Equaler.LowerOrEqual: return(ac.CompareTo(bc) <= 0); } } } break; } throw new ArgumentException("You cant compare that", nameof(e)); }
public CondtionsAttribute(string serializedProp, Equaler equaler, object value) { Prop = serializedProp; Equaler = equaler; Value = value; }
public HideWhenAttribute(string serializedProp, Equaler equaler, object value) : base(serializedProp, equaler, value) { }
public ExtendetFoldoutGroupAttribute(string folder, Equaler equaler, object value) : base(folder) { Equaler = equaler; Value = value; }
public ShowGroupIfAttribute(string folder, string serializedProp, Equaler equaler, object value) : base(serializedProp, equaler, value) { Folder = folder; }
public HelpBoxWhenAttribute(string property, Equaler equaler, object value, string text, MessageType messageType = MessageType.Info, float size = 0) : base(text, messageType, size) { SerializedProperty = property; Equaler = equaler; Value = value; }