配置项
基本信息
| 属性 | 值 |
|---|---|
| 处理类 | net.torocraft.torohealthmod.client.configuration.ConfigurationHandler |
| 读取位置 | preInit,仅 Side.CLIENT(ToroHealthMod.java:24-25) |
| 配置文件 | event.getSuggestedConfigurationFile(),即 config/torohealthmod.cfg |
| 分类 | 全部落在 Configuration.CATEGORY_GENERAL(general 段) |
| GUI | @Mod(guiFactory = ...) → ModGUIConfig(GuiConfig 通用界面,无自定义布局) |
| 热重载 | 订阅 ConfigChangedEvent.OnConfigChangedEvent,modID 等于忽略大小写 torohealthmod 时重读(ConfigurationHandler.java:59-64) |
配置项列表
| 配置键 | 类型 | 默认值 | 说明文字(源码注释) | 源码 |
|---|---|---|---|---|
Show Damage Particles |
boolean | true |
“Show Damage Indicators” | ConfigurationHandler.java:34 |
Render through walls |
boolean | false |
“Render particles though walls”(源码拼写如此) | ConfigurationHandler.java:35 |
Particles Size |
double | 3.0 |
“Particles Size [default: 3.0]” | ConfigurationHandler.java:36 |
Heal Color |
String | "GREEN" |
“Heal Text Color” | ConfigurationHandler.java:37 |
Damage Color |
String | "RED" |
“Damage Text Color” | ConfigurationHandler.java:38 |
Heal Color / Damage Color 带 acceptedColors 校验,可选 8 项(ConfigurationHandler.java:21-22):
RED、GREEN、BLUE、YELLOW、ORANGE、WHITE、BLACK、PURPLE。
⚠️
WHITE虽在acceptedColors里,但mapColor的 switch 没有WHITE分支 (ConfigurationHandler.java:70-81),会落进default -> 0xFFFFFF。结果碰巧正确 (白色就是0xFFFFFF),但这是靠 default 兜出来的,不是显式映射。
颜色映射表
mapColor(ConfigurationHandler.java:70-81):
| 名称 | 值 |
|---|---|
RED |
0xFF0000 |
GREEN |
0x00FF00 |
BLUE |
0x0000FF |
YELLOW |
0xFFFF00 |
ORANGE |
0xFFA500 |
BLACK |
0x000000 |
PURPLE |
0x960096 |
其他(含 WHITE) |
0xFFFFFF |
Show Damage Particles 的开关机制
loadConfiguration 末尾(ConfigurationHandler.java:41-51)按该开关注册或注销
ToroHealthEventHandler:
true且eventHandler == null→new ToroHealthEventHandler()并MinecraftForge.EVENT_BUS.register(...)false且eventHandler != null→EVENT_BUS.unregister(...)并置null
因为 eventHandler 是静态字段且只在首次创建时赋值(ConfigurationHandler.java:23),
GUI 里反复切换该开关可以正常开/关粒子。
Particles Size 实际影响面
该值只在两处被读取:
- 新粒子初始
particleScale(DamageParticles.java:33) - 放大阶段的终止阈值
size * 3.0(DamageParticles.java:132)
它不影响文本字号本身——字号由 renderParticle 里的固定系数 * 0.008D
(DamageParticles.java:108-110)乘 particleScale 得到。改大 Particles Size
同时放大初始尺寸与放大终止线,净效果是粒子更大且放大过程更短。