Mod Compat

基本信息

属性 值
兼容类 witchinggadgets.common.WGModCompat
初始化时机 postInit(WitchingGadgets.java:160)
模组加载检测字段数 8(WGModCompat.java:57-66)
声明的前置/软依赖数 10(@Mod(dependencies = ...),WitchingGadgets.java:53-62)

功能

模组对 Thaumcraft 是硬前置,对另外 9 个模组是软依赖。所有软依赖在 @Mod 注解中用 after: 前缀声明(不是 required-after:),因此缺失时不会崩溃,只会跳过对应特性。

硬前置

模组 声明方式 说明
Thaumcraft required-after:Thaumcraft 无版本约束。整个模组的核心是要素(Essentia)体系与研究系统,没有 Thaumcraft 无法工作

软依赖(9 个)

模组 modid 检测 加载后行为
Forbidden Magic Loader.isModLoaded("ForbiddenMagic")(WGModCompat.java:63) WGResearch.java:14 导入 fox.spiteful.forbidden.DarkAspects,用于研究中的异端要素
TConstruct Loader.isModLoaded("TConstruct")(WGModCompat.java:58) 提供 TConstruct 矿种的结晶簇配方(WG_Tcon_clusters.java)
Twilight Forest Loader.isModLoaded("TwilightForest")(WGModCompat.java:59) 启用 Mantle of the Raven(配置注释注明需安装)
Tainted Magic Loader.isModLoaded("TaintedMagic")(WGModCompat.java:57) 原本用于元初装备的启用条件,但该判断已被注释(WGContent.java:458,471 的 // if (WGModCompat.loaded_TaintedMagic) {)
GregTech Loader.isModLoaded("gregtech_nh")(WGModCompat.java:66) 启用地狱锻炉的批量材料配方生成(见 Recipe System)
MiscUtils after:miscutils @Mod 注解声明
Mystcraft after:Mystcraft @Mod 注解声明
Thaumic Tinkerer Loader.isModLoaded("ThaumicTinkerer")(WGModCompat.java:62) 赋值为 loaded_TT
Thaumic Exploration after:ThaumicExploration @Mod 注解声明
ForgeMultipart Loader.isModLoaded("ForgeMultipart")(WGContent.java:342) 启用全部多方块机器的要素透传与魔杖交互

额外检测但不在 @Mod 中声明

模组 modid 用途
DreamCraft Loader.isModLoaded("dreamcraft")(WitchingGadgets.java:85) 赋值为常量 IS_DREAMCRAFT_LOADED
Thaumic Boots Loader.isModLoaded("thaumicboots")(WitchingGadgets.java:96) 赋值为 isBootsActive;并提供配置项 coremod_allowBootsRepair 用于修复旅者之靴
Enviromine Loader.isModLoaded("enviromine")(WGModCompat.java:60) 环境矿兼容
Railcraft Loader.isModLoaded("Railcraft")(WGModCompat.java:61) 地狱锻炉结构方块的默认来源(WGConfig.java:29)
Ender IO Loader.isModLoaded("EnderIO")(WGModCompat.java:64) Soul Tether 与其他 soulbound 实现的冲突规避
Traveller’s Gear Loader.isModLoaded("TravellersGear")(WGModCompat.java:66) 注册接口在 WGContent.java:549 被注释掉(// FMLInterModComms.sendMessage("TravellersGear", ...))
MineTweaker 3 Loader.isModLoaded("MineTweaker3")(WGModCompat.java:68) 调用 WGMinetweaker.init()

元素与物品字典集成

模组还向 Thaumcraft 的要素系统注册了大量第三方矿石要素(Botania / TConstruct / Metallurgy),详见 Thaumcraft 要素挂钩。

ForgeMultipart 的多方块注册(WGMultiPartHandler.java:36-44):

MultiPartRegistry.registerConverter(this);
MultiPartRegistry.registerParts(...);
MultipartGenerator.registerPassThroughInterface("thaumcraft.api.aspects.IEssentiaTransport", true, true);
MultipartGenerator.registerPassThroughInterface("thaumcraft.api.wands.IWandable", true, true);

后两项是透传接口(pass-through),让多方块中的其他方块保留要素输送与魔杖交互能力。

数值

数值名 值
硬前置模组数 1(Thaumcraft)
@Mod 中声明的软依赖数 9
代码中实际检测的模组数 8(WGModCompat.java:57-66,68,其中 MineTweaker 3 为条件调用不赋值字段)
代码中额外检测但未在注解声明的模组数 7(DreamCraft / Thaumic Boots / Enviromine / Railcraft / Ender IO / Traveller’s Gear / MineTweaker 3)
透传接口数 2(IEssentiaTransport、IWandable)

交互

触发 行为
未安装 ForgeMultipart WGMultiPartHandler.instance.init() 不执行(WGContent.java:342),全部多方块机器不可用
未安装 GregTech 地狱锻炉配方退化为单条铁 → 钢(WGContent.java:295)
未安装 Railcraft 地狱锻炉结构回退为下界砖 + 灵魂沙 + 黑曜石(WGContent.java:381-389)
同时安装 Ender IO 等 soulbound 模组 soulboundBaubles / soulboundGalacticraft 配置项可让 Soul Tether 交出对应背包的处理权(WGConfig.java:166-178)

相关条目