CompatConfig(angelica-compat)

基本信息

属性 值
类 com.gtnewhorizons.angelica.config.CompatConfig
路径 src/main/java/com/gtnewhorizons/angelica/config/CompatConfig.java
行数 53
注解 @Config(modid = "angelica", filename = "angelica-compat", category = "compat")(:5)
配置文件 config/angelica-compat.cfg,分类 compat
字段数 9

全部 9 个字段

九个开关全部是 @Config.DefaultBoolean(true) + @Config.RequiresMcRestart,即默认全开、全部需要重启 MC 生效。无例外。

# 字段 行 目标 mod
1 fixLotr :11 The Lord of the Rings
2 fixExtraUtils :16 Extra Utilities
3 fixStacksOnStacks :21 Stacks on Stacks
4 fixMinefactoryReloaded :26 MineFactory Reloaded
5 fixThaumcraft :31 Thaumcraft
6 fixThaumicHorizons :36 ThaumicHorizons
7 fixImmersiveEngineering :41 Immersive Engineering
8 fixSecurityCraft :46 SecurityCraft
9 fixNTMSpace :51 NTM:Space

两种消费路径

这 9 个开关被两类完全不同的代码读取,必须区分:

路径 A:驱动 ASM 兼容处理器(5 个)

CompatHandlers 枚举(loading/fml/compat/CompatHandlers.java:16-20)用 Supplier<Boolean> 绑定其中 5 个:

枚举项 绑定的配置 行
STACKS_ON_STACKS CompatConfig.fixStacksOnStacks :16
EXTRA_UTILS CompatConfig.fixExtraUtils :17
IMMERSIVE_ENGINEERING CompatConfig.fixImmersiveEngineering :18
THAUMCRAFT CompatConfig.fixThaumcraft :19
THAUMIC_HORIZONS CompatConfig.fixThaumicHorizons :20

路径 B:直接在 Proxy / Mixin 里判断(4 个)

配置 消费点 行为
fixLotr ClientProxy.java:218 postInit 里反射替换 LOTR BlockRendering 的三个缓存为 ConcurrentHashMap
fixMinefactoryReloaded Mixin 侧 见 late/client mixin 分组
fixSecurityCraft Mixin 侧 同上
fixNTMSpace Mixin 侧 同上

与 CompatHandlers 的数量差

CompatHandlers 枚举只有 5 项,而 CompatConfig 有 9 个字段。差的 4 个(fixLotr、fixMinefactoryReloaded、fixSecurityCraft、fixNTMSpace)不走 ASM transformer 路径 —— 它们通过 Mixin 或 Proxy 直接生效。因此「CompatConfig 有 9 项」不等于「有 9 个 ASM 兼容处理器」。

相关条目