]> git.lizzy.rs Git - LightOverlay.git/blob - forge/src/main/resources/META-INF/LevelRenderer.js
1.18-rc3
[LightOverlay.git] / forge / src / main / resources / META-INF / LevelRenderer.js
1 var Opcodes = Java.type("org.objectweb.asm.Opcodes");
2 var VarInsnNode = Java.type("org.objectweb.asm.tree.VarInsnNode");
3 var MethodInsnNode = Java.type("org.objectweb.asm.tree.MethodInsnNode");
4 var ASMAPI = Java.type("net.minecraftforge.coremod.api.ASMAPI");
5
6 function transformMethod(method) {
7     var instructions = method.instructions;
8     instructions.insert(new MethodInsnNode(Opcodes.INVOKESTATIC, "me/shedaniel/lightoverlay/forge/mixin/MixinLevelRenderer", "setupTerrain", "(Lnet/minecraft/client/renderer/culling/Frustum;)V", false));
9     instructions.insert(new VarInsnNode(Opcodes.ALOAD, 2));
10 }
11
12 function initializeCoreMod() {
13     return {
14         "lightoverlay": {
15             'target': {
16                 'type': 'CLASS',
17                 'name': 'net.minecraft.client.renderer.LevelRenderer'
18             },
19             'transformer': function (classNode) {
20                 var setupRender = ASMAPI.mapMethod("m_109695_");
21                 for (i in classNode.methods) {
22                     var method = classNode.methods[i];
23                     if (method.name === setupRender) {
24                         transformMethod(method)
25                         break;
26                     }
27                 }
28                 return classNode;
29             }
30         }
31     }
32 }