StacksOnStacksCompatHandler
基本信息
| 属性 | 值 |
|---|---|
| 类名 | com.gtnewhorizons.angelicacompat.asm.handlers.StacksOnStacksCompatHandler |
| 实现接口 | CompatHandler |
| 启用条件 | PatchesConfig.patchStacksOnStacks == true |
| 注册枚举 | CompatHandlers.STACKS_ON_STACKS |
| 启用版本 | Minecraft 1.7.10(仅客户端) |
功能
为 com.tierzero.stacksonstacks(Stacks on Stacks)mod 同时注册 3 个通用 transformer 目标 + 1 个特定 transformer:
getFieldLevelTessellator()
| 类 | 方法 |
|---|---|
com.tierzero.stacksonstacks.util.ClientUtils |
drawQuad、drawRectangularPrism |
→ 由 FieldLevelTessellatorTransformer 读取并改写。
getTileEntityNullGuard()
| 类 | 方法 |
|---|---|
com.tierzero.stacksonstacks.client.render.RenderTilePile |
renderWorldBlock |
→ 由 GetTileEntityNullGuardTransformer 读取并插入 null 守卫。
getThreadSafeISBRHAnnotations()
| 类 | perThread |
|---|---|
com.tierzero.stacksonstacks.client.render.RenderTilePile |
true |
→ 由 ThreadSafeISBRHAnnotationTransformer 读取并写入类级注解。
extraTransformers()
返回:
ImmutableList.of("com.gtnewhorizons.angelicacompat.asm.transformers.specific.StacksOnStacksTransformer");
→ 由 AngelicaCompatCore 的 getASMTransformerClass() 加入额外 transformer 类数组,强制装载 StacksOnStacksTransformer(即使其不在通用 AsmTransformers 枚举中)。
实现要点
4 个方法都返回 ImmutableMap / ImmutableList,与 CompatRegistry 的 4 个收集 map 一一对应:
CompatHandler 方法 |
CompatRegistry 字段 |
|---|---|
getFieldLevelTessellator |
fieldLevelTessellatorTransforms |
getTileEntityNullGuard |
tileEntityNullGuardTransforms |
getThreadSafeISBRHAnnotations |
threadSafeISBRHAnnotations |
getHUDCachingEarlyReturn |
hudCachingEarlyReturns |
extraTransformers |
单独走 AngelicaCompatCore.getASMTransformerClass() |
输出与调试
无独立日志;统一通过 AngelicaCompatCore 在 DUMP_CLASSES 模式下输出改写后字节码。
数值
| 数值 | 默认 | 含义 |
|---|---|---|
| 通用 transformer 注册 | 3 类 × 2 method map | FieldLevel 2 方法 + NullGuard 1 方法 + ISBRH 1 类 |
| 特定 transformer | 1 类 | StacksOnStacksTransformer |
| 触发开关 | PatchesConfig.patchStacksOnStacks |
配置关闭则 handler 与额外 transformer 均不装载 |
限制
extraTransformers()不会接受通用AsmTransformers枚举里的开关(如enableSodium),仅跟随patchStacksOnStacks装载。ImmutableMap.of不允许重复类名;若同一类出现在两个 map 内会被覆盖(保留先调用的 CompatHandler 结果)。
第三方 mod 集成
仅针对 com.tierzero.stacksonstacks (Stacks on Stacks) mod。
相关条目
- FieldLevelTessellatorTransformer - 本 handler 注册的目标 transformer
- GetTileEntityNullGuardTransformer - 同上
- ThreadSafeISBRHAnnotationTransformer - 同上
- StacksOnStacksTransformer -
extraTransformers()启用的特定 transformer - CompatRegistry - 中央注册表
- AngelicaCompatCore - 装载
extraTransformers()的入口 - PatchesConfig -
patchStacksOnStacks开关