Thaumcraft 集成
基本信息
| 属性 | 值 |
|---|---|
| 检测方式 | Loader.isModLoaded("Thaumcraft"),AlchemicalWizardry.java:3245 |
| 加载阶段 | postInit(FMLPostInitializationEvent) |
| 声明依赖 | compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") |
| 源码注释 | // TODO Thaumcraft Integration(AlchemicalWizardry.java:3244) |
| 影响 | 会注册 4 个物品 + 4 条绑定配方 |
这是本模组中唯一一个可选依赖会向物品注册表写入内容的集成。其余 17 个
Loader.isModLoaded分支只设置布尔标志、注册 handler 或发送黑名单消息,不新增物品。按 ROADMAP §0.11 的跨模组隔离要求,本条目内容不代表未安装 Thaumcraft 时的 Blood Magic 内容集。
注册的 4 个物品
在 isThaumcraftLoaded 为 true 的分支内创建并注册(AlchemicalWizardry.java:3248-3257):
| 注册名 | 字段 | 类 | armorType | 中文名 |
|---|---|---|---|---|
sanguineHelmet |
ModItems.sanguineHelmet |
ItemSanguineArmour |
0 | — |
sanguineRobe |
ModItems.sanguineRobe |
ItemSanguineArmour |
1 | — |
sanguinePants |
ModItems.sanguinePants |
ItemSanguineArmour |
2 | — |
sanguineBoots |
ModItems.sanguineBoots |
ItemSanguineArmour |
3 | — |
代码:
ModItems.sanguineHelmet = new ItemSanguineArmour(0).setUnlocalizedName("sanguineHelmet");
...
GameRegistry.registerItem(ModItems.sanguineHelmet, "sanguineHelmet");
这 4 个字段在 ModItems 中已声明(ModItems.java:123-126)但不在 ModItems.registerItems() 中注册 —— 它们的唯一注册点就是这段 Thaumcraft 分支。物品类 ItemSanguineArmour 位于 WayofTime.alchemicalWizardry.common.items.thaumcraft(该包下仅此 1 个类)。
中文名未本地化:zh_CN.lang 中不存在 sanguineHelmet 等键。
Aspect 标记
4 件物品全部注册 AspectList(AlchemicalWizardry.java:3264-3270):
AspectList aspectList = new AspectList();
aspectList.add(Aspect.ARMOR, 5).add(Aspect.MAGIC, 5);
即每件 ARMOR 5 + MAGIC 5,无种类差异。
4 条绑定配方
绑定材料为 Thaumcraft 的秘银套装备(GameRegistry.findItem("Thaumcraft", ...),AlchemicalWizardry.java:3260-3262):
| 产物 | 绑定材料 | 条件 |
|---|---|---|
sanguineHelmet |
ItemApi.getItem("itemGoggles", 0)(thaumcraft 护目镜) |
itemGoggles != null |
sanguineRobe |
ItemChestplateThaumium(秘银胸甲) |
非空 |
sanguinePants |
ItemLeggingsThaumium(秘银护腿) |
非空 |
sanguineBoots |
ItemBootsThaumium(秘银靴) |
非空 |
每条都包在独立的 null 检查中(:3272-3288),材料缺失则跳过该条而不中断。
异常处理
整段 Thaumcraft 集成被 try { ... } catch (Exception e) { e.printStackTrace(System.err); } 包裹(:3248-3294)。异常时仅向 System.err 打印堆栈,不写日志、不通知玩家 —— 4 件物品会静默缺失。这与模组其余部分用 AlchemicalWizardry.logger 记录的做法不一致。
数值
| 数值名 | 值 |
|---|---|
| 注册物品数 | 4 |
| 绑定配方数 | 4 |
| 每件物品的 Aspect | ARMOR 5 + MAGIC 5 |
| 异常处理 | catch (Exception) → 仅 printStackTrace |