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

相关条目