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 配置影响的两个伪研究条件注册:
MIRRORvsJAR——FeatureInfusionProvider中按Config.allowMirrors二选一(FeatureInfusionProvider.java:78-82)WARDED—— 仅当Config.wardedStone为真(FeatureCells.java:423-425)
父研究的两种表达
- feature 链:
getFirstValidParentKey(boolean)沿FeatureRegistry的注册顺序回溯,得到前一个 feature 对应的研究 key - 显式伪研究:如
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)。
相关条目
- Essentia Provider - 展示
setConcealed()与setParentsHidden()的典型范例 - AE 要素赋予 - 要素系统与扫描的关系