@Config(name)
This specifies that a field should be saved to config and appear in the GUI.
@Description(desc)
Requires:
- @Config
Shows a description for the config option when it is hovered.
@Range("start..end")
Requires:
- Type is int or float
- @Config
For sliders, a range is required. The start and end are both inclusive. This annotation is REQUIRED when a field is annotated @Config and has a number type.
@KeyBound(name?)
Requires:
- Type is boolean
- @Config
Allows the user to set a key to toggle this boolean. If a name is specified, this is the name of the keybind. Otherwise, the one from a @Config on the same field is used.
@Marker(n)
Gives a field a numeric identifier for easy reflective access or other annotations.
@Gate(n)
Requires:
- Marked field n's Type is boolean
- @Config
Only shows an option if the specified marked field is true.
@MultiGate(overrideOr?, and?, or?)
Requires:
- Specified marked fields are all booleans
- @Config
All arguments are arrays of numeric identifiers for marked fields.
Shows an option if any of the following is true:
- Any value in
overrideOr
is true - No value in
and
is false andor
is empty - No value in
and
is false and any value inor
is true
Which can be written like:
show = any(overrideOr) || (all(and) && (or.isEmpty() || any(or)))
- Events
- Annotations