WAILA 模块开关

WAILAPlugins 的开关不全部在自己配置文件里。PluginBase.addConfig 打到的是 WAILA 自己的 ConfigHandler,最终写进 WAILA 的配置文件。本页汇总这套"第二配置面"的全部开关。

这套开关与 config/wailaplugins.cfg(本页之外的 配置系统)互不相通:在本 mod 的 GUI 里改不到这里的开关,反之亦然。

两层开关

每个插件都受两层控制:

层级 键格式 默认 读取处 效果
插件总开关 <插件名> true PluginBase.enabled() 关闭后该插件的 NBT 采集与全部提示行一并停用(getWailaStack 返回 null;Head/Body/Tail 不再追加)
功能开关 <插件名>:<功能键> true PluginBase.getConfig(key) 只关闭该插件下的一类信息

两层都落在 WAILA 配置的 [modules] 段。addConfig 额外把开关按 <插件名> 分组,在 WAILA 配置 GUI 中呈现为一个模块。

键的构造规则

// PluginBase
protected void addConfig(String key) { addConfig(key, true); }

protected void addConfig(String key, boolean def) {
    ConfigHandler.instance().addConfig(
        PluginRegistrar.getPluginName(this.getClass()),   // 分组名 = 插件名
        getKey(key),                                      // 键 = 插件名 + ":" + key
        configLang.localize("config.<插件名>.<key>"),      // 标签语言键
        def);
}

private String getKey(String key) {
    return PluginRegistrar.getPluginName(this.getClass()) + ":" + key;
}

protected boolean getConfig(String key) {
    return ConfigHandler.instance().getConfig("modules", getKey(key), true);
}

protected boolean enabled() {
    return ConfigHandler.instance().getConfig("modules", PluginRegistrar.getPluginName(this.getClass()), true);
}

要点:

  • 所有内置插件都用 addConfig(key) 这个单参重载,即默认值一律 true;源码中没有任何插件调用带默认值的双参重载。
  • 插件名由 PluginRegistrar.getPluginName 决定:@Plugin.name 非空就用它,否则取第一个依赖 modid 的 ModContainer.getName()(显示名,不是 modid)。
  • 语言键前缀 wp.config.<插件名>.<key>(configLang = new Lang("wp"))与键前缀用的是同一个值。

全量开关表

插件 @Plugin.name 依赖 modid 总开关键 功能开关(全部默认 true) 功能开关数
IC2Crops IC2Crops IC2 IC2Crops cropName、cropStats、plantInfo、envInfo 4
RedLogic (空,取 mod 显示名) RedLogic RedLogic 的模组显示名 overlay、data、strength 3
IFluidHandler IFluidHandler (无) IFluidHandler (无) 0
Blood Magic Blood Magic AWWayofTime Blood Magic altar、chemistrySet、masterStone、teleposer 4
Railcraft (空,取 mod 显示名) Railcraft Railcraft 的模组显示名 multiblocks、heat、tanks、energy、engines、charge、locomotives、waterTankRate 8
Pam’s Fruit Pam's Fruit harvestcraft Pam's Fruit (无) 0
Forestry Forestry Forestry Forestry power、heat、sapling、leaves、apiary 5

合计 7 个插件、24 个功能开关,每个插件另有 1 个总开关。

其中 RedLogic 与 Railcraft 的总开关键取决于目标 mod 的 ModContainer.getName()——即模组在游戏里显示的名字,不是 RedLogic / Railcraft 这两个 modid。若整合包里 mod 显示名被改过,对应的总开关键也会跟着变。

按功能键索引

同一个功能键在不同插件间含义不同,配置时注意区分作用域(键是带插件名前缀的,所以不会互相干扰):

功能键 出现的插件 含义
heat RedLogic 不使用;Railcraft、Forestry Railcraft:锅炉/引擎温度;Forestry:引擎温度
power Forestry 显示引擎能量
energy Railcraft 标为"显示 RF 能量",但源码中无读取点(见下)
tanks Railcraft 标为"显示机器流体信息",但源码中无读取点(见下)
data RedLogic 显示门电路参数
overlay RedLogic 显示门四向世界内 overlay
strength RedLogic 显示红合金导线强度
charge Railcraft 显示充能
multiblocks Railcraft 显示多方块成型状态
engines Railcraft 显示引擎信息
locomotives Railcraft 显示机车信息
waterTankRate Railcraft 水塔集水速率
altar / chemistrySet / masterStone / teleposer Blood Magic 祭坛 / 炼金术台 / 仪式石 / 传送器
cropName / cropStats / plantInfo / envInfo IC2Crops 作物名 / 属性 / 存量 / 环境
power / heat / sapling / leaves / apiary Forestry 能量 / 温度 / 树苗 / 树叶 / 蜂箱

三个不生效 / 需注意的开关

插件 开关 情况
Railcraft tanks 注册但不生效。储液罐行的条件是 tag.hasKey(TANK_FLUID),源码中没有 getConfig("tanks") 门控
Railcraft energy 注册但不生效。引擎能量行由 engines 开关统管,getConfig("energy") 在源码中从未被调用
Railcraft waterTankRate 生效,但语言文件缺 wp.config.Railcraft.waterTankRate 条目,GUI 标签会回退显示原始键

另有两个标签失配(功能正常,仅复选框显示名受影响):

插件 现象
Blood Magic getPluginName 返回 Blood Magic,代码请求 wp.config.Blood Magic.*;语言文件里定义的是 wp.config.AWWayofTime.*(按依赖 modid 命名),两者对不上
Forestry / IC2Crops / RedLogic / Railcraft 插件名与语言键前缀一致,标签正常

编辑位置

  • 本页所有键 → WAILA 自己的配置文件 config/waila.cfg 的 [modules] 段。
  • 每个插件还有一个"是否加载"的开关在 config/wailaplugins.cfg 的 [plugins] 段(键同样是插件名),见 配置系统。

关掉 [plugins] 里的某插件,会让它连 WAILA 配置里的开关都不再出现——因为插件没被实例化,就不会执行 addConfig。

相关条目