aboutsummaryrefslogtreecommitdiff
path: root/src/Java
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-29 09:18:48 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-29 09:18:48 +1000
commit6b0c40d9f54d0eee7e90568a9e26c85eab740e24 (patch)
tree5cdcd1eaa711143f16f15fb9e44be6609a29754c /src/Java
parent915cb904401ec3b67180baa02910efcaaf21370e (diff)
downloadGT5-Unofficial-6b0c40d9f54d0eee7e90568a9e26c85eab740e24.tar.gz
GT5-Unofficial-6b0c40d9f54d0eee7e90568a9e26c85eab740e24.tar.bz2
GT5-Unofficial-6b0c40d9f54d0eee7e90568a9e26c85eab740e24.zip
$ Fixed Super Buses not having > 16 slots.
Diffstat (limited to 'src/Java')
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java708
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java4
3 files changed, 492 insertions, 224 deletions
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java
index 8c7413f5b9..9e793e8392 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BusPatch.java
@@ -1,26 +1,6 @@
package gtPlusPlus.preloader.asm.transformers;
-import static org.objectweb.asm.Opcodes.AASTORE;
-import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
-import static org.objectweb.asm.Opcodes.ACONST_NULL;
-import static org.objectweb.asm.Opcodes.ALOAD;
-import static org.objectweb.asm.Opcodes.ANEWARRAY;
-import static org.objectweb.asm.Opcodes.ASM5;
-import static org.objectweb.asm.Opcodes.DUP;
-import static org.objectweb.asm.Opcodes.F_FULL;
-import static org.objectweb.asm.Opcodes.GOTO;
-import static org.objectweb.asm.Opcodes.ICONST_0;
-import static org.objectweb.asm.Opcodes.ICONST_1;
-import static org.objectweb.asm.Opcodes.ICONST_2;
-import static org.objectweb.asm.Opcodes.IF_ICMPLT;
-import static org.objectweb.asm.Opcodes.ILOAD;
-import static org.objectweb.asm.Opcodes.INTEGER;
-import static org.objectweb.asm.Opcodes.INVOKESPECIAL;
-import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL;
-import static org.objectweb.asm.Opcodes.NEW;
-import static org.objectweb.asm.Opcodes.PUTFIELD;
-import static org.objectweb.asm.Opcodes.RETURN;
-import static org.objectweb.asm.Opcodes.UNINITIALIZED_THIS;
+import static org.objectweb.asm.Opcodes.*;
import org.apache.logging.log4j.Level;
import org.objectweb.asm.ClassReader;
@@ -37,7 +17,7 @@ public class ClassTransformer_GT_BusPatch {
public static final String aSuperOutput = "gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SuperBus_Output";
public static final String aInput = "gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus";
public static final String aOutput = "gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus";
-
+
private final boolean isValid;
private final ClassReader reader;
private final ClassWriter writer;
@@ -83,8 +63,8 @@ public class ClassTransformer_GT_BusPatch {
public ClassWriter getWriter() {
return writer;
}
-
-
+
+
public boolean injectMethod(String aClassName) {
boolean didInject = false;
@@ -94,74 +74,153 @@ public class ClassTransformer_GT_BusPatch {
//GT_MetaTileEntity_Hatch_InputBus
//Constructor
if (aClassName.equals(aInput)){
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(19, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ILOAD, 1);
- mv.visitVarInsn(ALOAD, 2);
- mv.visitVarInsn(ALOAD, 3);
- mv.visitVarInsn(ILOAD, 4);
- mv.visitVarInsn(ILOAD, 5);
- mv.visitInsn(ICONST_2);
- mv.visitTypeInsn(ANEWARRAY, "java/lang/String");
- mv.visitInsn(DUP);
- mv.visitInsn(ICONST_0);
- mv.visitLdcInsn("Item Input for Multiblocks");
- mv.visitInsn(AASTORE);
- mv.visitInsn(DUP);
- mv.visitInsn(ICONST_1);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(20, l1);
- mv.visitTypeInsn(NEW, "java/lang/StringBuilder");
- mv.visitInsn(DUP);
- mv.visitLdcInsn("Capacity: ");
- mv.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "(Ljava/lang/String;)V", false);
- mv.visitVarInsn(ILOAD, 5);
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(I)Ljava/lang/StringBuilder;", false);
- mv.visitLdcInsn(" stack");
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
- mv.visitVarInsn(ILOAD, 5);
- mv.visitInsn(ICONST_2);
- Label l2 = new Label();
- mv.visitJumpInsn(IF_ICMPLT, l2);
- mv.visitLdcInsn("s");
- Label l3 = new Label();
- mv.visitJumpInsn(GOTO, l3);
- mv.visitLabel(l2);
- mv.visitFrame(F_FULL, 6, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER}, 10, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER, "[Ljava/lang/String;", "[Ljava/lang/String;", INTEGER, "java/lang/StringBuilder"});
- mv.visitLdcInsn("");
- mv.visitLabel(l3);
- mv.visitFrame(F_FULL, 6, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER}, 11, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER, "[Ljava/lang/String;", "[Ljava/lang/String;", INTEGER, "java/lang/StringBuilder", "java/lang/String"});
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
- mv.visitInsn(AASTORE);
- mv.visitInsn(ICONST_0);
- mv.visitTypeInsn(ANEWARRAY, "gregtech/api/interfaces/ITexture");
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;[Lgregtech/api/interfaces/ITexture;)V", false);
- Label l4 = new Label();
- mv.visitLabel(l4);
- mv.visitLineNumber(16, l4);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitInsn(ACONST_NULL);
- mv.visitFieldInsn(PUTFIELD, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
- Label l5 = new Label();
- mv.visitLabel(l5);
- mv.visitLineNumber(21, l5);
- mv.visitInsn(RETURN);
- Label l6 = new Label();
- mv.visitLabel(l6);
- mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus;", null, l0, l6, 0);
- mv.visitLocalVariable("aID", "I", null, l0, l6, 1);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l6, 2);
- mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l6, 3);
- mv.visitLocalVariable("aTier", "I", null, l0, l6, 4);
- mv.visitLocalVariable("aSlots", "I", null, l0, l6, 5);
- mv.visitMaxs(12, 6);
- mv.visitEnd();
+
+ //Constructor 1
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(19, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitInsn(ICONST_2);
+ mv.visitTypeInsn(ANEWARRAY, "java/lang/String");
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_0);
+ mv.visitLdcInsn("Item Input for Multiblocks");
+ mv.visitInsn(AASTORE);
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_1);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(20, l1);
+ mv.visitTypeInsn(NEW, "java/lang/StringBuilder");
+ mv.visitInsn(DUP);
+ mv.visitLdcInsn("Capacity: ");
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "(Ljava/lang/String;)V", false);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(I)Ljava/lang/StringBuilder;", false);
+ mv.visitLdcInsn(" stack");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitInsn(ICONST_2);
+ Label l2 = new Label();
+ mv.visitJumpInsn(IF_ICMPLT, l2);
+ mv.visitLdcInsn("s");
+ Label l3 = new Label();
+ mv.visitJumpInsn(GOTO, l3);
+ mv.visitLabel(l2);
+ mv.visitFrame(F_FULL, 6, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER}, 10, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER, "[Ljava/lang/String;", "[Ljava/lang/String;", INTEGER, "java/lang/StringBuilder"});
+ mv.visitLdcInsn("");
+ mv.visitLabel(l3);
+ mv.visitFrame(F_FULL, 6, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER}, 11, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER, "[Ljava/lang/String;", "[Ljava/lang/String;", INTEGER, "java/lang/StringBuilder", "java/lang/String"});
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
+ mv.visitInsn(AASTORE);
+ mv.visitInsn(ICONST_0);
+ mv.visitTypeInsn(ANEWARRAY, "gregtech/api/interfaces/ITexture");
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(16, l4);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLineNumber(21, l5);
+ mv.visitInsn(RETURN);
+ Label l6 = new Label();
+ mv.visitLabel(l6);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus;", null, l0, l6, 0);
+ mv.visitLocalVariable("aID", "I", null, l0, l6, 1);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l6, 2);
+ mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l6, 3);
+ mv.visitLocalVariable("aTier", "I", null, l0, l6, 4);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l6, 5);
+ mv.visitMaxs(12, 6);
+ mv.visitEnd();
+ }
+
+ //Constructor 2
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(29, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(16, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(30, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus;", null, l0, l3, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l3, 2);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l3, 3);
+ mv.visitLocalVariable("aDescription", "Ljava/lang/String;", null, l0, l3, 4);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 5);
+ mv.visitMaxs(6, 6);
+ mv.visitEnd();
+ }
+
+ //Third constructor with String[] for GT 5.09
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(33, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(16, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(34, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus;", null, l0, l3, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l3, 2);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l3, 3);
+ mv.visitLocalVariable("aDescription", "[Ljava/lang/String;", null, l0, l3, 4);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 5);
+ mv.visitMaxs(6, 6);
+ mv.visitEnd();
+ }
+
+
+
didInject = true;
}
@@ -169,68 +228,128 @@ public class ClassTransformer_GT_BusPatch {
//GT_MetaTileEntity_Hatch_OutputBus
//Constructor
if (aClassName.equals(aOutput)){
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(16, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ILOAD, 1);
- mv.visitVarInsn(ALOAD, 2);
- mv.visitVarInsn(ALOAD, 3);
- mv.visitVarInsn(ILOAD, 4);
- mv.visitVarInsn(ILOAD, 5);
- mv.visitInsn(ICONST_2);
- mv.visitTypeInsn(ANEWARRAY, "java/lang/String");
- mv.visitInsn(DUP);
- mv.visitInsn(ICONST_0);
- mv.visitLdcInsn("Item Output for Multiblocks");
- mv.visitInsn(AASTORE);
- mv.visitInsn(DUP);
- mv.visitInsn(ICONST_1);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(17, l1);
- mv.visitTypeInsn(NEW, "java/lang/StringBuilder");
- mv.visitInsn(DUP);
- mv.visitLdcInsn("Capacity: ");
- mv.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "(Ljava/lang/String;)V", false);
- mv.visitVarInsn(ILOAD, 5);
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(I)Ljava/lang/StringBuilder;", false);
- mv.visitLdcInsn(" stack");
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
- mv.visitVarInsn(ILOAD, 5);
- mv.visitInsn(ICONST_2);
- Label l2 = new Label();
- mv.visitJumpInsn(IF_ICMPLT, l2);
- mv.visitLdcInsn("s");
- Label l3 = new Label();
- mv.visitJumpInsn(GOTO, l3);
- mv.visitLabel(l2);
- mv.visitFrame(F_FULL, 6, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER}, 10, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER, "[Ljava/lang/String;", "[Ljava/lang/String;", INTEGER, "java/lang/StringBuilder"});
- mv.visitLdcInsn("");
- mv.visitLabel(l3);
- mv.visitFrame(F_FULL, 6, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER}, 11, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER, "[Ljava/lang/String;", "[Ljava/lang/String;", INTEGER, "java/lang/StringBuilder", "java/lang/String"});
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
- mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
- mv.visitInsn(AASTORE);
- mv.visitInsn(ICONST_0);
- mv.visitTypeInsn(ANEWARRAY, "gregtech/api/interfaces/ITexture");
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;[Lgregtech/api/interfaces/ITexture;)V", false);
- Label l4 = new Label();
- mv.visitLabel(l4);
- mv.visitLineNumber(18, l4);
- mv.visitInsn(RETURN);
- Label l5 = new Label();
- mv.visitLabel(l5);
- mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus;", null, l0, l5, 0);
- mv.visitLocalVariable("aID", "I", null, l0, l5, 1);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l5, 2);
- mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l5, 3);
- mv.visitLocalVariable("aTier", "I", null, l0, l5, 4);
- mv.visitLocalVariable("aSlots", "I", null, l0, l5, 5);
- mv.visitMaxs(12, 6);
- mv.visitEnd();
+
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(16, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitInsn(ICONST_2);
+ mv.visitTypeInsn(ANEWARRAY, "java/lang/String");
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_0);
+ mv.visitLdcInsn("Item Output for Multiblocks");
+ mv.visitInsn(AASTORE);
+ mv.visitInsn(DUP);
+ mv.visitInsn(ICONST_1);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(17, l1);
+ mv.visitTypeInsn(NEW, "java/lang/StringBuilder");
+ mv.visitInsn(DUP);
+ mv.visitLdcInsn("Capacity: ");
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>", "(Ljava/lang/String;)V", false);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(I)Ljava/lang/StringBuilder;", false);
+ mv.visitLdcInsn(" stack");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
+ mv.visitVarInsn(ILOAD, 5);
+ mv.visitInsn(ICONST_2);
+ Label l2 = new Label();
+ mv.visitJumpInsn(IF_ICMPLT, l2);
+ mv.visitLdcInsn("s");
+ Label l3 = new Label();
+ mv.visitJumpInsn(GOTO, l3);
+ mv.visitLabel(l2);
+ mv.visitFrame(F_FULL, 6, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER}, 10, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER, "[Ljava/lang/String;", "[Ljava/lang/String;", INTEGER, "java/lang/StringBuilder"});
+ mv.visitLdcInsn("");
+ mv.visitLabel(l3);
+ mv.visitFrame(F_FULL, 6, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER}, 11, new Object[] {UNINITIALIZED_THIS, INTEGER, "java/lang/String", "java/lang/String", INTEGER, INTEGER, "[Ljava/lang/String;", "[Ljava/lang/String;", INTEGER, "java/lang/StringBuilder", "java/lang/String"});
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false);
+ mv.visitInsn(AASTORE);
+ mv.visitInsn(ICONST_0);
+ mv.visitTypeInsn(ANEWARRAY, "gregtech/api/interfaces/ITexture");
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(ILjava/lang/String;Ljava/lang/String;II[Ljava/lang/String;[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l4 = new Label();
+ mv.visitLabel(l4);
+ mv.visitLineNumber(18, l4);
+ mv.visitInsn(RETURN);
+ Label l5 = new Label();
+ mv.visitLabel(l5);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus;", null, l0, l5, 0);
+ mv.visitLocalVariable("aID", "I", null, l0, l5, 1);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l5, 2);
+ mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l5, 3);
+ mv.visitLocalVariable("aTier", "I", null, l0, l5, 4);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l5, 5);
+ mv.visitMaxs(12, 6);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(26, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(27, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus;", null, l0, l2, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
+ mv.visitLocalVariable("aDescription", "Ljava/lang/String;", null, l0, l2, 4);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
+ mv.visitMaxs(6, 6);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(30, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitVarInsn(ALOAD, 5);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch", "<init>", "(Ljava/lang/String;II[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(31, l1);
+ mv.visitInsn(RETURN);
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLocalVariable("this", "Lgregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus;", null, l0, l2, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l2, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l2, 2);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l2, 3);
+ mv.visitLocalVariable("aDescription", "[Ljava/lang/String;", null, l0, l2, 4);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l2, 5);
+ mv.visitMaxs(6, 6);
+ mv.visitEnd();
+ }
+
didInject = true;
}
@@ -238,87 +357,236 @@ public class ClassTransformer_GT_BusPatch {
//GT_MetaTileEntity_SuperBus_Input
//Constructor
if (aClassName.equals(aSuperInput)){
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(27, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ILOAD, 1);
- mv.visitVarInsn(ALOAD, 2);
- mv.visitVarInsn(ALOAD, 3);
- mv.visitVarInsn(ILOAD, 4);
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "<init>", "(ILjava/lang/String;Ljava/lang/String;I)V", false);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(20, l1);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitInsn(ACONST_NULL);
- mv.visitFieldInsn(PUTFIELD, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLineNumber(28, l2);
- mv.visitInsn(RETURN);
- Label l3 = new Label();
- mv.visitLabel(l3);
- mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input;", null, l0, l3, 0);
- mv.visitLocalVariable("aID", "I", null, l0, l3, 1);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 2);
- mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l3, 3);
- mv.visitLocalVariable("aTier", "I", null, l0, l3, 4);
- mv.visitLocalVariable("aSlots", "I", null, l0, l3, 5);
- mv.visitMaxs(5, 6);
- mv.visitEnd();
+
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(27, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "<init>", "(ILjava/lang/String;Ljava/lang/String;I)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(20, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(28, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input;", null, l0, l3, 0);
+ mv.visitLocalVariable("aID", "I", null, l0, l3, 1);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 2);
+ mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l3, 3);
+ mv.visitLocalVariable("aTier", "I", null, l0, l3, 4);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l3, 5);
+ mv.visitMaxs(5, 6);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;ILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(27, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input", "getSlots", "(I)I", false);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(20, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(28, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input;", null, l0, l3, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l3, 2);
+ mv.visitLocalVariable("aDescription", "Ljava/lang/String;", null, l0, l3, 3);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 4);
+ mv.visitMaxs(6, 5);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;I[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(31, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input", "getSlots", "(I)I", false);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(20, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(32, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input;", null, l0, l3, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l3, 2);
+ mv.visitLocalVariable("aDescription", "[Ljava/lang/String;", null, l0, l3, 3);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 4);
+ mv.visitMaxs(6, 5);
+ mv.visitEnd();
+ }
+
+
didInject = true;
}
-
+
//GT_MetaTileEntity_SuperBus_Output
//Constructor
if (aClassName.equals(aSuperOutput)){
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(25, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ILOAD, 1);
- mv.visitVarInsn(ALOAD, 2);
- mv.visitVarInsn(ALOAD, 3);
- mv.visitVarInsn(ILOAD, 4);
- mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus", "<init>", "(ILjava/lang/String;Ljava/lang/String;I)V", false);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(18, l1);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitInsn(ACONST_NULL);
- mv.visitFieldInsn(PUTFIELD, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLineNumber(26, l2);
- mv.visitInsn(RETURN);
- Label l3 = new Label();
- mv.visitLabel(l3);
- mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output;", null, l0, l3, 0);
- mv.visitLocalVariable("aID", "I", null, l0, l3, 1);
- mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 2);
- mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l3, 3);
- mv.visitLocalVariable("aTier", "I", null, l0, l3, 4);
- mv.visitLocalVariable("aSlots", "I", null, l0, l3, 5);
- mv.visitMaxs(5, 6);
- mv.visitEnd();
+
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(ILjava/lang/String;Ljava/lang/String;II)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(25, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ILOAD, 4);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus", "<init>", "(ILjava/lang/String;Ljava/lang/String;I)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(18, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(26, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output;", null, l0, l3, 0);
+ mv.visitLocalVariable("aID", "I", null, l0, l3, 1);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 2);
+ mv.visitLocalVariable("aNameRegional", "Ljava/lang/String;", null, l0, l3, 3);
+ mv.visitLocalVariable("aTier", "I", null, l0, l3, 4);
+ mv.visitLocalVariable("aSlots", "I", null, l0, l3, 5);
+ mv.visitMaxs(5, 6);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;ILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(25, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output", "getSlots", "(I)I", false);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(18, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(26, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output;", null, l0, l3, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l3, 2);
+ mv.visitLocalVariable("aDescription", "Ljava/lang/String;", null, l0, l3, 3);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 4);
+ mv.visitMaxs(6, 5);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/String;I[Ljava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(29, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output", "getSlots", "(I)I", false);
+ mv.visitVarInsn(ALOAD, 3);
+ mv.visitInsn(ICONST_0);
+ mv.visitInsn(AALOAD);
+ mv.visitVarInsn(ALOAD, 4);
+ mv.visitMethodInsn(INVOKESPECIAL, "gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus", "<init>", "(Ljava/lang/String;IILjava/lang/String;[[[Lgregtech/api/interfaces/ITexture;)V", false);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLineNumber(18, l1);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitInsn(ACONST_NULL);
+ mv.visitFieldInsn(PUTFIELD, "gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output", "mRecipeMap", "Lgregtech/api/util/GT_Recipe$GT_Recipe_Map;");
+ Label l2 = new Label();
+ mv.visitLabel(l2);
+ mv.visitLineNumber(30, l2);
+ mv.visitInsn(RETURN);
+ Label l3 = new Label();
+ mv.visitLabel(l3);
+ mv.visitLocalVariable("this", "LgtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output;", null, l0, l3, 0);
+ mv.visitLocalVariable("aName", "Ljava/lang/String;", null, l0, l3, 1);
+ mv.visitLocalVariable("aTier", "I", null, l0, l3, 2);
+ mv.visitLocalVariable("aDescription", "[Ljava/lang/String;", null, l0, l3, 3);
+ mv.visitLocalVariable("aTextures", "[[[Lgregtech/api/interfaces/ITexture;", null, l0, l3, 4);
+ mv.visitMaxs(6, 5);
+ mv.visitEnd();
+ }
+
didInject = true;
}
- FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Method injection complete.");
- return didInject;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech Bus Patch", Level.INFO, "Method injection complete.");
+ return didInject;
}
-
+
public final class localClassVisitor extends ClassVisitor {
public localClassVisitor(ClassVisitor cv) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java
index d6906c7b67..e0844bb071 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java
@@ -129,7 +129,7 @@ public class GT_MetaTileEntity_SuperBus_Input extends GT_MetaTileEntity_Hatch_In
String[] aDesc = new String[] {
"Item Input for Multiblocks",
"This bus has no GUI, but can have items extracted",
- ""+this.getSlots(this.mTier)+" Slots",
+ ""+getSlots(this.mTier)+" Slots",
};
return aDesc;
}
@@ -164,7 +164,7 @@ public class GT_MetaTileEntity_SuperBus_Input extends GT_MetaTileEntity_Hatch_In
}
if (aNames == null || aNames.length <= 0) {
- PlayerUtils.messagePlayer(aPlayer, "This Super Bus (I) is Empty. Total Slots: "+this.getSlots(this.mTier));
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (I) is Empty. Total Slots: "+getSlots(this.mTier));
return;
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
index 4fac3d36d8..3afa3312b1 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
@@ -96,7 +96,7 @@ public class GT_MetaTileEntity_SuperBus_Output extends GT_MetaTileEntity_Hatch_O
String[] aDesc = new String[] {
"Item Output for Multiblocks",
"This bus has no GUI",
- ""+this.getSlots(this.mTier)+" Slots",
+ ""+getSlots(this.mTier)+" Slots",
};
return aDesc;
}
@@ -130,7 +130,7 @@ public class GT_MetaTileEntity_SuperBus_Output extends GT_MetaTileEntity_Hatch_O
}
if (aNames == null || aNames.length <= 0) {
- PlayerUtils.messagePlayer(aPlayer, "This Super Bus (O) is Empty. Total Slots: "+this.getSlots(this.mTier));
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (O) is Empty. Total Slots: "+getSlots(this.mTier));
return;
}