WAILA 采集选项(waila.cfg)

基本信息

属性 值
类型 WAILA 自身配置(IWailaConfigHandler / mcp.mobius.waila.api.impl.ConfigHandler)
配置文件 config/waila.cfg,分段名 [Harvestability]
配置项数 16(全部为布尔值)
注册位置 WailaHandler.callbackRegister(IWailaRegistrar)
注册方式 registrar.addConfig("Harvestability", key, "option." + key)
默认值来源 WailaHandler.configOptions 静态 HashMap
源码 WailaHandler.java:283-314

概述

这 16 个开关才是真正控制"提示栏显示什么"的地方。它们不由本模组写盘,而是注册进 WAILA 的配置系统,由 WAILA 持久化。读取发生在渲染路径上,每次生成提示栏都调 config.getConfig(key)。

注册代码里的注释直言这是"把默认值设成非 true 的 hacky way"——因为 WAILA 的 ConfigHandler 在选项尚未存在时默认返回 true,所以先调一次 getConfig(key, entry.getValue()) 把默认值播种进去,再调 addConfig 正式注册。

for (Map.Entry<String, Boolean> entry : configOptions.entrySet()) {
    ConfigHandler.instance().getConfig(entry.getKey(), entry.getValue());   // 播种默认值
    registrar.addConfig("Harvestability", entry.getKey(), "option." + entry.getKey());
}
registrar.registerBodyProvider(instance, Block.class);

⚠️ 决定符号字符与最小模式分隔符的是本模组自己的 .cfg,不在这里,见 Forge 配置项。

三个主开关(Master switches)

这三项决定整个 getHarvestability 是否执行。它们同时是所有其它开关的总开关——任意一项为 false,方法直接空转,连剪刀与精准采集的行都不会显示。

键 默认值 en_US 标签 zh_CN 标签 作用
harvestability.harvestlevel true Harvest level 挖掘等级 显示"挖掘等级"行(等级名称)
harvestability.effectivetool true Effective tool 所需工具 显示"所需工具"行
harvestability.currentlyharvestable true Currently harvestable 能否挖掘 显示 ✔/✘ 状态行

等级编号开关

键 默认值 en_US 标签 zh_CN 标签 作用
harvestability.harvestlevelnum false Harvest level no. 采集等级 在等级名称后追加 (N);当名称与数字相同时自动隐藏

潜行限定开关(Sneaking only)

每项对应一个主开关,true 时该项信息只在玩家潜行(Shift)时显示。默认值全为 false。

键 默认值 en_US 标签 zh_CN 标签 门控
harvestability.harvestlevel.sneakingonly false Sneak only: Harvest level 仅潜行时显示: 挖掘等级 harvestlevel
harvestability.harvestlevelnum.sneakingonly false Sneak only: Harvest level no. 仅潜行时显示: 采集等级 harvestlevelnum
harvestability.effectivetool.sneakingonly false Sneak only: Effective tool 仅潜行时显示: 所需工具 effectivetool
harvestability.currentlyharvestable.sneakingonly false Sneak only: Harvestable 仅潜行时显示: 能否挖掘 currentlyharvestable
harvestability.shearability.sneakingonly false Sneak only: Shearability 仅潜行时显示: 能否用剪刀采集 shearability
harvestability.silktouchability.sneakingonly false Sneak only: Silk Touchability 仅潜行时显示: 能否精准采集 silktouchability

采集能力开关

键 默认值 en_US 标签 zh_CN 标签 作用
harvestability.shearability true Shearability 能否用剪刀采集 显示 ✂ 行
harvestability.silktouchability true Silk Touchability 能否精准采集 显示 ✓ 行

过滤器开关(Filter switches)

键 默认值 en_US 标签 zh_CN 标签 作用
harvestability.oresonly false Ores only 仅显示矿石挖掘信息 非矿石方块直接不输出任何行,判定见 矿石判定
harvestability.unharvestableonly false Unharvestable only 仅显示能否挖掘 当前已能挖掘时整段不输出(if (hideWhileHarvestable && isCurrentlyHarvestable) return;)
harvestability.toolrequiredonly true Tool required only 仅显示所需工具 方块材质 isToolNotRequired 且无有效工具、无剪刀信息、无精准信息时跳过
harvestability.minimal false Minimal mode 缩小模式 所有行合并成一行,并去掉各字段的文字前缀

数值

数值 值
配置项总数 16
默认 true 6(harvestlevel、effectivetool、currentlyharvestable、toolrequiredonly、shearability、silktouchability)
默认 false 10
主开关数 3
潜行限定开关数 6
过滤器开关数 4
其它开关数 3(harvestlevelnum、shearability、silktouchability)
注册但无读取点的项 0
读取但未注册的项 0

源码现状提示

  • harvestability.toolrequiredonly 在读取处用的是单参数重载 config.getConfig("harvestability.toolrequiredonly"),没有像其它项那样传 false。它的 true 默认值来自 configOptions 播种,而非读取点。
  • zh_CN 有 3 处标签与代码语义不符,均为语言文件既有问题,功能不受影响:
    • option.harvestability.unharvestableonly 的中文是"仅显示能否挖掘",读起来像"只显示可挖掘状态行",实际语义是只在不能挖掘时显示(英文 “Unharvestable only” 才是准确的)。
    • option.harvestability.toolrequiredonly 的中文是"仅显示所需工具",实际语义是只对需要工具的方块显示。
    • option.harvestability.harvestlevelnum 译作"采集等级",而同一概念的 option.harvestability.harvestlevel 译作"挖掘等级",同一事物在配置界面里出现两种叫法。
  • 这 16 项的标签语言键统一为 option.<键名>,en_US.lang 与 zh_CN.lang 均完整定义了全部 16 条,无缺失。

相关条目