配置项

基本信息

属性 值
配置类 hellfirepvp.beebetteratbees.common.ModConfig
配置文件 config/beebetteratbees.cfg(由 FMLPreInitializationEvent#getSuggestedConfigurationFile 给出)
分类 全部落在 general 分类下
配置项数量 2(均为 boolean)
加载时机 preInit(BeeBetterAtBees.java:41-43)

全部配置项

配置键 映射字段 默认值 作用
general.shouldShowSecretMutations ModConfig.shouldShowSecretRecipes false 为 true 时,NEI 配方面板会显示 Forestry 标记为 secret 的蜜蜂变异
general.shouldShowDuplicateTrees ModConfig.showDuplicateTrees true 为 false 时,同一棵树已在别处显示过就不再重复渲染

两个字段都是 public static,preInit 里 ModConfig.init() → loadFromConfig() 直接覆写, 没有 setter,也不写回配置文件(ModConfig.save() 存在但全仓库无调用点)。

secret 变异的过滤点

shouldShowSecretRecipes 只在两处被读取,两处条件相同 (BBABGuiRecipeTreeHandler.java:97 和 :169):

if (!mutation.isSecret() || ModConfig.shouldShowSecretRecipes) {
    this.arecipes.add(new CachedBeeMutationTree(mutation));
}

即合成(crafting)侧和用途(usage)侧都遵守该开关。

字段名与配置键不一致

shouldShowSecretRecipes(字段)对 shouldShowSecretMutations(配置键)—— 两者拼写不同,读代码时不能按名字直接对上。

源码缺陷

ModConfig.java:18 把 showDuplicateTrees 的字段初始值写成 false, 而 ModConfig.java:41 里 config.getBoolean(..., true, ...) 的配置默认值是 true。

字段初始值是死代码——loadFromConfig() 在 init() 中必然执行并覆写它, 所以实际生效的默认值是 true。但这个矛盾会让只读字段声明的人得出相反结论。

相关条目