AsmTransformers
基本信息
| 属性 | 值 |
|---|---|
| 类名 | com.gtnewhorizons.angelicacompat.asm.AsmTransformers |
| 类型 | enum |
| 注册方式 | enum 静态注册(4 个常量) |
| 上下文 | enum 内部嵌套 private enum Side { CLIENT, SERVER } |
功能
AngelicaCompat 的通用 ASM transformer 装载清单。当前 4 个常量,每个常量对应一个 transformer 全限定类名:
| 枚举常量 | 描述 | applyIf |
Side |
transformer 类 |
|---|---|---|---|---|
FIELD_LEVEL_TESSELLATOR |
“Field Level Tessellator Transformer” | () -> AngelicaConfig.enableSodium |
CLIENT |
com.gtnewhorizons.angelicacompat.asm.transformers.generic.FieldLevelTessellatorTransformer |
GET_TILE_ENTITY_NULL_GUARD |
“getTileEntity Null Guard Transformer” | () -> AngelicaConfig.enableSodium |
CLIENT |
com.gtnewhorizons.angelicacompat.asm.transformers.generic.GetTileEntityNullGuardTransformer |
THREAD_SAFE_ISBRH_ANNOTATION |
“ThreadSafeISBRHAnnotation Transformer” | () -> AngelicaConfig.enableSodium |
CLIENT |
com.gtnewhorizons.angelicacompat.asm.transformers.generic.ThreadSafeISBRHAnnotationTransformer |
HUDCACHING_EARLY_RETURN |
“HUDCaching Early Return Transformer” | () -> AngelicaConfig.enableHudCaching |
CLIENT |
com.gtnewhorizons.angelicacompat.asm.transformers.generic.HUDCachingEarlyReturnTransformer |
装载流程
getTransformers() 返回当前应装载的 transformer 全限定类名数组:
public static String[] getTransformers() {
Set<String> loadedCoreMods = GTNHMixinsCore.getLoadedCoreMods();
List<String> transformers = new ArrayList<>();
for (AsmTransformers transformer : values()) {
if (transformer.shouldBeLoaded(loadedCoreMods)) {
transformers.addAll(Arrays.asList(transformer.transformerClasses));
}
}
// 反向 + Collections.sort 合并 + 插件兼容
...
return transformers.toArray(new String[0]);
}
判定逻辑(每个 transformer):
applyIf.get() == true;targetedMods全部装载(默认无);excludedMods均未装载(默认无);shouldLoadSide()(CLIENT / SERVER)匹配。
字段
| 字段 | 含义 |
|---|---|
applyIf |
Supplier<Boolean>:开关 |
side |
适用端 |
transformerClasses |
多个 transformer 全限定名(数组,便于多对一) |
targetedMods |
目标 mod 列表(必须全部装载) |
excludedMods |
排除 mod 列表(必须全部未装载) |
数值
| 枚举常量 | 默认装载 |
|---|---|
FIELD_LEVEL_TESSELLATOR |
enableSodium=true |
GET_TILE_ENTITY_NULL_GUARD |
enableSodium=true |
THREAD_SAFE_ISBRH_ANNOTATION |
enableSodium=true |
HUDCACHING_EARLY_RETURN |
enableHudCaching=true |
限制
- 没有"运行时切换"——仅在
getTransformers()调用时读applyIf; - 当前 4 个 transformer 都标
Side.CLIENT,服务端永远不装载。
第三方 mod 集成
依赖 AngelicaConfig.enableSodium 与 enableHudCaching 两个开关。
相关条目
- CompatHandlers - 兄弟 handler 注册枚举
- CompatRegistry - 数据中央注册表
- AngelicaCompatCore - 装载入口
- 全部 4 个 transformer 条目: