ThE 研究体系(ResearchRegistry)

基本信息

属性 值
实现类 thaumicenergistics.common.registries.ResearchRegistry
研究标签名 thaumicenergistics(TERESEARCH_TAB = ThaumicEnergistics.MOD_ID,ResearchRegistry.java:164)
复杂度常量 COMPLEXITY_SMALL = 1、COMPLEXITY_MEDIUM = 2、COMPLEXITY_LARGE = 3(ResearchRegistry.java:159-161)
伪研究实现 thaumicenergistics.common.integration.tc.PseudoResearchItem(继承 ResearchItem)
注册时机 ThaumicEnergistics.postInit → proxy.registerFeatures() → FeatureRegistry.registerFeatures()(ThaumicEnergistics.java:157)

功能

ThE 在 Thaumcraft 4 的神秘录中建立独立的研究标签页(thaumicenergistics),共注册 19 个正式研究节点与 12 个伪研究占位节点。

标签页本身由 FeatureThaumicEnergisticsResearch.registerResearch() 通过 ResearchCategories.registerCategory(TERESEARCH_TAB, TAB_ICON, RESEARCH_BACKGROUND) 建立(FeatureThaumicEnergisticsResearch.java:64-68),并在其上放置一个总入口 ResearchTypes.BASIC —— 该节点要素列表为空、复杂度为 0、设为 setRound().setAutoUnlock()(即自动解锁的圆形起点,:70-84)。它是 ThE 全部研究链的根。

19 个正式研究(ResearchTypes 枚举,ResearchRegistry.java:67-87)

研究 key 一律为 "TE" + internalName,完整 id 再前缀 modid,即 thaumicenergistics.TE<NAME>(:105、:133-135)。column/row 为神秘录中的格子坐标。

枚举 完整研究 id 格子 (col,row) 关联内容
BASIC thaumicenergistics.TERESEARCH (0, 0) 基础/总入口
CORES thaumicenergistics.TECORES (0, -2) Diffusion Core / Coalescence Core
STORAGE thaumicenergistics.TESTORAGE (0, 2) 要素电池族
IO thaumicenergistics.TEIO (-2, -2) 三种要素总线
ARCANE_TERMINAL thaumicenergistics.TEARCANETERM (2, -1) Arcane Crafting Terminal
ESSENTIA_PROVIDER thaumicenergistics.TEESSPROV (-2, -4) Essentia Provider
INFUSION_PROVIDER thaumicenergistics.TEINFPROV (-5, -2) Infusion Provider
ADVANCED_INFUSION_PROVIDER thaumicenergistics.TEADVINFPROV (-7, -2) Advanced Infusion Provider
IRON_GEARBOX thaumicenergistics.TEIRONGEARBOX (4, -5) Iron Gear Box
THAUMIUM_GEARBOX thaumicenergistics.TETHAUMGBOX (4, -6) Thaumium Gear Box
CERTUS_DUPE thaumicenergistics.TECERTUSDUPE (-5, -5) 赛特斯石英复制
VIS_RELAY_INTERFACE thaumicenergistics.TEVISINT (4, -1) Vis Relay Interface
ARCANE_ASSEMBLER thaumicenergistics.TEARCANEASSEMBLER (6, -1) Arcane Assembler
KNOWLEDGE_INSCRIBER thaumicenergistics.TEKNOWLEDGEINSCRIBER (6, 0) Knowledge Inscriber
FOCUS_WRENCH thaumicenergistics.TEFOCUSWRENCH (-3, -7) Wand Focus: AE Wrench
ESSENTIA_VIBRATION_CHAMBER thaumicenergistics.TEESSVIBCMBR (1, -4) Essentia Vibration Chamber
DISTILLATION_PATTERN_ENCODER thaumicenergistics.TEDISTILLATIONPATTERNENCODER (-4, -4) Distillation Pattern Encoder
GOLEM_BACKPACK thaumicenergistics.TEGOLEMWIFIBACKPACK (0, -6) Wireless Golem Backpack
CELL_MICROSCOPE thaumicenergistics.TECELLMICROSCOPE (4, -4) Cell Microscope

12 个伪研究(PseudoResearchTypes 枚举,ResearchRegistry.java:20-33)

伪研究是指向 Thaumcraft 原版研究节点的占位符。它们让 ThE 的研究能挂到 ThA 原版研究之下作为前置,而不必复制原版内容。

实现方式(PseudoResearchItem.newPseudo,:60-80):

ResearchItem realResearch = ResearchCategories.researchCategories
        .get(realCategory).research.get(realKey);
// 复制原版图标(icon_item 或 icon_resource)
super(key, category, new AspectList(), column, row, 1, icon);
this.setStub().setHidden();     // 标记为 stub + hidden

即:要素列表为空、复杂度固定为 1、setStub() + setHidden(),图标直接复用原版研究的图标。完整 key 为 thaumicenergistics.Pseudo.<原版key>(:48)。

枚举 伪研究 key(完整) 指向的 ThA 原版研究 分类 格子
DISTILESSENTIA …Pseudo.DISTILESSENTIA DISTILESSENTIA ALCHEMY (-2, 0)
TUBEFILTER …Pseudo.TUBEFILTER TUBEFILTER ALCHEMY (-3, 0)
MIRROR …Pseudo.MIRROR MIRROR ARTIFICE (-4, 0)
JAR …Pseudo.JARLABEL JARLABEL ALCHEMY (-4, 0)
INFUSION …Pseudo.INFUSION INFUSION ARTIFICE (-6, 0)
DUPE …Pseudo.ALCHEMICALDUPLICATION ALCHEMICALDUPLICATION ALCHEMY (-5, -6)
WARDED …Pseudo.WARDEDARCANA WARDEDARCANA ARTIFICE (1, 2)
FOCUSFIRE …Pseudo.FOCUSFIRE FOCUSFIRE THAUMATURGY (-4, -7)
VISPOWER …Pseudo.VISPOWER VISPOWER THAUMATURGY (4, 0)
SCEPTRE …Pseudo.SCEPTRE SCEPTRE THAUMATURGY (5, 0)
COREUSE …Pseudo.COREUSE COREUSE GOLEMANCY (3, -6)
COREGATHER …Pseudo.COREGATHER COREGATHER GOLEMANCY (1, -6)

注册是按需的(registerPsudeoResearch() 带 hasRegistered 幂等保护,:51-63),且受 ThA 配置影响的两个伪研究条件注册:

  • MIRROR vs JAR —— FeatureInfusionProvider 中按 Config.allowMirrors 二选一(FeatureInfusionProvider.java:78-82)
  • WARDED —— 仅当 Config.wardedStone 为真(FeatureCells.java:423-425)

父研究的两种表达

  1. feature 链:getFirstValidParentKey(boolean) 沿 FeatureRegistry 的注册顺序回溯,得到前一个 feature 对应的研究 key
  2. 显式伪研究:如 ARCANE_ASSEMBLER 同时设 setParents(getFirstValidParentKey(false), PseudoResearchTypes.SCEPTRE.getKey())(FeatureAutocrafting_Arcane.java:161-162)

数值

数值名 值 来源
正式研究节点数 19 ResearchTypes 枚举(ResearchRegistry.java:67-87)
伪研究节点数 12 PseudoResearchTypes 枚举(:20-33)
研究标签名 thaumicenergistics TERESEARCH_TAB(:164)
正式研究 key 前缀 TE this.internalName = "TE" + internalName(:105)
伪研究 key 格式 thaumicenergistics.Pseudo.<key> getKey()(:48)
复杂度范围 1 / 2 / 3 COMPLEXITY_SMALL/MEDIUM/LARGE(:159-161)
伪研究复杂度 恒为 1 super(..., 1, icon)(PseudoResearchItem.java:33)
伪研究要素 恒为空 new AspectList() 同上

交互

触发 行为
打开 Thaumonomicon 出现 thaumicenergistics 独立标签页
查看伪研究 显示为 stub 且隐藏,但可作为父前置参与研究链
解锁前置 ThA 研究 伪研究自动生效(它本身无独立研究成本)
禁用 ThA 某些特性 对应伪研究不注册(allowMirrors / wardedStone)
研究页 每个正式研究按各自 feature 的定义有 2–10 页不等

合成配方

研究体系本身不含配方。各研究页面中包含的配方页直接引用 RecipeRegistry 中对应的配方对象(ResearchPage(recipe)),例如 TEIRONGEARBOX 的 4 页中包含铁齿轮与铁齿轮箱两个配方(FeatureGearbox.java:114-118)。

相关条目