配置文件

基本信息

属性 值
文件名 config/ThaumicMachina.cfg(event.getSuggestedConfigurationFile() 按 modId 原样拼 config/<modId>.cfg,保留大写)
加载时机 ProxyCommon.preInit(core/proxy/ProxyCommon.java:35-43)
分类 RESEARCH(Config.CATEGORY_RESEARCH)
配置项总数 1

唯一配置项

research.concept.mode(core/config/Config.java:18-22):

值 含义 对 concept = true 的研究项的影响
0 Normal(默认) 仅 setRound(),无额外标记 → 需正常研究
1 Easy (purchased) 追加 setSecondary() → 可在研究页直接购买
2 Auto-Unlock 追加 setAutoUnlock() → 自动解锁,无需研究

源码注释原文:

Property conceptResearchModeProp = this.config.get(CATEGORY_RESEARCH, "research.concept.mode", 0);
conceptResearchModeProp.comment =
    "Concept research mode. 0 = Normal, 1 = Easy (purchased), 2 = Auto-Unlock.";
Settings.conceptResearchMode = conceptResearchModeProp.getInt(0);

生效点在 TMResearchItem 的两个构造器(research/TMResearchItem.java:29-35 与 :44-50),对每个 concept = true 的 ResearchItem 逐个应用。全树共 12 个 concept 研究受影响(见 研究树)。

数值

数值 值
配置项数 1
键 research.concept.mode
分类 RESEARCH
取值范围 0 / 1 / 2
默认值 0
受影响研究项 12
Settings.conceptResearchMode 静态字段初值 0(core/config/Settings.java:6)

交互

配置在 preInit 读取,早于 ResearchHelper.loadResearch()(postInit)与 TMObjects.loadObjects()(preInit 内、但研究项尚未构造),因此修改后必须重启客户端才生效。

源码缺陷

  • lang 承诺的「第三档」不存在。INFORMATION_CONCEPTS 的研究页正文(assets/thaumicmachina/lang/en_US.lang:58)写:

    “Concepts can be customized in the config file (turned to easy mode (purchasable), or turned off completely (automatically unlocked)).”

    但配置只有 3 档且没有「完全关闭」—— mode 0(Normal)仍要求正常研究,mode 2(Auto-Unlock)才是「自动解锁」。文本与实现的三档映射不一致。

  • getInt(0) 越界值不校验。写入 research.concept.mode = 5 时 Settings.conceptResearchMode = 5,而 TMResearchItem 只用 == 1 / == 2 判断,两者皆不匹配 → 静默退回 Normal 行为,无日志无报错。

  • load() 异常被吞(core/proxy/ProxyCommon.java:36-43):catch (Exception e) 只打印 "Thaumic Machina had a problem loading its configuration file",吞掉了异常对象本身(未 log.error(e)),排查时无法得知根因。finally 中的 config.config.save() 会在读取失败时写回一个空/默认配置文件,可能覆盖用户配置。

  • 静态字段双重初始化:Settings.conceptResearchMode 在类加载时为 0,Config.loadConfig() 再赋值。若 loadConfig() 抛异常,Settings 保持 0 —— 与默认行为一致,属安全降级。

  • Settings 类只有 1 个字段,整个 config 系统是专为这 1 个开关搭建的。

相关条目

  • 研究树 - 12 个 concept 研究节点受本配置影响
  • 创意标签页 - 另一个 preInit 期初始化的全局对象