Access Transformer
基本信息
| 属性 | 值 |
|---|---|
| 类型 | 构建 / 加载期设定 |
| 文件 | src/main/resources/META-INF/aspectrecipeindex_at.cfg |
| gradle 声明 | gradle.properties 中 accessTransformersFile = aspectrecipeindex_at.cfg |
| 条目数 | 4(全部作用于同一个类) |
目标:把 GuiContainer 的四个布局字段改为 public
四个 SRG 名称是反混淆后的 MCP 字段名,运行时实际映射到混淆名。源码与本 wiki 一律保留 SRG 原文。
| SRG 名称 | 人类可读名 | 声明 |
|---|---|---|
field_146999_f |
xSize |
public |
field_147000_g |
ySize |
public |
field_147003_i |
guiLeft |
public |
field_147009_r |
guiTop |
public |
目标类全部为 net.minecraft.client.gui.inventory.GuiContainer。
用途
这四个字段是 1.7.10 GuiContainer 的 protected 字段。ARI 的 ClientTickEventsFMLMixin 需要在鼠标位于 NEI 配方页区域内时跳过 Thaumcraft 自己的元素图标渲染,从而接管渲染:
判断条件读的是 gui.xSize、gui.ySize(外层 GuiContainer)、guiRecipe.guiLeft、guiRecipe.guiTop(NEI 的 GuiRecipe)。这四个值全部是 protected,mixin 类又不是它们的子类,因此必须靠 AT 提升可见性。
跳过逻辑的目的是:当鼠标停在 “Items Containing Aspect” 的 NEI 配方页里时,不要再在 tooltip 上重复画一遍元素——该 handler 自己会画。
判读要点
- AT 只提升可见性,不改变字段名、不新增成员、不修改方法体。
- 只影响客户端 GUI 类,因此无服务端副作用。
- 文件末尾的
#xSize等是 GTNH AT 格式里的可读性注释,运行时被忽略。
相关条目
- Mixin 与 LATE 注入 - 真正使用这四个字段的地方
- 兼容性 - 目标类来自 Minecraft 客户端本体