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 条,无缺失。
相关条目
- Forge 配置项 - 本模组自己写盘的 5 个符号/分隔符字符串
- WailaHandler 插件与提示栏组装 - 这些开关在
getHarvestability中如何组合 - 矿石判定 -
harvestability.oresonly的判定实现