diff options
author | chai <chaifix@163.com> | 2020-10-15 07:24:10 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-15 07:24:10 +0800 |
commit | e846c64d6f927879cb8a095e62d773a8d7b3c9f4 (patch) | |
tree | 7882744bbf2b6c7096ec15fb300f088c5a0807c5 /Assets/Plugins/AdvancedInspector/Attributes/Enum.cs | |
parent | cd12e74241678ee3c0752484d310b202187ba24c (diff) |
*ability system
Diffstat (limited to 'Assets/Plugins/AdvancedInspector/Attributes/Enum.cs')
-rw-r--r-- | Assets/Plugins/AdvancedInspector/Attributes/Enum.cs | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/Assets/Plugins/AdvancedInspector/Attributes/Enum.cs b/Assets/Plugins/AdvancedInspector/Attributes/Enum.cs new file mode 100644 index 00000000..f9b88281 --- /dev/null +++ b/Assets/Plugins/AdvancedInspector/Attributes/Enum.cs @@ -0,0 +1,68 @@ +using System; + +namespace AdvancedInspector +{ + /// <summary> + /// Controls how an enum is handled and displayed. + /// </summary> + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public class EnumAttribute : Attribute, IListAttribute + { + private bool masked = false; + + /// <summary> + /// Turns a normal enum into a bitfield. + /// Careful, your enum should be properly setup to accepted bitfield input. + /// </summary> + public bool Masked + { + get { return masked; } + set { masked = value; } + } + + private EnumDisplay display = EnumDisplay.DropDown; + + /// <summary> + /// Forces an enum to be displayed differently. + /// </summary> + public EnumDisplay Display + { + get { return display; } + set { display = value; } + } + + private int maxItemsPerRow = 6; + + /// <summary> + /// When display is using Button or Checkbox, this is the maximum number of button displayed per rows before creating a new one. + /// </summary> + public int MaxItemsPerRow + { + get { return maxItemsPerRow; } + set { maxItemsPerRow = value; } + } + + public EnumAttribute(bool masked) + { + this.masked = masked; + } + + public EnumAttribute(EnumDisplay display) + { + this.display = display; + } + + public EnumAttribute(bool masked, EnumDisplay display) + { + this.masked = masked; + this.display = display; + } + } + + public enum EnumDisplay + { + DropDown, + Button, + Checkbox + } +}
\ No newline at end of file |