package coloredlightscore.src.asm.transformer; import coloredlightscore.src.asm.transformer.core.HelperMethodTransformer; import coloredlightscore.src.asm.transformer.core.NameMapper; import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodNode; public class TransformRenderBlocks extends HelperMethodTransformer { // These methods will be replaced by statics in CLRenderBlocksHelper String methodsToReplace[] = { "renderStandardBlockWithAmbientOcclusion (Lnet/minecraft/block/Block;IIIFFF)Z", "renderStandardBlockWithColorMultiplier (Lnet/minecraft/block/Block;IIIFFF)Z" }; public TransformRenderBlocks() { super("net.minecraft.client.renderer.RenderBlocks"); } @Override protected Class<?> getHelperClass() { return coloredlightscore.src.helper.CLRenderBlocksHelper.class; } @Override protected boolean transforms(ClassNode classNode, MethodNode methodNode) { for (String name : methodsToReplace) { if (NameMapper.getInstance().isMethod(methodNode, super.className, name)) return true; } return false; } @Override protected boolean transform(ClassNode classNode, MethodNode methodNode) { for (String name : methodsToReplace) { if (NameMapper.getInstance().isMethod(methodNode, super.className, name)) { return redefineMethod(classNode, methodNode, name); } } return false; } }