Forge 配置项(WailaHarvestability.cfg)

基本信息

属性 值
类型 Forge 配置文件(net.minecraftforge.common.config.Configuration)
配置文件 config/WailaHarvestability.cfg(event.getSuggestedConfigurationFile())
分段 单一分段 Main
配置项数 5(全部为字符串)
触发时机 FMLPreInitializationEvent → Config.init(File)(@SideOnly(Side.CLIENT))
写入时机 Config.init 内 load() 读取后立即 save(),把缺失项补写进配置文件
源码 squeek.wailaharvestability.Config(61 行)

概述

这是模组唯一自己写盘的配置。它不控制任何"显示什么",只控制提示栏里那 4 个符号字符与最小模式下的行分隔符。

所有 5 个项都在 Config.init 里被读入 public static String 静态字段:

  • MINIMAL_SEPARATOR_STRING
  • CURRENTLY_HARVESTABLE_STRING
  • NOT_CURRENTLY_HARVESTABLE_STRING
  • SHEARABILITY_STRING
  • SILK_TOUCHABILITY_STRING

⚠️ 决定"显示哪些行"的开关不在这里,而在 WAILA 自己的配置文件里,见 WAILA 采集选项。

Main 分段全部配置项

键 类型 默认值(源码字面量) 默认值(实际字符) 静态字段 作用
minimal.mode.separator String " : " 空格 + 冒号 + 空格 MINIMAL_SEPARATOR_STRING harvestability.minimal 开启时,把多行合并成一行所用的分隔符
is.currently.harvestable.string String "\u2714" ✔ U+2714 HEAVY CHECK MARK CURRENTLY_HARVESTABLE_STRING "当前可挖掘"符号
not.currently.harvestable.string String "\u2718" ✘ U+2718 HEAVY BALLOT X NOT_CURRENTLY_HARVESTABLE_STRING "当前不可挖掘"符号,同时用于不可破坏方块的提示
shearability.string String "\u2702" ✂ U+2702 BLACK SCISSORS SHEARABILITY_STRING "能否用剪刀采集"符号
silk.touchability.string String "\u2712" ✓ U+2712 CHECK MARK SILK_TOUCHABILITY_STRING "能否精准采集"符号

各符号的使用位置

符号 输出位置 颜色
✔ / ✘ 提示栏第一行的"当前能否挖掘" ColorHelper.getBooleanColor(isCurrentlyHarvestable)
✘ 单独一行——方块不可破坏或玩家处于冒险模式时 getBooleanColor(false),固定暗红
✂ 第一行,与 ✔/✘ 同行 getBooleanColor(isShearable, !isShearable && isHoldingShears)
✓ 第一行,与 ✔/✘、✂ 同行 getBooleanColor(hasSilkTouch)

非最小模式下,符号后面会跟语言文件里的文字后缀:

符号 语言键 en_US zh_CN
✔/✘ wailaharvestability.currentlyharvestable Currently Harvestable 目前能否挖掘
✘(不可破坏) wailaharvestability.harvestable Harvestable 能否挖掘
✂ 无后缀 — —
✓ 无后缀 — —

✂ 与 ✓ 没有文字后缀,它们只有符号,颜色承载全部语义。最小模式下 ✔/✘ 的文字后缀也被省略。

源码现状提示

  • 5 个 config.get(CATEGORY_MAIN, name, default) 都只传了 3 个参数,没有传 comment。Forge 的 Configuration 只在提供 comment 时才生成描述行,因此生成的 .cfg 里这 5 项只有 键=值,没有注释。
  • 分段名 CATEGORY_MAIN 的值是硬编码字面量 "Main"。
  • Config.save() / Config.load() 是 public static,但模组内部没有任何其它调用点(保存只在 init 末尾发生一次)。
  • Config.MINIMAL_SEPARATOR_STRING 只在"行与行之间"生效。第一行里 ✔ ✂ ✓ 之间的间隔是 WailaHandler 里硬编码的单个空格 " ",不受此配置影响。

相关条目