ThaumcraftCompatHandler
基本信息
| 属性 | 值 |
|---|---|
| 类名 | com.gtnewhorizons.angelicacompat.asm.handlers.ThaumcraftCompatHandler |
| 实现接口 | CompatHandler |
| 启用条件 | PatchesConfig.patchThaumcraft == true |
| 注册枚举 | CompatHandlers.THAUMCRAFT |
| 启用版本 | Minecraft 1.7.10(仅客户端) |
功能
把 Thaumcraft 的客户端 HUD overlay 方法加入 Angelica HUDCaching 的早退目标:
| 类 | 方法 |
|---|---|
thaumcraft.client.lib.RenderEventHandler |
renderOverlay |
→ 由 HUDCachingEarlyReturnTransformer 读取并在方法开头插入:
if (HUDCaching.shouldReturnEarly()) return;
// ... 原方法体 ...
renderOverlay 返回 void,命中缓存时 transformer 插入 RETURN。
实现要点
仅覆写 getHUDCachingEarlyReturn():
return ImmutableMap.of("thaumcraft.client.lib.RenderEventHandler", ImmutableList.of("renderOverlay"));
其它 getFieldLevelTessellator/getTileEntityNullGuard/getThreadSafeISBRHAnnotations/extraTransformers 均返回 null。
输出与调试
注入日志(来自 HUDCachingEarlyReturnTransformer):
[AngelicaTweaker] Injecting HUDCaching Conditional Return: thaumcraft.client.lib.RenderEventHandler#renderOverlay
详见 AngelicaCompatCore — DUMP_CLASSES 模式下输出改写后字节码。
数值
| 数值 | 默认 | 含义 |
|---|---|---|
| 注册目标方法数 | 1 | RenderEventHandler#renderOverlay |
| 触发开关 | PatchesConfig.patchThaumcraft |
配置关闭则 handler 不装载 |
| 联动开关 | AngelicaConfig.enableHudCaching |
HUD 缓存未启用时 transformer 也不会装载 |
限制
- Thaumcraft 升级到
RenderEventHandler#renderOverlay改名 / 改返回值时本 handler 静默失效(仅日志 WARN 后 transformer 跳过)。 - 仅跳过
renderOverlay;Thaumcraft 自定义 HUD 的其他绘制方法(如renderAspects等)不会被跳过。
第三方 mod 集成
仅针对 thaumcraft mod。
相关条目
- HUDCachingEarlyReturnTransformer - 读取本 handler 映射
- CompatRegistry - 中央注册表
- CompatHandlers - 启用开关
- PatchesConfig -
patchThaumcraft开关