泰姆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}.javasrc/main/java/com/arc/bloodarsenal/common/thaumcraft/{BloodyWandCap,BloodWoodWandUpdate,BloodWoodStaffUpdate,BloodArsenalResearchItem}.java- 注册处:
src/main/java/com/arc/bloodarsenal/common/items/ModItems.java:209-236