|
13 | 13 | import dev.su5ed.sinytra.adapter.patch.Patch;
|
14 | 14 | import dev.su5ed.sinytra.adapter.patch.PatchEnvironment;
|
15 | 15 | import dev.su5ed.sinytra.adapter.patch.transformer.DynamicLVTPatch;
|
| 16 | +import dev.su5ed.sinytra.adapter.patch.transformer.ModifyMethodAccess; |
16 | 17 | import dev.su5ed.sinytra.adapter.patch.transformer.ModifyMethodParams;
|
17 | 18 | import dev.su5ed.sinytra.connector.ConnectorUtil;
|
18 | 19 | import dev.su5ed.sinytra.connector.transformer.patch.ClassResourcesTransformer;
|
@@ -103,14 +104,19 @@ public class MixinPatchTransformer implements Transformer {
|
103 | 104 | "Lnet/minecraft/world/level/block/FireBlock;tryCatchFire(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;ILnet/minecraft/util/RandomSource;ILnet/minecraft/core/Direction;)V",
|
104 | 105 | (insn, list) -> list.insertBefore(insn, new FieldInsnNode(Opcodes.GETSTATIC, "net/minecraft/core/Direction", "NORTH", "Lnet/minecraft/core/Direction;")))
|
105 | 106 | .build(),
|
106 |
| - // Redirect HUD rendering calls to Forge's replacement class |
| 107 | + // Move HUD rendering calls at Options.renderDebug to a lambda in Forge's vanilla gui overlay enum class |
107 | 108 | Patch.builder()
|
108 | 109 | .targetClass("net/minecraft/client/gui/Gui")
|
109 |
| - .targetMethod("m_280421_") |
| 110 | + .targetMethod("m_280421_(Lnet/minecraft/client/gui/GuiGraphics;F)V") |
110 | 111 | .targetInjectionPoint("Lnet/minecraft/client/Options;f_92063_:Z")
|
111 |
| - .modifyTarget("m_280421_(Lnet/minecraft/client/gui/GuiGraphics;F)V") |
112 |
| - .modifyInjectionPoint("TAIL", "") |
113 |
| - .modifyTargetClasses(classes -> classes.add(Type.getObjectType("net/minecraftforge/client/gui/overlay/ForgeGui"))) |
| 112 | + .modifyTarget("lambda$static$18(Lnet/minecraftforge/client/gui/overlay/ForgeGui;Lnet/minecraft/client/gui/GuiGraphics;FII)V") |
| 113 | + .modifyInjectionPoint("HEAD", "") |
| 114 | + .modifyMethodAccess(new ModifyMethodAccess.AccessChange(true, Opcodes.ACC_STATIC)) |
| 115 | + .modifyParams(builder -> builder |
| 116 | + .replace(0, Type.getObjectType("net/minecraftforge/client/gui/overlay/ForgeGui")) |
| 117 | + .insert(3, Type.INT_TYPE) |
| 118 | + .insert(4, Type.INT_TYPE)) |
| 119 | + .modifyTargetClasses(classes -> classes.add(Type.getObjectType("net/minecraftforge/client/gui/overlay/VanillaGuiOverlay"))) |
114 | 120 | .build(),
|
115 | 121 | Patch.builder()
|
116 | 122 | .targetClass("net/minecraft/client/renderer/GameRenderer")
|
|
0 commit comments