配置项

本 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。

相关条目