CodeChickenCore.cfg

基本信息

属性 值
路径 <minecraftDir>/config/CodeChickenCore.cfg
创建处 CodeChickenCorePlugin.java:53-54(构造器)
实现类 codechicken.lib.config.ConfigFile
分组数 2(checks、tweaks),均调用 useBraces()
活跃配置项 10(checks 6 + tweaks 6,其中 tweaks 2 项由 LiquidTextures 读取)
已移除项 1(tweaks.persistantLava)

checks 分组

分组声明于 CodeChickenCorePlugin.java:87-88,注释为 Configuration options for checking various requirements for a modpack.,在 injectData() 中读取。

配置项 行 类型 默认值 何时被读取
checkRAM :89-91 布尔 false 每次启动(injectData)
minRAM :181-182 字符串 3GB 仅当内存检查失败流程被触发时
modPack :194-195 字符串 Unidentified ModPack 同上
wiki :197-198 字符串 See <a href="https://downloadmoreram.com">DownloadMoreRam.com</a> for details. 同上
recRAM :200 字符串 4GB 同上
recRAMUpper :202-203 字符串 6GB 同上

生效条件

checkRAM 为 true 时调用 systemCheck(checkRAM)(CodeChickenCorePlugin.java:92)。systemCheck(:179-224)先用 minRAM 解析出字节数(:180-182),与 Runtime.getRuntime().maxMemory() 比较(:183)。

只有当分配内存不足时(if 分支),modPack、wiki、recRAM、recRAMUpper 才被读取,用于拼装错误对话框的 HTML 文案(:190-205)。内存充足时这 4 项即使在配置文件中改了值也不会被读取——它们是纯展示文案,不是行为开关。

systemCheck 失败时的最终行为:非 headless 环境弹 JOptionPane(:220-221),随后 FMLCommonHandler.instance().exitJava(-98, true)(:222)。

minRAM 的字符串解析由 parseSize(String) 完成(:149-162),支持 K / M / G 后缀。

tweaks 分组

分组声明于 TweakTransformer.java:46-47,注释为 Various tweaks that can be applied to game mechanics.,由 coremod 的 injectData() 触发加载(CodeChickenCorePlugin.java:94)。

配置项 读取位置 类型 默认值 归属
persistantLava TweakTransformer.java:48 — — 已移除,removeTag(...) 主动删除
environmentallyFriendlyCreepers TweakTransformer.java:50-52 布尔 false TweakTransformer
softLeafReplace TweakTransformer.java:60-61 布尔 false 同上(条件取反,为 false 时才生效)
doFireTickOut TweakTransformer.java:72-74 布尔 true 同上(默认开启)
finiteWater TweakTransformer.java:95-97 布尔 false 同上
replaceWaterFX LiquidTextures.java:29-30 布尔 false 功能 hack
replaceLavaFX LiquidTextures.java:31-32 布尔 false 同上

replaceWaterFX / replaceLavaFX 虽然由 LiquidTextures 读取,但读的是 TweakTransformer.tweaks 这个同一个 ConfigTag 实例,所以它们与上 4 项同处 tweaks 花括号分组内。

LiquidTextures 的读取时机是 preInit(CodeChickenCoreModContainer.java:61),晚于 TweakTransformer.load(),因此这两个开关不影响转换器注册。

默认状态小结

纯净配置下:

  • tweaks 组使 TweakTransformer 注册 2 个转换(softLeafReplace + doFireTickOut)
  • checks 组因 checkRAM 默认 false 而不执行任何内存检查
  • LiquidTextures 因两项均 false 而不注册任何事件监听

已核实事项

  • 全部 10 个活跃配置项均完成「声明 → 赋值 → 外部读取」三段核实,无只声明未读取的悬空项
  • persistantLava 在 src/main/java 与 tweaks.asm 中均无对应实现,属已清理的历史项
  • 本配置文件的键名区分大小写:ConfigTagParent 的 childtags 为无比较器的 new TreeMap<>()(ConfigTagParent.java:44),allTagsInTree 为 new HashMap<>()(:49),均未传入 String.CASE_INSENSITIVE_ORDER,因此配置文件中的键必须与源码声明的驼峰形式完全一致

相关条目