配置项

基本信息

属性 值
配置文件类 ConfigurationHandler(ConfigurationHandler.java:11)
配置文件位置 Forge 建议路径 config/IC2NuclearControl.cfg(由 event.getSuggestedConfigurationFile() 决定,IC2NuclearControl.java:186)
配置分类 全部位于 Configuration.CATEGORY_GENERAL(默认分类)
活跃配置项数 9
已注释配置项数 3
加载时机 preInit(IC2NuclearControl.java:184-186)
热重载 监听 ConfigChangedEvent.OnConfigChangedEvent,重新加载全部配置(ConfigurationHandler.java:70-73)
游戏内配置界面 GuiFactory → ConfigGui(@Mod(guiFactory = ...),IC2NuclearControl.java:62;gui/ConfigGui.java:10-12)

全部配置项

配置键 类型 默认值 赋值目标 引用
alarmRange int 64 IC2NuclearControl.instance.alarmRange ConfigurationHandler.java:24-25
maxAlarmRange int 128 IC2NuclearControl.instance.maxAlarmRange ConfigurationHandler.java:26-27
allowedAlarms String default,sci-fi,factorio-rocket-silo IC2NuclearControl.instance.allowedAlarms ConfigurationHandler.java:28-30
remoteThermalMonitorEnergyConsumption int 1 IC2NuclearControl.instance.remoteThermalMonitorEnergyConsumption ConfigurationHandler.java:31-32
infoPanelRefreshPeriod int 20 IC2NuclearControl.instance.screenRefreshPeriod ConfigurationHandler.java:33-34
sensorDataRefreshPeriod int 4 IC2NuclearControl.instance.dataRefreshPeriod ConfigurationHandler.java:35-39
rangeTriggerRefreshPeriod int 20 IC2NuclearControl.instance.rangeTriggerRefreshPeriod ConfigurationHandler.java:40-41
SMPMaxAlarmRange int 256 IC2NuclearControl.instance.SMPMaxAlarmRange ConfigurationHandler.java:42-43
recipes String normal IC2NuclearControl.instance.recipes ConfigurationHandler.java:50-54

注意 infoPanelRefreshPeriod 与 screenRefreshPeriod、sensorDataRefreshPeriod 与 dataRefreshPeriod 配置键名与字段名不一致。

allowedAlarms 读取后会执行 .replaceAll(" ", "") 去除所有空格(ConfigurationHandler.java:30)。recipes 的注释写明有效输入为 normal / old / gregtech(ConfigurationHandler.java:52-54),但代码实际还接受 gregtech5、normal-force、gregtech-force(IC2NuclearControl.java:226,229,237),共 5 个分支。

各项作用

配置项 实际作用点
alarmRange 警报器 TileEntity 构造时的默认告警半径(TileEntityHowlerAlarm.java:65),并持久化到 NBT range(TileEntityHowlerAlarm.java:270)
maxAlarmRange 服务端每 tick 广播 PacketAlarm 时携带的半径上限(ServerTickHandler.java:30)
allowedAlarms 允许的警报音名称列表,随 PacketAlarm 广播;客户端校验后填入 availableAlarms(ServerTickHandler.java:30、ClientTickHandler.java:73,77)
remoteThermalMonitorEnergyConsumption 远程温度监控器每 tick 耗电(TileEntityRemoteThermo.java:97,179)
infoPanelRefreshPeriod 信息屏刷新周期
sensorDataRefreshPeriod 传感器数据刷新周期;注释明确说明「不能长于 infoPanelRefreshPeriod」(ConfigurationHandler.java:38)
rangeTriggerRefreshPeriod 范围触发器的 tickRate(TileEntityRangeTrigger.java:191)
SMPMaxAlarmRange SMP 模式下的最大告警范围
recipes 决定加载哪一套合成配方,见配方组

已注释的配置项

以下 3 项在源码中处于注释状态,不参与运行:

配置键 默认值(注释中) 引用
isHttpSensorAvailableClient false ConfigurationHandler.java:44-45
isHttpSensorAvailableServer true ConfigurationHandler.java:46-47
httpSensorKey UUID.randomUUID() ConfigurationHandler.java:48-49

对应字段声明同样被注释(IC2NuclearControl.java:113-114)。这三项原本用于控制「网页升级」的配方下发与鉴权,现已停用 —— 详见升级件中的说明。

错误处理

配置加载整体包在 try { ... } catch (Exception e) 中,异常时记录日志 "Mod has a problem loading it's configuration"(ConfigurationHandler.java:55-57)。finally 块在 configuration.hasChanged() 为真时写盘(ConfigurationHandler.java:58-60)—— 因此即使某个键格式错误导致中途抛出,已成功读取的键仍会保存。

相关条目