配置项
本 mod 只有 4 个配置项,全部由 Forge Configuration 读写,全部只影响屏幕指引箭头。
配置文件位置
ConfigHandler.init(event.getSuggestedConfigurationFile())(TCNodeTracker.java:60),
即游戏目录下的 config/tcnodetracker.cfg。文件不存在时 new Configuration(file) 会生成并写出全部默认值——
ConfigHandler.java:15-25 的 init 开头就 config.load()、结尾就 config.save(),
所以第一次进游戏就会落盘一份全默认配置。
全部配置项
全部定义于 src/main/java/com/dyonovan/tcnodetracker/handlers/ConfigHandler.java:18-23:
| 分段(Category) | 键名(Key) | 类型 | 默认值 | 静态字段 | 作用 |
|---|---|---|---|---|---|
Arrow Location |
XCoord |
int | 0 |
ConfigHandler.arrowX |
箭头相对屏幕中心的水平偏移(像素) |
Arrow Location |
YCoord |
int | 0 |
ConfigHandler.arrowY |
箭头相对屏幕中心的垂直偏移(像素) |
Arrow Type |
Use Alt Arrow Texture |
boolean | false |
ConfigHandler.altArrow |
false 用 textures/gui/arrow.png,true 用 textures/gui/arrow2.png |
Arrow Size |
Arrow Size 0-1 |
double | 1 |
ConfigHandler.arrowSize |
箭头缩放系数,同时作用于距离文字 |
源码原文:
arrowX = config.get("Arrow Location", "XCoord", 0).getInt();
arrowY = config.get("Arrow Location", "YCoord", 0).getInt();
altArrow = config.get("Arrow Type", "Use Alt Arrow Texture", false).getBoolean();
arrowSize = config.get("Arrow Size", "Arrow Size 0-1", 1).getDouble();
取值范围
| 项 | 范围 | 依据 |
|---|---|---|
arrowX / arrowY |
无源码限制,可为任意整数(含负) | GuiConfig 的方向按钮只做 ±1 累加,没有 clamp |
arrowSize |
0.05 ~ 1.0(GUI 内) | GuiConfig.drawButtons(gui/GuiConfig.java:54-55):>= 1 时禁用放大按钮,<= 0.05 时禁用缩小按钮 |
arrowSize |
直接改 .cfg 可越界 |
配置文件本身不做范围校验,越界值会在渲染时生效 |
arrowSize 的调整步长是 0.05(gui/GuiConfig.java:137 与 :140),
GUI 右下角以 Math.round(arrowSize * 100) 显示为百分比。
写回时机
GuiConfig.onGuiClosed(gui/GuiConfig.java:216-231)把四个静态字段写回 Property 并 config.save():
Property arrowX = ConfigHandler.config.get("Arrow Location", "XCoord", 0);
Property arrowY = ConfigHandler.config.get("Arrow Location", "YCoord", 0);
Property arrowType = ConfigHandler.config.get("Arrow Type", "Use Alt Arrow Texture", false);
Property arrowSize = ConfigHandler.config.get("Arrow Size", "Arrow Size 0-1", 1);
arrowX.set(ConfigHandler.arrowX);
...
ConfigHandler.config.save();
配置只在关闭配置界面时落盘(外加游戏启动时 init 末尾那一次 save())。
在配置界面里改了值但没正常关闭界面(崩溃等),改动会丢失。
界面内操作
节点列表界面右下角的 Config 按钮(btn.config.name)打开配置界面。
| 按钮 | 行为 | 源码 |
|---|---|---|
UP / DOWN |
arrowY ∓1 |
GuiConfig.java:116-121 |
LEFT / RIGHT |
arrowX ∓1 |
GuiConfig.java:122-127 |
RESET |
arrowX = 0; arrowY = 0(只重置位置,不重置大小与贴图) |
GuiConfig.java:128-131 |
Arrow Type |
在 false / true 之间切换 |
GuiConfig.java:132-135 |
<< / >> |
arrowSize ∓0.05 |
GuiConfig.java:136-141 |
此外可以直接按住左键拖拽箭头本身移动:GuiConfig.mouseClicked(:234-259)在箭头 32 像素
点击半径内设 moving = true 并记录起点,mouseClickMove(:262-270)按鼠标位移增量更新 arrowX / arrowY。