Class ConfigSchema

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

public final class ConfigSchema extends Object
Реестр всех конфигурационных полей мода (единый источник правды).

Заменяет аннотации Cloth Config (@Category/@Gui/@BoundedDiscrete) и является основой для:

  • сериализации (client.json / server.json),
  • сетевой синхронизации (какие поля шлются S2C и принимаются C2S),
  • построения GUI (какие виджеты, границы, категории, вкладки),
  • пометок requiresRestart.
  • Всегда следить, чтобы имя поля в POJO-классе буква в букву совпадало со строковым ключом при регистрации в ConfigSchema!

Порядок регистрации определяет порядок категорий/полей в GUI и в файле.

  • Method Details

    • get

      public static ConfigField get(String key)
      Поле по ключу или null.
    • all

      public static Collection<ConfigField> all()
      Все поля в порядке регистрации.
    • bySide

      public static List<ConfigField> bySide(ConfigSide side)
      Все поля заданной стороны в порядке регистрации.
    • categories

      public static List<String> categories(ConfigSide side)
      Категории заданной стороны в порядке регистрации (без дубликатов).
    • byCategory

      public static List<ConfigField> byCategory(ConfigSide side, String category)
      Поля категории заданной стороны в порядке регистрации.
    • snapshot

      public static Map<String,String> snapshot(ModClothConfig cfg, ConfigSide side)
      Снапшот всех значений стороны как key→String. Используется сетевыми пакетами и GUI. Не содержит описаний.
    • snapshotForJson

      public static Map<String,Object> snapshotForJson(ModClothConfig cfg, ConfigSide side)
      Снапшот как key→Object (для сериализации GSON в файл). Избавляет от кавычек для чисел/true/false и добавляет _desc_ ключи.
    • applyAll

      public static void applyAll(ModClothConfig cfg, ConfigSide side, Map<String,String> values)
      Применяет пары key→value из карты. Неизвестные ключи игнорируются.
    • applyField

      public static boolean applyField(ModClothConfig cfg, String key, String value)
      Применяет одно значение по ключу (проверяет side). Возвращает true при успехе.
    • validate

      public static void validate(ModClothConfig cfg)
      Клэмпит все числовые поля по границам схемы. Заменяет validatePostLoad() из AutoConfig. Вызывается после загрузки и после применения пакетов.
    • defaults

      public static ModClothConfig defaults()
      Ленивый экземпляр со значениями по умолчанию.
    • defaultAsString

      public static String defaultAsString(ConfigField f)
      Строковое значение по умолчанию для поля.
    • labelKey

      public static String labelKey(ConfigField f)
      Ключ локализации названия поля: config.hbm_m.field.
    • tooltipKey

      public static String tooltipKey(ConfigField f)
      Ключ локализации тултипа поля: config.hbm_m.field..tooltip
    • categoryKey

      public static String categoryKey(String category)
      Ключ локализации категории: config.hbm_m.category.