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 条,无缺失。
相关条目