CoreModConfig

基本信息

属性 值
文件 src/main/java/com/dreammaster/config/CoreModConfig.java
注解框架 GTNHLib com.gtnewhorizon.gtnhlib.config.Config
modid Refstrings.MODID = dreamcraft(CoreModConfig.java:8)
configSubDirectory Refstrings.COLLECTIONID = GTNewHorizons(CoreModConfig.java:8)
配置分类 Modules、ModFixes
配置项总数 14(Modules 12 + ModFixes 2)
磁盘路径 config/GTNewHorizons/dreamcraft.cfg(由 configSubDirectory + modid 推出)

功能

这是一个只有两层嵌套静态类的纯声明式配置:外层 CoreModConfig 不含任何字段,两个 @Config 注解各标一个静态内部类。整个文件 76 行,零逻辑。

注册发生在 MainRegistry.PreLoad,用 GTNHLib ConfigurationManager.registerConfig,失败即抛 RuntimeException 中断启动(MainRegistry.java:170-175):

ConfigurationManager.registerConfig(CoreModConfig.Modules.class);
ConfigurationManager.registerConfig(CoreModConfig.ModFixes.class);
ConfigurationManager.registerConfig(OilGeneratorFix.OilConfig.class);

第三个 registerConfig 注册的是 OilGeneratorFix.OilConfig,属另一个类,配置项在该类内统计。

两个类都带 @Config.RequiresMcRestart(CoreModConfig.java:10、:65)—— 改完必须重启客户端。

Modules 分类(12 项)

字段名 类型 默认值 中文说明 外部读取处
OreDictItems boolean true 开关 SpaceStones / SpaceDusts 的矿物词典注册 1
LoginMessage boolean true 登录时显示整合包版本信息 1
gtnhPauseMenuButtons boolean true 暂停菜单中显示 GTNH 按钮 1
ModPackVersion String 2.9.x 整合包版本(显示用) 2
HazardousItems boolean false 启用 HazardousItems 模块 4
DebugVersionDisplay boolean true 在 F3 调试界面显示整合包版本 0
CustomToolTips boolean false 启用 CustomToolTips 模块 4
CustomFuels boolean false 启用 CustomFuels 模块 5
CustomDrops boolean false 启用 CustomDrops 模块 4
BabyChest boolean true 启用 BabyChest 方块 1
ForestryStampsAndChunkLoaderCoinsEnabled boolean true 启用林业印章与区块加载器币配方(仅单人) 1
ForestryStampsAndChunkLoaderCoinsServerEnabled boolean false 同上,但在服务器上生效 2

默认值来自 @Config.DefaultBoolean / @Config.DefaultString 注解(CoreModConfig.java:14-60)。gtnhPauseMenuButtons 是唯一改名的字段:@Config.Name("GTNH Pause menu buttons")(CoreModConfig.java:22)。

ModPackVersion 的默认值不是字面量,而是 @Config.DefaultString(Refstrings.MODPACKPACK_VERSION)(CoreModConfig.java:27),即常量 2.9.x(Refstrings.java:8)。

ModFixes 分类(2 项)

字段名 类型 默认值 中文说明 外部读取处
MinetweakerFurnaceFixEnabled boolean true 允许 Minetweaker 覆盖原版熔炉燃料处理器,使木质物品燃烧值可改 1
GenerateOil boolean false 启用本 mod 的油生成(需关闭 BuildCraft 的 Oil-Spawn) 1

DebugVersionDisplay:声明存在但无读取方

按检查项 8(声明 → 赋值 → 是否有外部读取方)逐项核对,唯一没有外部读取方的是 DebugVersionDisplay:

$ grep -rn 'DebugVersionDisplay' . --include=*
./src/main/java/com/dreammaster/config/CoreModConfig.java:36:        public static boolean DebugVersionDisplay;

全仓仅 1 处命中,就是声明本身(CoreModConfig.java:36),并已排除 .git/。其 @Config.Comment 为 Set to true to display modpack version on debug GUI (F3)(CoreModConfig.java:34)。

是否构成缺陷:不下断言。 依据检查项 14,源码注释只能证明作者意图让玩家在 F3 看到版本号,该注释本身就是意图证据;仓库中没有进一步的实现痕迹,也没有注释声称「未实现」。此处仅如实记录「全仓无读取方」这一事实。

数值

数值名 值
配置分类数 2
配置项总数 14
声明式字段(无任何方法体) 14 / 14
需重启生效 全部(两个类都带 @Config.RequiresMcRestart)

交互

配置改动的生效点:

  • HazardousItems / CustomToolTips / CustomFuels / CustomDrops 决定 PreLoad 是否实例化对应模块处理器(MainRegistry.java:200-219),并决定 serverLoad 是否注册对应指令(MainRegistry.java:459-469)
  • BabyChest 决定 InitAdditionalBlocks() 是否被调用(MainRegistry.java:268-270)
  • OreDictItems 决定 OreDictHandler.register_all() 是否执行(MainRegistry.java:273)
  • gtnhPauseMenuButtons 决定客户端是否注册 GTNHPauseScreen(MainRegistry.java:279-281)
  • GenerateOil / MinetweakerFurnaceFixEnabled 决定 registerModFixes() 注册哪几个 mod-fix(MainRegistry.java:437-441)

相关条目