Forbidden Magic 研究

[!INFO] 注册真源:ForbiddenResearch.java(主段)+ 3 个 compat 文件 调用点:Forbidden.java:85 ForbiddenResearch.addResearch()(FMLPostInitializationEvent)

Forbidden Magic 共注册 54 个研究条目,但主段只有 34 个,其余 20 个分散在三个条件兼容中。这是本模组最容易统计错误的地方:naive grep registerResearchItem 会得到 54,但玩家实际能看到的数量取决于装了哪些兼容 mod。

主段研究(34 个,无条件)

ForbiddenResearch.addResearch() 注册,注册分类均为 FORBIDDEN:

CRYSTALWELL、PRIMEWELL、TRANSEMERALD、BLACKFLOWER、RIDINGCROP、CONSUMING、EDUCATIONAL、SCHOOLS、NETHERSHARDS、HELLFIRE、ROD_profane、SUBCOLLAR、SKULLAXE、RINGFOOD、ARCANECAKE、FOCUSBLINK、MORPHTOOLS、ROD_infernal、WRATH、GREEDY、CORRUPTING、CLUSTER、IMPACT、VOIDTOUCHED、FORK、WRATHCAGE、TAINTSHOVEL、TAINTPICK、ROD_tainted、TAINTTREE、TAINTSTONE

[!NOTE] CRYSTALWELL、NETHERSHARDS、WRATHCAGE 各出现 2 次 DarkResearchItem 构造 —— 说明这些条目在源码中按条件分支各写了一份(不同配方形态),而非重复注册同一 id。DarkResearchItem 包装 ResearchItem,同一 id 的后注册会覆盖前者。

条件研究(20 个)

Thaumic Tinkerer 兼容(3 个,compat/Compat.java)

id
ROD_witchwood
CAP_vinteum
ROD_witchwood_staff

Botania 兼容(10 个,compat/ForbiddenBotany.java)

id 备注
BOTANY 父研究 stub
ROD_livingwood
ROD_dreamwood 虚拟研究 .setVirtual(),无实际物品
ROD_dreamwood_staff 父 ROD_dreamwood,setConcealed()
CAP_manasteel setSecondary().setConcealed()
CAP_elementium
CAP_terrasteel
EUCLIDAISY Botania 功能花
WHISPERWEED Botania 功能花
TAINTHISTLE Botania 功能花

[!NOTE] 三个花的研究(EUCLIDAISY / WHISPERWEED / TAINTHISTLE)只在装了 Botania 时存在,因为它们是 Botania 的 SubTile 而非方块。见魔杖部件与下方说明。

Blood Magic 兼容(7 个,compat/BloodMagic.java)

id 备注
BLOODMAGIC 父研究 SCHOOLS,.setRound().setStub().setAutoUnlock()
ROD_blood 父 BLOODMAGIC
ROD_blood_staff 父 ROD_blood
CAP_alchemical 父 BLOODMAGIC
BLOODWELL
BLOODRAPIER
ELDRITCHORB

[!IMPORTANT] compat/BloodMagic.java 全文直接 import com.gtnewhorizon.gtnhlib.api.thaumcraft.FormattedResearchPage 与 thaumcraft.api.research.ResearchPage,并通过 Compat.getItem("AWWayofTime", ...) 取得 12 个血魔法物品(masterBloodOrb、imbuedSlate、magicales、aether、terrae、aquasalus、incendium、sanctus、tennebrae、weakBloodOrb、demonBloodShard、bucketLife、transcendentBloodOrb)。这些是 AWWayofTime 的物品,不是本 mod 的。

Botania SubTile 说明

tiles/ 包下的 4 个 SubTile* 类(SubTileTainthistle、SubTileWhisperweed、SubTileEuclidaisy、SubTileBloodthorn)虽然物理位置在主包,但注册只发生在 compat/ForbiddenBotany.java 中,通过 BotaniaAPI.registerSubTile(...) / registerSubTileSignature(...) 注册 —— 它们是 Botania 魔法花,不是 Thaumcraft 植物。

SubTileTainthistle 继承 Botania 的 SubTileGenerating(产精华),其余 3 个继承 SubTileFunctional。

关联:配置项 · 通用物品