泰姆craft 集成

基本信息

与 Thaumcraft / ForbiddenMagic 的集成,在 postInit() 中 Loader.isModLoaded("ForbiddenMagic") 且 BloodArsenalConfig.thaumcraftIntegration 为真时触发 (BloodArsenal.java:188-193),做两件事: ModItems.registerThaumcraftItems() 与 BloodArsenalThaumcraft.addResearch()。

⚠️ 声明的软依赖是 after:ForbiddenMagic(BloodArsenal.java:51), 不是 Thaumcraft。判定用的是 Loader.isModLoaded("ForbiddenMagic")。 Thaumcraft 本体不在 mirror/ 中,本条目只记录本 mod 侧的注册内容。

一、魔杖材料(2 个物品)

ModItems.registerThaumcraftItems() 直接调 GameRegistry.registerItem, 不经 registerItem 辅助方法(因此字面量 grep 会漏):

注册名 类 meta
wand_cores ItemWandCores 0 / 1(魔杖核心 / 杖核心)
wand_caps ItemWandCaps 0(炼金术帽)

两者都用 setUnlocalizedName + GameRegistry.registerItem, getSubItems 各返回对应 meta 列表。

二、注册的 3 个组件

字段 类型 注册名 数值
WAND_ROD_BLOOD_INFUSED_WOOD WandRod blood_wood 耐久 100、核心 wandCore meta 0、容量 16、BloodWoodWandUpdate
STAFF_ROD_BLOOD_INFUSED_WOOD StaffRod blood_wood 耐久 60、核心 wandCore meta 1、容量 27、BloodWoodStaffUpdate
WAND_CAP_BLOOD_INFUSED_IRON BloodyWandCap blood_iron 效率 0.85、 Aspects [WATER]、附加 0.80、帽 wandCap meta 0、等级 5

贴图路径统一为 bloodarsenal:models/wand_rod_blood_wood.png / bloodarsenal:models/wand_cap_blood_iron.png。

三、3 条研究

BloodArsenalThaumcraft.addResearch() 注册 3 条研究, 其中第 1、2 条在本 mod 研究树(FORBIDDEN),第 3 条挂在泰姆craft 本体的 ROD_blood / ROD_blood_staff 之下(registerResearchItem 出现 3 次)。

研究键 父项 阶段 耗视 页面数 注入配方
ROD_blood_wood ROD_blood 4 -5 3(2 文本 + 1 配方) ROD_blood_wood
CAP_blood_iron ROD_blood_wood, CAP_alchemical 2 -5 2(1 文本 + 1 配方) CAP_blood_iron
ROD_blood_wood_staff ROD_blood_wood, ROD_blood_staff 5 -3 2(1 文本 + 1 配方) ROD_blood_wood_staff

ROD_blood_wood 与 CAP_blood_iron 的父项里各有一个是泰姆craft 本体条目(ROD_blood / CAP_alchemical),所以它们也挂在原树里。 ROD_blood_wood_staff 额外调了 .setHidden().setSpecial() —— 在研究树上隐藏且标记为特殊,前两条没有。这是三条研究里唯一的差别。

研究键共 6 个:ROD_blood、ROD_blood_staff、ROD_blood_wood、 ROD_blood_wood_staff、CAP_alchemical、CAP_blood_iron (后两者中 ROD_blood / ROD_blood_staff / CAP_alchemical 属泰姆craft 本体)。

注入配方的要素(逐条实读)

配方键 注入次数 输入物品 要素列表 产物
ROD_blood_wood 3 wandCore meta 0 LIFE 32, MAGIC 24, TOOL 16 blood_wood 魔杖杆
CAP_blood_iron 3 wandCap meta 0 LIFE 24, WATER 24, MAGIC 20 炼金术帽
ROD_blood_wood_staff 6 wandCore meta 1 LIFE 64, MAGIC 48, WATER 32, TOOL 24 血木法杖杆

ROD_blood_wood 与 CAP_blood_iron 的输入数组为 [变形催化剂 ×2, 血浸木/血浸铁 ×3, 血浸萤石粉 ×1/×2]。 法杖杆的输入数组长 13(wandCore meta 0、变形催化剂、血浸萤石粉、 血浸木交替重复三轮再加 wandCore meta 0 与一轮材料)。

研究消耗的要素

研究 要素
ROD_blood_wood LIFE 10, MAGIC 8, TOOL 4
CAP_blood_iron LIFE 6, TOOL 2
ROD_blood_wood_staff LIFE 16, MAGIC 12, TOOL 8

四、扭曲(Warp)注册

共 6 次调用:

调用 参数
addWarpToResearch("ROD_blood_wood", 2) 2
addWarpToItem(wandCore meta 0, 2) 2
addWarpToResearch("CAP_blood_iron", 1) 1
addWarpToItem(wandCap **无 meta**, 1) 1
addWarpToResearch("ROD_blood_wood_staff", 3) 3
addWarpToItem(wandCore meta **1**, 4) 4

addWarpToItem(new ItemStack(ModItems.wandCap), 1) 没有指定 meta, 其余三处都写了 meta —— 全 mod 唯一一处不一致。

研究机制说明(ResearchCategories 型注册)

研究通过 BloodArsenalResearchItem(...).setPages(...).setParents(...).registerResearchItem() 注册 —— 这是反射式写入 ResearchCategories,字面量 grep 完全看不到(既无 registerBlock 也无 registerItem)。 coverage_census.py 必然漏统计本 mod 的研究数量。

相关条目

源码

  • src/main/java/com/arc/bloodarsenal/common/thaumcraft/BloodArsenalThaumcraft.java:22+
  • src/main/java/com/arc/bloodarsenal/common/thaumcraft/ItemWand{Cores,Caps}.java
  • src/main/java/com/arc/bloodarsenal/common/thaumcraft/{BloodyWandCap,BloodWoodWandUpdate,BloodWoodStaffUpdate,BloodArsenalResearchItem}.java
  • 注册处:src/main/java/com/arc/bloodarsenal/common/items/ModItems.java:209-236