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) |
相关条目