Class ConfigField

java.lang.Object
com.hbm_m.config.schema.ConfigField

public final class ConfigField extends Object
Метаданные одного конфигурационного поля + адаптер доступа к живому значению.

Поле описывает, как его показывать в GUI (категория, границы, тултип), на какой стороне оно лежит, в какой режим применяется, и предоставляет типобезопасный доступ get/set к соответствующему полю ModClothConfig.

Зачем нужен адаптер: GUI и JSON-сериализация работают со схемой одинаково, не зная конкретного поля. Это удаляет необходимость менять ~120 call-сайтов ModClothConfig.get().field — схема лишь читает/пишет существующие публичные поля POJO-холдера.

  • Method Details

    • builder

      public static ConfigField.Builder builder(String key, ConfigField.FieldType type)
    • bool

      public static ConfigField bool(String key, ConfigSide side, ApplyMode mode, String category)
      Boolean, верхний уровень.
    • boolNested

      public static ConfigField boolNested(String key, ConfigSide side, ApplyMode mode, String category, String parent)
      Boolean во вложенном объекте parent.
    • integer

      public static ConfigField integer(String key, ConfigSide side, ApplyMode mode, String category, int min, int max)
      int с границами, верхний уровень.
    • intNested

      public static ConfigField intNested(String key, ConfigSide side, ApplyMode mode, String category, String parent, int min, int max)
      int с границами во вложенном объекте parent.
    • floatNum

      public static ConfigField floatNum(String key, ConfigSide side, ApplyMode mode, String category, float min, float max)
      float с границами, верхний уровень.
    • floatNested

      public static ConfigField floatNested(String key, ConfigSide side, ApplyMode mode, String category, String parent, float min, float max)
      float с границами во вложенном объекте parent.
    • longNested

      public static ConfigField longNested(String key, ConfigSide side, ApplyMode mode, String category, String parent, long min, long max)
      long с границами во вложенном объекте parent.
    • doubleNested

      public static ConfigField doubleNested(String key, ConfigSide side, ApplyMode mode, String category, String parent, double min, double max)
      double с границами во вложенном объекте parent.
    • enumField

      public static ConfigField enumField(String key, ConfigSide side, ApplyMode mode, String category)
      enum (значения определяются рефлексивно по типу поля), верхний уровень.
    • get

      public Object get(ModClothConfig cfg)
      Публичное поле-адаптер. Применяет валидацию границ перед записью.
    • set

      public void set(ModClothConfig cfg, Object value)
      Записывает значение в поле с применением клэмпа (для числовых) и приведением типа.
    • setFromString

      public void setFromString(ModClothConfig cfg, String raw)
      Устанавливает значение из строки (для JSON/сети). Проверяет тип и клэмпит.
    • parse

      public Object parse(String raw)
      Распознаёт значение из строки по типу поля.
    • getForSerialization

      public Object getForSerialization(ModClothConfig cfg)
      Возвращает реальный тип объекта для GSON (чтобы не было кавычек)
    • getAsString

      public String getAsString(ModClothConfig cfg)
      Возвращает строковое представление текущего значения для сериализации.
    • withComment

      public ConfigField withComment(String comment)
    • getComment

      public String getComment()
    • getKey

      public String getKey()
    • getSide

      public ConfigSide getSide()
    • getApplyMode

      public ApplyMode getApplyMode()
    • getCategory

      public String getCategory()
    • getFieldName

      public String getFieldName()
    • getParentObject

      public String getParentObject()
    • getType

      public ConfigField.FieldType getType()
    • getMin

      public Double getMin()
    • getMax

      public Double getMax()
    • requiresRestart

      public boolean requiresRestart()
      Требуется ли перезапуск после изменения.
    • requiresResourceReload

      public boolean requiresResourceReload()
      Требуется ли перезагрузка ресурсов.
    • isLive

      public boolean isLive()
      Может ли применяться немедленно.
    • isServer

      public boolean isServer()
      Является ли серверным (синхронизируемым).
    • isClient

      public boolean isClient()
      Является ли клиентским.
    • toString

      public String toString()
      Overrides:
      toString in class Object