get rid of annotations in class transformer
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package mods.betterfoliage.loader;
|
||||
|
||||
import org.objectweb.asm.Opcodes;
|
||||
import org.objectweb.asm.tree.AbstractInsnNode;
|
||||
import org.objectweb.asm.tree.FieldInsnNode;
|
||||
import org.objectweb.asm.tree.MethodInsnNode;
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
import org.objectweb.asm.tree.VarInsnNode;
|
||||
|
||||
public class TransformRenderBlockOverride extends MethodTransformerBase {
|
||||
|
||||
@Override
|
||||
public String getClassName() {
|
||||
return "net.minecraft.client.renderer.RenderBlocks";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethodName() {
|
||||
return "renderBlockByRenderType";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSignature() {
|
||||
return "(Lnet/minecraft/block/Block;III)Z";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLogMessage() {
|
||||
return "Applying RenderBlocks.renderBlockByRenderType() render type ovverride";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(MethodNode method, boolean obf) {
|
||||
AbstractInsnNode invokeGetRenderType = findNext(method.instructions.getFirst(), matchInvokeAny());
|
||||
AbstractInsnNode storeRenderType = findNext(invokeGetRenderType, matchOpcode(Opcodes.ISTORE));
|
||||
insertAfter(method.instructions, storeRenderType,
|
||||
new VarInsnNode(Opcodes.ALOAD, 0),
|
||||
new FieldInsnNode(Opcodes.GETFIELD, className("net/minecraft/client/renderer/RenderBlocks", obf), element("blockAccess", obf), signature("Lnet/minecraft/world/IBlockAccess;", obf)),
|
||||
new VarInsnNode(Opcodes.ILOAD, 2),
|
||||
new VarInsnNode(Opcodes.ILOAD, 3),
|
||||
new VarInsnNode(Opcodes.ILOAD, 4),
|
||||
new VarInsnNode(Opcodes.ALOAD, 1),
|
||||
new VarInsnNode(Opcodes.ILOAD, 5),
|
||||
new MethodInsnNode(Opcodes.INVOKESTATIC, "mods/betterfoliage/client/BetterFoliageClient", "getRenderTypeOverride", signature("(Lnet/minecraft/world/IBlockAccess;IIILnet/minecraft/block/Block;I)I", obf)),
|
||||
new VarInsnNode(Opcodes.ISTORE, 5)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user