Class HbmConfigStore

java.lang.Object
com.hbm_m.config.HbmConfigStore

public final class HbmConfigStore extends Object
JSON-бэкенд конфигурации без внешних зависимостей.

Порт оригинального RunningConfig.readConfig/writeConfig (1.7.10): сериализация плоской карты key→string. ConfigSchema — единый источник правды о том, какие ключи существуют, их границы и сторона.

Формат файла — плоский JSON-объект, по одному значению на поле схемы:


 {
   "_comment": "HBM Modernized ...",
   "enableRadiation": "true",
   "maxRad": "100000.0",
   "frackingTower.maxPower": "5000000"
 }
 

Robustness:

  • Неизвестные ключи при загрузке игнорируются (forward-compat со старыми/новыми версиями).
  • При сохранении пишутся только известные схеме ключи.
  • Повреждённый/непарсимый файл → значения по умолчанию (игра не падает); файл НЕ перезаписывается автоматически, чтобы не уничтожить данные пользователя.
  • Значения-примитивы читаются толерантно: true и "true", 100 и "100" эквивалентны (ручное редактирование пользователем).
  • Method Details

    • load

      public static void load(ConfigSide side, ModClothConfig cfg)
      Загружает значения стороны из JSON в cfg. Если файл отсутствует — создаёт его с текущими (по умолчанию) значениями. Повреждённый файл → значения по умолчанию.

      После применения вызывается ConfigSchema.validate(com.hbm_m.config.ModClothConfig) (клэмп по границам).

    • save

      public static void save(ConfigSide side, ModClothConfig cfg)
      Сохраняет снапшот стороны в JSON. Создаёт родительский каталог при необходимости. Первым полем идёт человекочитаемый _comment (игнорируется при загрузке).