diff options
Diffstat (limited to 'src')
8 files changed, 0 insertions, 2285 deletions
diff --git a/src/main/java/gtPlusPlus/core/common/CommonProxy.java b/src/main/java/gtPlusPlus/core/common/CommonProxy.java index b5652af595..f42a8a5ee5 100644 --- a/src/main/java/gtPlusPlus/core/common/CommonProxy.java +++ b/src/main/java/gtPlusPlus/core/common/CommonProxy.java @@ -54,7 +54,6 @@ import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.plugin.villagers.block.BlockGenericSpawner; import gtPlusPlus.preloader.CORE_Preloader; import gtPlusPlus.xmod.eio.handler.HandlerTooltip_EIO; -import gtPlusPlus.xmod.galacticraft.handler.HandlerTooltip_GC; import gtPlusPlus.xmod.gregtech.api.util.SpecialBehaviourTooltipHandler; import gtPlusPlus.xmod.gregtech.recipes.GregtechRecipeAdder; import gtPlusPlus.xmod.ic2.CustomInternalName; @@ -121,8 +120,6 @@ public class CommonProxy { Utils.registerEvent(new SpecialBehaviourTooltipHandler()); // Handles Custom tooltips for EIO. Utils.registerEvent(new HandlerTooltip_EIO()); - // Handles Custom Tooltips for GC - Utils.registerEvent(new HandlerTooltip_GC()); // Handles Sleep Benefits PlayerSleepEventHandler.init(); // Handles Magic Feather diff --git a/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java index 53aadc1967..35684c267a 100644 --- a/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java +++ b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java @@ -22,7 +22,6 @@ public class AsmConfig { public static boolean enableGtCharcoalPitFix; public static boolean enableChunkDebugging; public static boolean enableCofhPatch; - public static boolean enableGcFuelChanges; public static boolean enableTcAspectSafety; public static boolean enabledLwjglKeybindingFix; public static boolean enabledFixEntitySetHealth; @@ -117,14 +116,6 @@ public class AsmConfig { enableGtCharcoalPitFix = prop.getBoolean(true); propOrder.add(prop.getName()); - prop = config.get("general", "enableGcFuelChanges", true); - prop.comment = "Enable/Disable changes to Galacticraft Rocket Fuels."; - prop.setLanguageKey("gtpp.enableGcFuelChanges").setRequiresMcRestart(true); - // Disabled because Broken - // enableGcFuelChanges = prop.getBoolean(true); - enableGcFuelChanges = false; - propOrder.add(prop.getName()); - // TC Aspect Safety prop = config.get("general", "enableTcAspectSafety", true); prop.comment = "Fixes small oversights in Thaumcraft 4."; @@ -142,7 +133,6 @@ public class AsmConfig { Preloader_Logger.INFO("Gt Nbt Fix - Enabled: " + enableGtNbtFix); Preloader_Logger.INFO("Gt Tooltip Fix - Enabled: " + enableGtTooltipFix); Preloader_Logger.INFO("COFH Patch - Enabled: " + enableCofhPatch); - Preloader_Logger.INFO("Gc Fuel Changes Patch - Enabled: " + enableGcFuelChanges); Preloader_Logger.INFO("Thaumcraft Aspect Safety Patch - Enabled: " + enableTcAspectSafety); Preloader_Logger .INFO("Fix bad usage of EntityLivingBase.setHealth Patch - Enabled: " + enabledFixEntitySetHealth); diff --git a/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java b/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java index 55e122587e..d2a03b2522 100644 --- a/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java +++ b/src/main/java/gtPlusPlus/preloader/asm/ClassesToTransform.java @@ -12,12 +12,6 @@ public class ClassesToTransform { public static final String COFH_ORE_DICTIONARY_ARBITER = "cofh.core.util.oredict.OreDictionaryArbiter"; - public static final String TINKERS_FLUID_BLOCK = "tconstruct.smeltery.blocks.TConstructFluid"; - - public static final String GALACTICRAFT_FLUID_UTILS = "micdoodle8.mods.galacticraft.core.util.FluidUtil"; - public static final String GALACTICRAFT_TILE_ENTITY_FUEL_LOADER = "micdoodle8.mods.galacticraft.core.tile.TileEntityFuelLoader"; - public static final String GALACTICRAFT_ENTITY_AUTO_ROCKET = "micdoodle8.mods.galacticraft.api.prefab.entity.EntityAutoRocket"; - public static final String THAUMCRAFT_ITEM_WISP_ESSENCE = "thaumcraft.common.items.ItemWispEssence"; public static final String THAUMCRAFT_CRAFTING_MANAGER = "thaumcraft.common.lib.crafting.ThaumcraftCraftingManager"; public static final String THAUMCRAFT_TILE_ALCHEMY_FURNACE = "thaumcraft.common.tiles.TileAlchemyFurnace"; diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java deleted file mode 100644 index 1e989fd235..0000000000 --- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_EntityAutoRocket.java +++ /dev/null @@ -1,798 +0,0 @@ -package gtPlusPlus.preloader.asm.transformers; - -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.ASTORE; -import static org.objectweb.asm.Opcodes.CHECKCAST; -import static org.objectweb.asm.Opcodes.DDIV; -import static org.objectweb.asm.Opcodes.DUP; -import static org.objectweb.asm.Opcodes.F_APPEND; -import static org.objectweb.asm.Opcodes.F_CHOP; -import static org.objectweb.asm.Opcodes.F_FULL; -import static org.objectweb.asm.Opcodes.F_SAME; -import static org.objectweb.asm.Opcodes.F_SAME1; -import static org.objectweb.asm.Opcodes.GETFIELD; -import static org.objectweb.asm.Opcodes.GOTO; -import static org.objectweb.asm.Opcodes.ICONST_M1; -import static org.objectweb.asm.Opcodes.IFEQ; -import static org.objectweb.asm.Opcodes.IFNONNULL; -import static org.objectweb.asm.Opcodes.IFNULL; -import static org.objectweb.asm.Opcodes.IF_ICMPEQ; -import static org.objectweb.asm.Opcodes.IF_ICMPLE; -import static org.objectweb.asm.Opcodes.IF_ICMPNE; -import static org.objectweb.asm.Opcodes.ILOAD; -import static org.objectweb.asm.Opcodes.INSTANCEOF; -import static org.objectweb.asm.Opcodes.INTEGER; -import static org.objectweb.asm.Opcodes.INVOKESPECIAL; -import static org.objectweb.asm.Opcodes.INVOKESTATIC; -import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL; -import static org.objectweb.asm.Opcodes.ISTORE; -import static org.objectweb.asm.Opcodes.NEW; -import static org.objectweb.asm.Opcodes.PUTFIELD; -import static org.objectweb.asm.Opcodes.RETURN; - -import org.apache.logging.log4j.Level; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.Label; -import org.objectweb.asm.MethodVisitor; - -import cpw.mods.fml.relauncher.FMLRelaunchLog; -import gtPlusPlus.preloader.DevHelper; - -public class ClassTransformer_GC_EntityAutoRocket { - - // The qualified name of the class we plan to transform. - private static final String className = "micdoodle8.mods.galacticraft.api.prefab.entity.EntityAutoRocket"; - // micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket - - private final boolean isValid; - private final ClassReader reader; - private final ClassWriter writer; - private final boolean isObfuscated; - - public ClassTransformer_GC_EntityAutoRocket(byte[] basicClass, boolean obfuscated) { - - ClassReader aTempReader = null; - ClassWriter aTempWriter = null; - - isObfuscated = obfuscated; - - aTempReader = new ClassReader(basicClass); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - aTempReader.accept(new localClassVisitor(aTempWriter), 0); - - if (aTempReader != null && aTempWriter != null) { - isValid = true; - } else { - isValid = false; - } - reader = aTempReader; - writer = aTempWriter; - - if (reader != null && writer != null) { - injectMethod(); - } else { - FMLRelaunchLog - .log("[GT++ ASM] Galacticraft EntityAutoRocket Patch", Level.INFO, "Failed to Inject new code."); - } - } - - public boolean isValidTransformer() { - return isValid; - } - - public ClassReader getReader() { - return reader; - } - - public ClassWriter getWriter() { - return writer; - } - - public void injectMethod() { - - String aEntityPlayer = isObfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayer") - : "net/minecraft/entity/player/EntityPlayer"; - String aEntityPlayerMP = isObfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayerMP") - : "net/minecraft/entity/player/EntityPlayerMP"; - String aWorld = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/World") - : "net/minecraft/world/World"; - String aItemStack = isObfuscated ? DevHelper.getObfuscated("net/minecraft/item/ItemStack") - : "net/minecraft/item/ItemStack"; - String aEntity = isObfuscated ? DevHelper.getObfuscated("net/minecraft/entity/Entity") - : "net/minecraft/entity/Entity"; - String aWorldClient = isObfuscated ? DevHelper.getObfuscated("net/minecraft/client/multiplayer/WorldClient") - : "net/minecraft/client/multiplayer/WorldClient"; - String aDifficultyEnum = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/EnumDifficulty") - : "net/minecraft/world/EnumDifficulty"; - String aWorldInfo = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/storage/WorldInfo") - : "net/minecraft/world/storage/WorldInfo"; - String aItemInWorldManager = isObfuscated - ? DevHelper.getObfuscated("net/minecraft/server/management/ItemInWorldManager") - : "net/minecraft/server/management/ItemInWorldManager"; - String aWorldType = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/WorldType") - : "net/minecraft/world/WorldType"; - String aGameType = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/WorldSettings$GameType") - : "net/minecraft/world/WorldSettings$GameType"; - - if (isValidTransformer()) { - FMLRelaunchLog.log( - "[GT++ ASM] Galacticraft EntityAutoRocket Patch", - Level.INFO, - "Injecting decodePacketdata into " + className + "."); - MethodVisitor mv = getWriter() - .visitMethod(ACC_PUBLIC, "decodePacketdata", "(Lio/netty/buffer/ByteBuf;)V", null, null); - - mv.visitCode(); - Label l0 = new Label(); - mv.visitLabel(l0); - mv.visitLineNumber(1027, l0); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKESPECIAL, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntitySpaceshipBase", - "decodePacketdata", - "(Lio/netty/buffer/ByteBuf;)V", - false); - Label l1 = new Label(); - mv.visitLabel(l1); - mv.visitLineNumber(1029, l1); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn( - INVOKESTATIC, - "gtPlusPlus/xmod/galacticraft/util/GalacticUtils", - "getValidFuelForTier", - "(L" + aEntity + ";)Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitVarInsn(ASTORE, 2); - Label l2 = new Label(); - mv.visitLabel(l2); - mv.visitLineNumber(1030, l2); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false); - mv.visitVarInsn(ISTORE, 3); - Label l3 = new Label(); - mv.visitLabel(l3); - mv.visitLineNumber(1031, l3); - mv.visitVarInsn(ALOAD, 2); - Label l4 = new Label(); - mv.visitJumpInsn(IFNULL, l4); - Label l5 = new Label(); - mv.visitLabel(l5); - mv.visitLineNumber(1032, l5); - mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack"); - mv.visitInsn(DUP); - mv.visitVarInsn(ALOAD, 2); - mv.visitVarInsn(ILOAD, 3); - mv.visitMethodInsn( - INVOKESPECIAL, - "net/minecraftforge/fluids/FluidStack", - "<init>", - "(Lnet/minecraftforge/fluids/FluidStack;I)V", - false); - mv.visitVarInsn(ASTORE, 4); - Label l6 = new Label(); - mv.visitLabel(l6); - mv.visitLineNumber(1033, l6); - mv.visitVarInsn(ALOAD, 4); - mv.visitJumpInsn(IFNULL, l4); - Label l7 = new Label(); - mv.visitLabel(l7); - mv.visitLineNumber(1034, l7); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitVarInsn(ALOAD, 4); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "setFluid", - "(Lnet/minecraftforge/fluids/FluidStack;)V", - false); - mv.visitLabel(l4); - mv.visitLineNumber(1038, l4); - mv.visitFrame(F_APPEND, 2, new Object[] { "net/minecraftforge/fluids/FluidStack", INTEGER }, 0, null); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readBoolean", "()Z", false); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "landing", - "Z"); - Label l8 = new Label(); - mv.visitLabel(l8); - mv.visitLineNumber(1039, l8); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "destinationFrequency", - "I"); - Label l9 = new Label(); - mv.visitLabel(l9); - mv.visitLineNumber(1041, l9); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readBoolean", "()Z", false); - Label l10 = new Label(); - mv.visitJumpInsn(IFEQ, l10); - Label l11 = new Label(); - mv.visitLabel(l11); - mv.visitLineNumber(1043, l11); - mv.visitVarInsn(ALOAD, 0); - mv.visitTypeInsn(NEW, "micdoodle8/mods/galacticraft/api/vector/BlockVec3"); - mv.visitInsn(DUP); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false); - mv.visitMethodInsn( - INVOKESPECIAL, - "micdoodle8/mods/galacticraft/api/vector/BlockVec3", - "<init>", - "(III)V", - false); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "targetVec", - "Lmicdoodle8/mods/galacticraft/api/vector/BlockVec3;"); - mv.visitLabel(l10); - mv.visitLineNumber(1046, l10); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false); - mv.visitLdcInsn(new Double("8000.0")); - mv.visitInsn(DDIV); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "motionX", - "D"); - Label l12 = new Label(); - mv.visitLabel(l12); - mv.visitLineNumber(1047, l12); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false); - mv.visitLdcInsn(new Double("8000.0")); - mv.visitInsn(DDIV); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "motionY", - "D"); - Label l13 = new Label(); - mv.visitLabel(l13); - mv.visitLineNumber(1048, l13); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false); - mv.visitLdcInsn(new Double("8000.0")); - mv.visitInsn(DDIV); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "motionZ", - "D"); - Label l14 = new Label(); - mv.visitLabel(l14); - mv.visitLineNumber(1049, l14); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false); - mv.visitLdcInsn(new Double("8000.0")); - mv.visitInsn(DDIV); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "lastMotionY", - "D"); - Label l15 = new Label(); - mv.visitLabel(l15); - mv.visitLineNumber(1050, l15); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readDouble", "()D", false); - mv.visitLdcInsn(new Double("8000.0")); - mv.visitInsn(DDIV); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "lastLastMotionY", - "D"); - Label l16 = new Label(); - mv.visitLabel(l16); - mv.visitLineNumber(1052, l16); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "cargoItems", - "[L" + aItemStack + ";"); - Label l17 = new Label(); - mv.visitJumpInsn(IFNONNULL, l17); - Label l18 = new Label(); - mv.visitLabel(l18); - mv.visitLineNumber(1054, l18); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "getSizeInventory", - "()I", - false); - mv.visitTypeInsn(ANEWARRAY, aItemStack); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "cargoItems", - "[L" + aItemStack + ";"); - mv.visitLabel(l17); - mv.visitLineNumber(1057, l17); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readBoolean", "()Z", false); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "setWaitForPlayer", - "(Z)V", - false); - Label l19 = new Label(); - mv.visitLabel(l19); - mv.visitLineNumber(1059, l19); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKESTATIC, - "cpw/mods/fml/common/network/ByteBufUtils", - "readUTF8String", - "(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;", - false); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "statusMessage", - "Ljava/lang/String;"); - Label l20 = new Label(); - mv.visitLabel(l20); - mv.visitLineNumber(1060, l20); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "statusMessage", - "Ljava/lang/String;"); - mv.visitLdcInsn(""); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l21 = new Label(); - mv.visitJumpInsn(IFEQ, l21); - mv.visitInsn(ACONST_NULL); - Label l22 = new Label(); - mv.visitJumpInsn(GOTO, l22); - mv.visitLabel(l21); - mv.visitFrame( - F_SAME1, - 0, - null, - 1, - new Object[] { "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket" }); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "statusMessage", - "Ljava/lang/String;"); - mv.visitLabel(l22); - mv.visitFrame( - F_FULL, - 4, - new Object[] { "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "io/netty/buffer/ByteBuf", "net/minecraftforge/fluids/FluidStack", INTEGER }, - 2, - new Object[] { "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "java/lang/String" }); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "statusMessage", - "Ljava/lang/String;"); - Label l23 = new Label(); - mv.visitLabel(l23); - mv.visitLineNumber(1061, l23); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "statusMessageCooldown", - "I"); - Label l24 = new Label(); - mv.visitLabel(l24); - mv.visitLineNumber(1062, l24); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "lastStatusMessageCooldown", - "I"); - Label l25 = new Label(); - mv.visitLabel(l25); - mv.visitLineNumber(1063, l25); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readBoolean", "()Z", false); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "statusValid", - "Z"); - Label l26 = new Label(); - mv.visitLabel(l26); - mv.visitLineNumber(1066, l26); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "worldObj", - "L" + aWorld + ";"); - mv.visitFieldInsn(GETFIELD, aWorld, "isRemote", "Z"); - Label l27 = new Label(); - mv.visitJumpInsn(IFEQ, l27); - Label l28 = new Label(); - mv.visitLabel(l28); - mv.visitLineNumber(1068, l28); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "io/netty/buffer/ByteBuf", "readInt", "()I", false); - mv.visitVarInsn(ISTORE, 4); - Label l29 = new Label(); - mv.visitLabel(l29); - mv.visitLineNumber(1069, l29); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "riddenByEntity", - "L" + aEntity + ";"); - Label l30 = new Label(); - mv.visitJumpInsn(IFNONNULL, l30); - Label l31 = new Label(); - mv.visitLabel(l31); - mv.visitLineNumber(1071, l31); - mv.visitVarInsn(ILOAD, 4); - mv.visitInsn(ICONST_M1); - mv.visitJumpInsn(IF_ICMPLE, l27); - Label l32 = new Label(); - mv.visitLabel(l32); - mv.visitLineNumber(1073, l32); - mv.visitMethodInsn( - INVOKESTATIC, - "cpw/mods/fml/client/FMLClientHandler", - "instance", - "()Lcpw/mods/fml/client/FMLClientHandler;", - false); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "cpw/mods/fml/client/FMLClientHandler", - "getWorldClient", - "()L" + aWorldClient + ";", - false); - mv.visitVarInsn(ILOAD, 4); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aWorldClient + "", "getEntityByID", "(I)L" + aEntity + ";", false); - mv.visitVarInsn(ASTORE, 5); - Label l33 = new Label(); - mv.visitLabel(l33); - mv.visitLineNumber(1074, l33); - mv.visitVarInsn(ALOAD, 5); - mv.visitJumpInsn(IFNULL, l27); - Label l34 = new Label(); - mv.visitLabel(l34); - mv.visitLineNumber(1076, l34); - mv.visitVarInsn(ALOAD, 5); - mv.visitFieldInsn(GETFIELD, "" + aEntity + "", "dimension", "I"); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "dimension", - "I"); - Label l35 = new Label(); - mv.visitJumpInsn(IF_ICMPEQ, l35); - Label l36 = new Label(); - mv.visitLabel(l36); - mv.visitLineNumber(1078, l36); - mv.visitVarInsn(ALOAD, 5); - mv.visitTypeInsn(INSTANCEOF, "" + aEntityPlayer + ""); - mv.visitJumpInsn(IFEQ, l27); - Label l37 = new Label(); - mv.visitLabel(l37); - mv.visitLineNumber(1080, l37); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "dimension", - "I"); - mv.visitVarInsn(ALOAD, 5); - mv.visitFieldInsn(GETFIELD, "" + aEntity + "", "worldObj", "L" + aWorld + ";"); - mv.visitFieldInsn(GETFIELD, aWorld, "difficultySetting", "L" + aDifficultyEnum + ";"); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aDifficultyEnum + "", "getDifficultyId", "()I", false); - mv.visitVarInsn(ALOAD, 5); - mv.visitFieldInsn(GETFIELD, "" + aEntity + "", "worldObj", "L" + aWorld + ";"); - mv.visitMethodInsn(INVOKEVIRTUAL, aWorld, "getWorldInfo", "()L" + aWorldInfo + ";", false); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aWorldInfo + "", "getTerrainType", "()L" + aWorldType + ";", false); - mv.visitMethodInsn(INVOKEVIRTUAL, aWorldType, "getWorldTypeName", "()Ljava/lang/String;", false); - mv.visitVarInsn(ALOAD, 5); - mv.visitTypeInsn(CHECKCAST, "" + aEntityPlayerMP + ""); - mv.visitFieldInsn( - GETFIELD, - "" + aEntityPlayerMP + "", - "theItemInWorldManager", - "L" + aItemInWorldManager + ";"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "" + aItemInWorldManager + "", - "getGameType", - "()L" + aGameType + ";", - false); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aGameType + "", "getID", "()I", false); - mv.visitMethodInsn( - INVOKESTATIC, - "micdoodle8/mods/galacticraft/core/util/WorldUtil", - "forceRespawnClient", - "(IILjava/lang/String;I)L" + aEntityPlayer + ";", - false); - mv.visitVarInsn(ASTORE, 5); - Label l38 = new Label(); - mv.visitLabel(l38); - mv.visitLineNumber(1081, l38); - mv.visitVarInsn(ALOAD, 5); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aEntity + "", "mountEntity", "(L" + aEntity + ";)V", false); - Label l39 = new Label(); - mv.visitLabel(l39); - mv.visitLineNumber(1083, l39); - mv.visitJumpInsn(GOTO, l27); - mv.visitLabel(l35); - mv.visitLineNumber(1085, l35); - mv.visitFrame(F_APPEND, 2, new Object[] { INTEGER, "" + aEntity + "" }, 0, null); - mv.visitVarInsn(ALOAD, 5); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aEntity + "", "mountEntity", "(L" + aEntity + ";)V", false); - Label l40 = new Label(); - mv.visitLabel(l40); - mv.visitLineNumber(1088, l40); - mv.visitJumpInsn(GOTO, l27); - mv.visitLabel(l30); - mv.visitLineNumber(1089, l30); - mv.visitFrame(F_CHOP, 1, null, 0, null); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "riddenByEntity", - "L" + aEntity + ";"); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aEntity + "", "getEntityId", "()I", false); - mv.visitVarInsn(ILOAD, 4); - mv.visitJumpInsn(IF_ICMPEQ, l27); - Label l41 = new Label(); - mv.visitLabel(l41); - mv.visitLineNumber(1091, l41); - mv.visitVarInsn(ILOAD, 4); - mv.visitInsn(ICONST_M1); - Label l42 = new Label(); - mv.visitJumpInsn(IF_ICMPNE, l42); - Label l43 = new Label(); - mv.visitLabel(l43); - mv.visitLineNumber(1093, l43); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "riddenByEntity", - "L" + aEntity + ";"); - mv.visitInsn(ACONST_NULL); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aEntity + "", "mountEntity", "(L" + aEntity + ";)V", false); - Label l44 = new Label(); - mv.visitLabel(l44); - mv.visitLineNumber(1094, l44); - mv.visitJumpInsn(GOTO, l27); - mv.visitLabel(l42); - mv.visitLineNumber(1097, l42); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitMethodInsn( - INVOKESTATIC, - "cpw/mods/fml/client/FMLClientHandler", - "instance", - "()Lcpw/mods/fml/client/FMLClientHandler;", - false); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "cpw/mods/fml/client/FMLClientHandler", - "getWorldClient", - "()L" + aWorldClient + ";", - false); - mv.visitVarInsn(ILOAD, 4); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aWorldClient + "", "getEntityByID", "(I)L" + aEntity + ";", false); - mv.visitVarInsn(ASTORE, 5); - Label l45 = new Label(); - mv.visitLabel(l45); - mv.visitLineNumber(1098, l45); - mv.visitVarInsn(ALOAD, 5); - mv.visitJumpInsn(IFNULL, l27); - Label l46 = new Label(); - mv.visitLabel(l46); - mv.visitLineNumber(1100, l46); - mv.visitVarInsn(ALOAD, 5); - mv.visitFieldInsn(GETFIELD, "" + aEntity + "", "dimension", "I"); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "dimension", - "I"); - Label l47 = new Label(); - mv.visitJumpInsn(IF_ICMPEQ, l47); - Label l48 = new Label(); - mv.visitLabel(l48); - mv.visitLineNumber(1102, l48); - mv.visitVarInsn(ALOAD, 5); - mv.visitTypeInsn(INSTANCEOF, "" + aEntityPlayer + ""); - mv.visitJumpInsn(IFEQ, l27); - Label l49 = new Label(); - mv.visitLabel(l49); - mv.visitLineNumber(1104, l49); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "dimension", - "I"); - mv.visitVarInsn(ALOAD, 5); - mv.visitFieldInsn(GETFIELD, "" + aEntity + "", "worldObj", "L" + aWorld + ";"); - mv.visitFieldInsn(GETFIELD, aWorld, "difficultySetting", "L" + aDifficultyEnum + ";"); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aDifficultyEnum + "", "getDifficultyId", "()I", false); - mv.visitVarInsn(ALOAD, 5); - mv.visitFieldInsn(GETFIELD, "" + aEntity + "", "worldObj", "L" + aWorld + ";"); - mv.visitMethodInsn(INVOKEVIRTUAL, aWorld, "getWorldInfo", "()L" + aWorldInfo + ";", false); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aWorldInfo + "", "getTerrainType", "()L" + aWorldType + ";", false); - mv.visitMethodInsn(INVOKEVIRTUAL, aWorldType, "getWorldTypeName", "()Ljava/lang/String;", false); - mv.visitVarInsn(ALOAD, 5); - mv.visitTypeInsn(CHECKCAST, "" + aEntityPlayerMP + ""); - mv.visitFieldInsn( - GETFIELD, - "" + aEntityPlayerMP + "", - "theItemInWorldManager", - "L" + aItemInWorldManager + ";"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "" + aItemInWorldManager + "", - "getGameType", - "()L" + aGameType + ";", - false); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aGameType + "", "getID", "()I", false); - mv.visitMethodInsn( - INVOKESTATIC, - "micdoodle8/mods/galacticraft/core/util/WorldUtil", - "forceRespawnClient", - "(IILjava/lang/String;I)L" + aEntityPlayer + ";", - false); - mv.visitVarInsn(ASTORE, 5); - Label l50 = new Label(); - mv.visitLabel(l50); - mv.visitLineNumber(1105, l50); - mv.visitVarInsn(ALOAD, 5); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aEntity + "", "mountEntity", "(L" + aEntity + ";)V", false); - Label l51 = new Label(); - mv.visitLabel(l51); - mv.visitLineNumber(1107, l51); - mv.visitJumpInsn(GOTO, l27); - mv.visitLabel(l47); - mv.visitLineNumber(1109, l47); - mv.visitFrame(F_APPEND, 1, new Object[] { "" + aEntity + "" }, 0, null); - mv.visitVarInsn(ALOAD, 5); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn(INVOKEVIRTUAL, "" + aEntity + "", "mountEntity", "(L" + aEntity + ";)V", false); - mv.visitLabel(l27); - mv.visitLineNumber(1114, l27); - mv.visitFrame(F_CHOP, 2, null, 0, null); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKESTATIC, - "cpw/mods/fml/common/network/ByteBufUtils", - "readUTF8String", - "(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;", - false); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "statusColour", - "Ljava/lang/String;"); - Label l52 = new Label(); - mv.visitLabel(l52); - mv.visitLineNumber(1115, l52); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "statusColour", - "Ljava/lang/String;"); - mv.visitLdcInsn(""); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l53 = new Label(); - mv.visitJumpInsn(IFEQ, l53); - mv.visitVarInsn(ALOAD, 0); - mv.visitInsn(ACONST_NULL); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket", - "statusColour", - "Ljava/lang/String;"); - mv.visitLabel(l53); - mv.visitLineNumber(1116, l53); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitInsn(RETURN); - Label l54 = new Label(); - mv.visitLabel(l54); - mv.visitLocalVariable( - "this", - "Lmicdoodle8/mods/galacticraft/api/prefab/entity/EntityAutoRocket;", - null, - l0, - l54, - 0); - mv.visitLocalVariable("buffer", "Lio/netty/buffer/ByteBuf;", null, l0, l54, 1); - mv.visitLocalVariable("g", "Lnet/minecraftforge/fluids/FluidStack;", null, l2, l54, 2); - mv.visitLocalVariable("aBufferData", "I", null, l3, l54, 3); - mv.visitLocalVariable("s", "Lnet/minecraftforge/fluids/FluidStack;", null, l6, l4, 4); - mv.visitLocalVariable("shouldBeMountedId", "I", null, l29, l27, 4); - mv.visitLocalVariable("e", "L" + aEntity + ";", null, l33, l40, 5); - mv.visitLocalVariable("e", "L" + aEntity + ";", null, l45, l27, 5); - mv.visitMaxs(6, 6); - mv.visitEnd(); - } - } - - public static final class localClassVisitor extends ClassVisitor { - - public localClassVisitor(ClassVisitor cv) { - super(ASM5, cv); - FMLRelaunchLog - .log("[GT++ ASM] Galacticraft EntityAutoRocket Patch", Level.INFO, "Inspecting Class " + className); - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - if (name.equals("decodePacketdata")) { - FMLRelaunchLog - .log("[GT++ ASM] Galacticraft EntityAutoRocket Patch", Level.INFO, "Removing method " + name); - return null; - } - MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions); - return methodVisitor; - } - } -} diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java deleted file mode 100644 index d449e1d4de..0000000000 --- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FluidUtil.java +++ /dev/null @@ -1,337 +0,0 @@ -package gtPlusPlus.preloader.asm.transformers; - -import static org.objectweb.asm.Opcodes.ACC_PUBLIC; -import static org.objectweb.asm.Opcodes.ACC_STATIC; -import static org.objectweb.asm.Opcodes.ALOAD; -import static org.objectweb.asm.Opcodes.ASM5; -import static org.objectweb.asm.Opcodes.ASTORE; -import static org.objectweb.asm.Opcodes.CHECKCAST; -import static org.objectweb.asm.Opcodes.DUP; -import static org.objectweb.asm.Opcodes.F_CHOP; -import static org.objectweb.asm.Opcodes.F_FULL; -import static org.objectweb.asm.Opcodes.F_SAME; -import static org.objectweb.asm.Opcodes.GETFIELD; -import static org.objectweb.asm.Opcodes.GETSTATIC; -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.IFEQ; -import static org.objectweb.asm.Opcodes.IFNE; -import static org.objectweb.asm.Opcodes.IFNONNULL; -import static org.objectweb.asm.Opcodes.IFNULL; -import static org.objectweb.asm.Opcodes.IF_ACMPNE; -import static org.objectweb.asm.Opcodes.IF_ICMPGE; -import static org.objectweb.asm.Opcodes.ILOAD; -import static org.objectweb.asm.Opcodes.INTEGER; -import static org.objectweb.asm.Opcodes.INVOKEINTERFACE; -import static org.objectweb.asm.Opcodes.INVOKESPECIAL; -import static org.objectweb.asm.Opcodes.INVOKESTATIC; -import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL; -import static org.objectweb.asm.Opcodes.IRETURN; -import static org.objectweb.asm.Opcodes.NEW; -import static org.objectweb.asm.Opcodes.TOP; - -import org.apache.logging.log4j.Level; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.Label; -import org.objectweb.asm.MethodVisitor; - -import cpw.mods.fml.relauncher.FMLRelaunchLog; - -public class ClassTransformer_GC_FluidUtil { - - // The qualified name of the class we plan to transform. - private static final String className = "micdoodle8.mods.galacticraft.core.util.FluidUtil"; - // "micdoodle8/mods/galacticraft/core/util/FluidUtil - - private final boolean isValid; - private final ClassReader reader; - private final ClassWriter writer; - - public ClassTransformer_GC_FluidUtil(byte[] basicClass, boolean obfuscated) { - - ClassReader aTempReader = null; - ClassWriter aTempWriter = null; - - aTempReader = new ClassReader(basicClass); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - aTempReader.accept(new localClassVisitor(aTempWriter), 0); - - if (aTempReader != null && aTempWriter != null) { - isValid = true; - } else { - isValid = false; - } - reader = aTempReader; - writer = aTempWriter; - - if (reader != null && writer != null) { - injectMethod("testFuel"); - injectMethod("fillWithGCFuel"); - } - } - - public boolean isValidTransformer() { - return isValid; - } - - public ClassReader getReader() { - return reader; - } - - public ClassWriter getWriter() { - return writer; - } - - public void injectMethod(String aMethodName) { - MethodVisitor mv; - if (aMethodName.equals("testFuel")) { - FMLRelaunchLog.log( - "[GT++ ASM] Galacticraft FluidUtils Patch", - Level.INFO, - "Injecting " + aMethodName + " into " + className + "."); - mv = getWriter().visitMethod(ACC_PUBLIC + ACC_STATIC, "testFuel", "(Ljava/lang/String;)Z", null, null); - mv.visitCode(); - Label l0 = new Label(); - mv.visitLabel(l0); - mv.visitLineNumber(37, l0); - mv.visitFieldInsn( - GETSTATIC, - "gtPlusPlus/core/item/chemistry/RocketFuels", - "mValidRocketFuelNames", - "Ljava/util/HashSet;"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/HashSet", "iterator", "()Ljava/util/Iterator;", false); - mv.visitVarInsn(ASTORE, 2); - Label l1 = new Label(); - mv.visitJumpInsn(GOTO, l1); - Label l2 = new Label(); - mv.visitLabel(l2); - mv.visitFrame( - F_FULL, - 3, - new Object[] { "java/lang/String", TOP, "java/util/Iterator" }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 2); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true); - mv.visitTypeInsn(CHECKCAST, "java/lang/String"); - mv.visitVarInsn(ASTORE, 1); - Label l3 = new Label(); - mv.visitLabel(l3); - mv.visitLineNumber(38, l3); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - mv.visitJumpInsn(IFEQ, l1); - Label l4 = new Label(); - mv.visitLabel(l4); - mv.visitLineNumber(39, l4); - mv.visitInsn(ICONST_1); - mv.visitInsn(IRETURN); - mv.visitLabel(l1); - mv.visitLineNumber(37, l1); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 2); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z", true); - mv.visitJumpInsn(IFNE, l2); - Label l5 = new Label(); - mv.visitLabel(l5); - mv.visitLineNumber(42, l5); - mv.visitInsn(ICONST_0); - mv.visitInsn(IRETURN); - Label l6 = new Label(); - mv.visitLabel(l6); - mv.visitLocalVariable("name", "Ljava/lang/String;", null, l0, l6, 0); - mv.visitLocalVariable("aFuelname", "Ljava/lang/String;", null, l3, l1, 1); - mv.visitMaxs(2, 3); - mv.visitEnd(); - } else if (aMethodName.equals("fillWithGCFuel")) { - mv = getWriter().visitMethod( - ACC_PUBLIC + ACC_STATIC, - "fillWithGCFuel", - "(Lnet/minecraftforge/fluids/FluidTank;Lnet/minecraftforge/fluids/FluidStack;Z)I", - null, - null); - mv.visitCode(); - Label l0 = new Label(); - mv.visitLabel(l0); - mv.visitLineNumber(46, l0); - mv.visitVarInsn(ALOAD, 1); - Label l1 = new Label(); - mv.visitJumpInsn(IFNULL, l1); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKESTATIC, - "net/minecraftforge/fluids/FluidRegistry", - "getFluidName", - "(Lnet/minecraftforge/fluids/FluidStack;)Ljava/lang/String;", - false); - mv.visitMethodInsn( - INVOKESTATIC, - "micdoodle8/mods/galacticraft/core/util/FluidUtil", - "testFuel", - "(Ljava/lang/String;)Z", - false); - mv.visitJumpInsn(IFEQ, l1); - Label l2 = new Label(); - mv.visitLabel(l2); - mv.visitLineNumber(47, l2); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "getFluid", - "()Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitVarInsn(ASTORE, 3); - Label l3 = new Label(); - mv.visitLabel(l3); - mv.visitLineNumber(48, l3); - mv.visitVarInsn(ALOAD, 3); - Label l4 = new Label(); - mv.visitJumpInsn(IFNONNULL, l4); - Label l5 = new Label(); - mv.visitLabel(l5); - mv.visitLineNumber(49, l5); - mv.visitFieldInsn( - GETSTATIC, - "gtPlusPlus/core/item/chemistry/RocketFuels", - "mValidRocketFuels", - "Ljava/util/HashMap;"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/HashMap", "values", "()Ljava/util/Collection;", false); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Collection", "iterator", "()Ljava/util/Iterator;", true); - mv.visitVarInsn(ASTORE, 5); - Label l6 = new Label(); - mv.visitJumpInsn(GOTO, l6); - Label l7 = new Label(); - mv.visitLabel(l7); - mv.visitFrame( - F_FULL, - 6, - new Object[] { "net/minecraftforge/fluids/FluidTank", "net/minecraftforge/fluids/FluidStack", - INTEGER, "net/minecraftforge/fluids/FluidStack", TOP, "java/util/Iterator" }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 5); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true); - mv.visitTypeInsn(CHECKCAST, "net/minecraftforge/fluids/Fluid"); - mv.visitVarInsn(ASTORE, 4); - Label l8 = new Label(); - mv.visitLabel(l8); - mv.visitLineNumber(50, l8); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidStack", - "getFluid", - "()Lnet/minecraftforge/fluids/Fluid;", - false); - mv.visitVarInsn(ALOAD, 4); - mv.visitJumpInsn(IF_ACMPNE, l6); - Label l9 = new Label(); - mv.visitLabel(l9); - mv.visitLineNumber(51, l9); - mv.visitVarInsn(ALOAD, 0); - mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack"); - mv.visitInsn(DUP); - mv.visitVarInsn(ALOAD, 4); - mv.visitVarInsn(ALOAD, 1); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitMethodInsn( - INVOKESPECIAL, - "net/minecraftforge/fluids/FluidStack", - "<init>", - "(Lnet/minecraftforge/fluids/Fluid;I)V", - false); - mv.visitVarInsn(ILOAD, 2); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "fill", - "(Lnet/minecraftforge/fluids/FluidStack;Z)I", - false); - mv.visitInsn(IRETURN); - mv.visitLabel(l6); - mv.visitLineNumber(49, l6); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 5); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z", true); - mv.visitJumpInsn(IFNE, l7); - mv.visitLabel(l4); - mv.visitLineNumber(55, l4); - mv.visitFrame( - F_FULL, - 4, - new Object[] { "net/minecraftforge/fluids/FluidTank", "net/minecraftforge/fluids/FluidStack", - INTEGER, "net/minecraftforge/fluids/FluidStack" }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 3); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getCapacity", "()I", false); - mv.visitJumpInsn(IF_ICMPGE, l1); - Label l10 = new Label(); - mv.visitLabel(l10); - mv.visitLineNumber(56, l10); - mv.visitVarInsn(ALOAD, 0); - mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack"); - mv.visitInsn(DUP); - mv.visitVarInsn(ALOAD, 3); - mv.visitVarInsn(ALOAD, 1); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitMethodInsn( - INVOKESPECIAL, - "net/minecraftforge/fluids/FluidStack", - "<init>", - "(Lnet/minecraftforge/fluids/FluidStack;I)V", - false); - mv.visitVarInsn(ILOAD, 2); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "fill", - "(Lnet/minecraftforge/fluids/FluidStack;Z)I", - false); - mv.visitInsn(IRETURN); - mv.visitLabel(l1); - mv.visitLineNumber(59, l1); - mv.visitFrame(F_CHOP, 1, null, 0, null); - mv.visitInsn(ICONST_0); - mv.visitInsn(IRETURN); - Label l11 = new Label(); - mv.visitLabel(l11); - mv.visitLocalVariable("tank", "Lnet/minecraftforge/fluids/FluidTank;", null, l0, l11, 0); - mv.visitLocalVariable("liquid", "Lnet/minecraftforge/fluids/FluidStack;", null, l0, l11, 1); - mv.visitLocalVariable("doFill", "Z", null, l0, l11, 2); - mv.visitLocalVariable("liquidInTank", "Lnet/minecraftforge/fluids/FluidStack;", null, l3, l1, 3); - mv.visitLocalVariable("aFuelType", "Lnet/minecraftforge/fluids/Fluid;", null, l8, l6, 4); - mv.visitMaxs(5, 6); - mv.visitEnd(); - } - FMLRelaunchLog.log("[GT++ ASM] Galacticraft FluidUtils Patch", Level.INFO, "Method injection complete."); - } - - public static final class localClassVisitor extends ClassVisitor { - - public localClassVisitor(ClassVisitor cv) { - super(ASM5, cv); - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - if (name.equals("testFuel")) { - FMLRelaunchLog.log("[GT++ ASM] Galacticraft FluidUtils Patch", Level.INFO, "Removing method " + name); - return null; - } - if (name.equals("fillWithGCFuel")) { - FMLRelaunchLog.log("[GT++ ASM] Galacticraft FluidUtils Patch", Level.INFO, "Removing method " + name); - return null; - } - MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions); - return methodVisitor; - } - } -} diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java deleted file mode 100644 index e194c6d466..0000000000 --- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GC_FuelLoader.java +++ /dev/null @@ -1,1025 +0,0 @@ -package gtPlusPlus.preloader.asm.transformers; - -import static org.objectweb.asm.Opcodes.AALOAD; -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.ARRAYLENGTH; -import static org.objectweb.asm.Opcodes.ASM5; -import static org.objectweb.asm.Opcodes.ASTORE; -import static org.objectweb.asm.Opcodes.BIPUSH; -import static org.objectweb.asm.Opcodes.CHECKCAST; -import static org.objectweb.asm.Opcodes.DUP; -import static org.objectweb.asm.Opcodes.F_APPEND; -import static org.objectweb.asm.Opcodes.F_CHOP; -import static org.objectweb.asm.Opcodes.F_FULL; -import static org.objectweb.asm.Opcodes.F_SAME; -import static org.objectweb.asm.Opcodes.F_SAME1; -import static org.objectweb.asm.Opcodes.GETFIELD; -import static org.objectweb.asm.Opcodes.GETSTATIC; -import static org.objectweb.asm.Opcodes.GOTO; -import static org.objectweb.asm.Opcodes.IADD; -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.IFEQ; -import static org.objectweb.asm.Opcodes.IFLE; -import static org.objectweb.asm.Opcodes.IFNE; -import static org.objectweb.asm.Opcodes.IFNONNULL; -import static org.objectweb.asm.Opcodes.IFNULL; -import static org.objectweb.asm.Opcodes.IF_ACMPNE; -import static org.objectweb.asm.Opcodes.IF_ICMPGE; -import static org.objectweb.asm.Opcodes.IF_ICMPGT; -import static org.objectweb.asm.Opcodes.IF_ICMPLT; -import static org.objectweb.asm.Opcodes.ILOAD; -import static org.objectweb.asm.Opcodes.INSTANCEOF; -import static org.objectweb.asm.Opcodes.INTEGER; -import static org.objectweb.asm.Opcodes.INVOKEINTERFACE; -import static org.objectweb.asm.Opcodes.INVOKESPECIAL; -import static org.objectweb.asm.Opcodes.INVOKESTATIC; -import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL; -import static org.objectweb.asm.Opcodes.IREM; -import static org.objectweb.asm.Opcodes.ISTORE; -import static org.objectweb.asm.Opcodes.ISUB; -import static org.objectweb.asm.Opcodes.NEW; -import static org.objectweb.asm.Opcodes.POP; -import static org.objectweb.asm.Opcodes.PUTFIELD; -import static org.objectweb.asm.Opcodes.RETURN; -import static org.objectweb.asm.Opcodes.TOP; - -import org.apache.logging.log4j.Level; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.Label; -import org.objectweb.asm.MethodVisitor; - -import cpw.mods.fml.relauncher.FMLRelaunchLog; -import gtPlusPlus.preloader.DevHelper; - -public class ClassTransformer_GC_FuelLoader { - - // The qualified name of the class we plan to transform. - private static final String className = "micdoodle8.mods.galacticraft.core.tile.TileEntityFuelLoader"; - // micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader - - private final boolean isValid; - private final ClassReader reader; - private final ClassWriter writer; - private final boolean isObfuscated; - - public ClassTransformer_GC_FuelLoader(byte[] basicClass, boolean obfuscated) { - - ClassReader aTempReader = null; - ClassWriter aTempWriter = null; - - isObfuscated = obfuscated; - - aTempReader = new ClassReader(basicClass); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - aTempReader.accept(new localClassVisitor(aTempWriter), 0); - - if (aTempReader != null && aTempWriter != null) { - isValid = true; - } else { - isValid = false; - } - reader = aTempReader; - writer = aTempWriter; - - if (reader != null && writer != null) { - injectMethod(); - } else { - FMLRelaunchLog.log("[GT++ ASM] Galacticraft Fuel_Loader Patch", Level.INFO, "Failed to Inject new code."); - } - } - - public boolean isValidTransformer() { - return isValid; - } - - public ClassReader getReader() { - return reader; - } - - public ClassWriter getWriter() { - return writer; - } - - public void injectMethod() { - String aWorld = isObfuscated ? DevHelper.getObfuscated("net/minecraft/world/World") - : "net/minecraft/world/World"; - String aItemStack = isObfuscated ? DevHelper.getObfuscated("net/minecraft/item/ItemStack") - : "net/minecraft/item/ItemStack"; - String aTileEntity = isObfuscated ? DevHelper.getObfuscated("net/minecraft/tileentity/TileEntity") - : "net/minecraft/tileentity/TileEntity"; - - if (isValidTransformer()) { - FMLRelaunchLog.log( - "[GT++ ASM] Galacticraft Fuel_Loader Patch", - Level.INFO, - "Injecting updateEntity into " + className + "."); - MethodVisitor mv = getWriter().visitMethod(ACC_PUBLIC, "updateEntity", "()V", null, null); - mv.visitCode(); - Label l0 = new Label(); - mv.visitLabel(l0); - mv.visitLineNumber(60, l0); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn( - INVOKESPECIAL, - "micdoodle8/mods/galacticraft/core/energy/tile/TileBaseElectricBlockWithInventory", - "updateEntity", - "()V", - false); - Label l1 = new Label(); - mv.visitLabel(l1); - mv.visitLineNumber(61, l1); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "worldObj", - "L" + aWorld + ";"); - mv.visitFieldInsn(GETFIELD, "" + aWorld + "", "isRemote", "Z"); - Label l2 = new Label(); - mv.visitJumpInsn(IFNE, l2); - Label l3 = new Label(); - mv.visitLabel(l3); - mv.visitLineNumber(62, l3); - mv.visitVarInsn(ALOAD, 0); - mv.visitInsn(ICONST_0); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "loadedFuelLastTick", - "Z"); - Label l4 = new Label(); - mv.visitLabel(l4); - mv.visitLineNumber(63, l4); - mv.visitInsn(ACONST_NULL); - mv.visitVarInsn(ASTORE, 1); - Label l5 = new Label(); - mv.visitLabel(l5); - mv.visitLineNumber(66, l5); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "containingItems", - "[L" + aItemStack + ";"); - mv.visitInsn(ICONST_1); - mv.visitInsn(AALOAD); - Label l6 = new Label(); - mv.visitJumpInsn(IFNULL, l6); - Label l7 = new Label(); - mv.visitLabel(l7); - mv.visitLineNumber(67, l7); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "containingItems", - "[L" + aItemStack + ";"); - mv.visitInsn(ICONST_1); - mv.visitInsn(AALOAD); - mv.visitMethodInsn( - INVOKESTATIC, - "net/minecraftforge/fluids/FluidContainerRegistry", - "getFluidForFilledItem", - "(L" + aItemStack + ";)Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitVarInsn(ASTORE, 1); - Label l8 = new Label(); - mv.visitLabel(l8); - mv.visitLineNumber(68, l8); - mv.visitVarInsn(ALOAD, 1); - mv.visitJumpInsn(IFNULL, l6); - Label l9 = new Label(); - mv.visitLabel(l9); - mv.visitLineNumber(69, l9); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKESTATIC, - "net/minecraftforge/fluids/FluidRegistry", - "getFluidName", - "(Lnet/minecraftforge/fluids/FluidStack;)Ljava/lang/String;", - false); - mv.visitMethodInsn( - INVOKESTATIC, - "micdoodle8/mods/galacticraft/core/util/FluidUtil", - "testFuel", - "(Ljava/lang/String;)Z", - false); - mv.visitVarInsn(ISTORE, 4); - Label l10 = new Label(); - mv.visitLabel(l10); - mv.visitLineNumber(70, l10); - mv.visitVarInsn(ILOAD, 4); - mv.visitJumpInsn(IFEQ, l6); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "getFluid", - "()Lnet/minecraftforge/fluids/FluidStack;", - false); - Label l11 = new Label(); - mv.visitJumpInsn(IFNULL, l11); - Label l12 = new Label(); - mv.visitLabel(l12); - mv.visitLineNumber(71, l12); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "getFluid", - "()Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitVarInsn(ALOAD, 1); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitInsn(IADD); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getCapacity", "()I", false); - mv.visitJumpInsn(IF_ICMPGT, l6); - mv.visitLabel(l11); - mv.visitLineNumber(73, l11); - mv.visitFrame( - F_FULL, - 5, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "getFluid", - "()Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitVarInsn(ASTORE, 5); - Label l13 = new Label(); - mv.visitLabel(l13); - mv.visitLineNumber(74, l13); - mv.visitInsn(ICONST_0); - mv.visitVarInsn(ISTORE, 6); - Label l14 = new Label(); - mv.visitLabel(l14); - mv.visitLineNumber(75, l14); - mv.visitVarInsn(ALOAD, 5); - Label l15 = new Label(); - mv.visitJumpInsn(IFNONNULL, l15); - Label l16 = new Label(); - mv.visitLabel(l16); - mv.visitLineNumber(76, l16); - mv.visitFieldInsn( - GETSTATIC, - "gtPlusPlus/core/item/chemistry/RocketFuels", - "mValidRocketFuels", - "Ljava/util/HashMap;"); - Label l17 = new Label(); - mv.visitLabel(l17); - mv.visitLineNumber(77, l17); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/HashMap", "values", "()Ljava/util/Collection;", false); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Collection", "iterator", "()Ljava/util/Iterator;", true); - mv.visitVarInsn(ASTORE, 8); - Label l18 = new Label(); - mv.visitJumpInsn(GOTO, l18); - Label l19 = new Label(); - mv.visitLabel(l19); - mv.visitFrame( - F_FULL, - 9, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER, - "net/minecraftforge/fluids/FluidStack", INTEGER, TOP, "java/util/Iterator" }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 8); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true); - mv.visitTypeInsn(CHECKCAST, "net/minecraftforge/fluids/Fluid"); - mv.visitVarInsn(ASTORE, 7); - Label l20 = new Label(); - mv.visitLabel(l20); - mv.visitLineNumber(78, l20); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidStack", - "getFluid", - "()Lnet/minecraftforge/fluids/Fluid;", - false); - mv.visitVarInsn(ALOAD, 7); - mv.visitJumpInsn(IF_ACMPNE, l18); - Label l21 = new Label(); - mv.visitLabel(l21); - mv.visitLineNumber(79, l21); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack"); - mv.visitInsn(DUP); - mv.visitVarInsn(ALOAD, 7); - mv.visitVarInsn(ALOAD, 1); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitMethodInsn( - INVOKESPECIAL, - "net/minecraftforge/fluids/FluidStack", - "<init>", - "(Lnet/minecraftforge/fluids/Fluid;I)V", - false); - mv.visitInsn(ICONST_1); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "fill", - "(Lnet/minecraftforge/fluids/FluidStack;Z)I", - false); - Label l22 = new Label(); - mv.visitJumpInsn(IFLE, l22); - mv.visitInsn(ICONST_1); - Label l23 = new Label(); - mv.visitJumpInsn(GOTO, l23); - mv.visitLabel(l22); - mv.visitFrame( - F_FULL, - 9, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER, - "net/minecraftforge/fluids/FluidStack", INTEGER, "net/minecraftforge/fluids/Fluid", - "java/util/Iterator" }, - 0, - new Object[] {}); - mv.visitInsn(ICONST_0); - mv.visitLabel(l23); - mv.visitFrame(F_SAME1, 0, null, 1, new Object[] { INTEGER }); - mv.visitVarInsn(ISTORE, 6); - mv.visitLabel(l18); - mv.visitLineNumber(76, l18); - mv.visitFrame( - F_FULL, - 9, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER, - "net/minecraftforge/fluids/FluidStack", INTEGER, TOP, "java/util/Iterator" }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 8); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z", true); - mv.visitJumpInsn(IFNE, l19); - Label l24 = new Label(); - mv.visitLabel(l24); - mv.visitLineNumber(82, l24); - Label l25 = new Label(); - mv.visitJumpInsn(GOTO, l25); - mv.visitLabel(l15); - mv.visitLineNumber(84, l15); - mv.visitFrame( - F_FULL, - 7, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack", TOP, TOP, INTEGER, - "net/minecraftforge/fluids/FluidStack", INTEGER }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 5); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getCapacity", "()I", false); - mv.visitJumpInsn(IF_ICMPGE, l25); - mv.visitVarInsn(ALOAD, 5); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidStack", - "isFluidEqual", - "(Lnet/minecraftforge/fluids/FluidStack;)Z", - false); - mv.visitJumpInsn(IFEQ, l25); - Label l26 = new Label(); - mv.visitLabel(l26); - mv.visitLineNumber(85, l26); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack"); - mv.visitInsn(DUP); - mv.visitVarInsn(ALOAD, 5); - mv.visitVarInsn(ALOAD, 1); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitMethodInsn( - INVOKESPECIAL, - "net/minecraftforge/fluids/FluidStack", - "<init>", - "(Lnet/minecraftforge/fluids/FluidStack;I)V", - false); - mv.visitInsn(ICONST_1); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "fill", - "(Lnet/minecraftforge/fluids/FluidStack;Z)I", - false); - Label l27 = new Label(); - mv.visitJumpInsn(IFLE, l27); - mv.visitInsn(ICONST_1); - Label l28 = new Label(); - mv.visitJumpInsn(GOTO, l28); - mv.visitLabel(l27); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitInsn(ICONST_0); - mv.visitLabel(l28); - mv.visitFrame(F_SAME1, 0, null, 1, new Object[] { INTEGER }); - mv.visitVarInsn(ISTORE, 6); - mv.visitLabel(l25); - mv.visitLineNumber(88, l25); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ILOAD, 6); - mv.visitJumpInsn(IFEQ, l6); - Label l29 = new Label(); - mv.visitLabel(l29); - mv.visitLineNumber(89, l29); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "containingItems", - "[L" + aItemStack + ";"); - mv.visitInsn(ICONST_1); - mv.visitInsn(AALOAD); - mv.visitInsn(DUP); - mv.visitFieldInsn(GETFIELD, "" + aItemStack + "", "stackSize", "I"); - mv.visitInsn(ICONST_1); - mv.visitInsn(ISUB); - mv.visitFieldInsn(PUTFIELD, "" + aItemStack + "", "stackSize", "I"); - Label l30 = new Label(); - mv.visitLabel(l30); - mv.visitLineNumber(90, l30); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "containingItems", - "[L" + aItemStack + ";"); - mv.visitInsn(ICONST_1); - mv.visitInsn(AALOAD); - mv.visitFieldInsn(GETFIELD, "" + aItemStack + "", "stackSize", "I"); - mv.visitJumpInsn(IFNE, l6); - Label l31 = new Label(); - mv.visitLabel(l31); - mv.visitLineNumber(91, l31); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "containingItems", - "[L" + aItemStack + ";"); - mv.visitInsn(ICONST_1); - mv.visitInsn(ACONST_NULL); - mv.visitInsn(AASTORE); - mv.visitLabel(l6); - mv.visitLineNumber(97, l6); - mv.visitFrame( - F_FULL, - 2, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack" }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "ticks", "I"); - mv.visitIntInsn(BIPUSH, 100); - mv.visitInsn(IREM); - Label l32 = new Label(); - mv.visitJumpInsn(IFNE, l32); - Label l33 = new Label(); - mv.visitLabel(l33); - mv.visitLineNumber(98, l33); - mv.visitVarInsn(ALOAD, 0); - mv.visitInsn(ACONST_NULL); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "attachedFuelable", - "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;"); - Label l34 = new Label(); - mv.visitLabel(l34); - mv.visitLineNumber(99, l34); - mv.visitFieldInsn( - GETSTATIC, - "net/minecraftforge/common/util/ForgeDirection", - "VALID_DIRECTIONS", - "[Lnet/minecraftforge/common/util/ForgeDirection;"); - mv.visitVarInsn(ASTORE, 4); - Label l35 = new Label(); - mv.visitLabel(l35); - mv.visitLineNumber(100, l35); - mv.visitVarInsn(ALOAD, 4); - mv.visitInsn(ARRAYLENGTH); - mv.visitVarInsn(ISTORE, 3); - Label l36 = new Label(); - mv.visitLabel(l36); - mv.visitLineNumber(102, l36); - mv.visitInsn(ICONST_0); - mv.visitVarInsn(ISTORE, 2); - Label l37 = new Label(); - mv.visitLabel(l37); - Label l38 = new Label(); - mv.visitJumpInsn(GOTO, l38); - Label l39 = new Label(); - mv.visitLabel(l39); - mv.visitLineNumber(103, l39); - mv.visitFrame( - F_APPEND, - 3, - new Object[] { INTEGER, INTEGER, "[Lnet/minecraftforge/common/util/ForgeDirection;" }, - 0, - null); - mv.visitVarInsn(ALOAD, 4); - mv.visitVarInsn(ILOAD, 2); - mv.visitInsn(AALOAD); - mv.visitVarInsn(ASTORE, 5); - Label l40 = new Label(); - mv.visitLabel(l40); - mv.visitLineNumber(104, l40); - mv.visitTypeInsn(NEW, "micdoodle8/mods/galacticraft/api/vector/BlockVec3"); - mv.visitInsn(DUP); - mv.visitVarInsn(ALOAD, 0); - mv.visitMethodInsn( - INVOKESPECIAL, - "micdoodle8/mods/galacticraft/api/vector/BlockVec3", - "<init>", - "(L" + aTileEntity + ";)V", - false); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "worldObj", - "L" + aWorld + ";"); - mv.visitVarInsn(ALOAD, 5); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "micdoodle8/mods/galacticraft/api/vector/BlockVec3", - "getTileEntityOnSide", - "(L" + aWorld + ";Lnet/minecraftforge/common/util/ForgeDirection;)L" + aTileEntity + ";", - false); - mv.visitVarInsn(ASTORE, 6); - Label l41 = new Label(); - mv.visitLabel(l41); - mv.visitLineNumber(105, l41); - mv.visitVarInsn(ALOAD, 6); - mv.visitTypeInsn(INSTANCEOF, "micdoodle8/mods/galacticraft/core/tile/TileEntityMulti"); - Label l42 = new Label(); - mv.visitJumpInsn(IFEQ, l42); - Label l43 = new Label(); - mv.visitLabel(l43); - mv.visitLineNumber(106, l43); - mv.visitVarInsn(ALOAD, 6); - mv.visitTypeInsn(CHECKCAST, "micdoodle8/mods/galacticraft/core/tile/TileEntityMulti"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "micdoodle8/mods/galacticraft/core/tile/TileEntityMulti", - "getMainBlockTile", - "()L" + aTileEntity + ";", - false); - mv.visitVarInsn(ASTORE, 7); - Label l44 = new Label(); - mv.visitLabel(l44); - mv.visitLineNumber(107, l44); - mv.visitVarInsn(ALOAD, 7); - mv.visitTypeInsn(INSTANCEOF, "micdoodle8/mods/galacticraft/api/entity/IFuelable"); - Label l45 = new Label(); - mv.visitJumpInsn(IFEQ, l45); - Label l46 = new Label(); - mv.visitLabel(l46); - mv.visitLineNumber(108, l46); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 7); - mv.visitTypeInsn(CHECKCAST, "micdoodle8/mods/galacticraft/api/entity/IFuelable"); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "attachedFuelable", - "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;"); - Label l47 = new Label(); - mv.visitLabel(l47); - mv.visitLineNumber(109, l47); - mv.visitJumpInsn(GOTO, l32); - mv.visitLabel(l42); - mv.visitLineNumber(111, l42); - mv.visitFrame( - F_APPEND, - 2, - new Object[] { "net/minecraftforge/common/util/ForgeDirection", "" + aTileEntity + "" }, - 0, - null); - mv.visitVarInsn(ALOAD, 6); - mv.visitTypeInsn(INSTANCEOF, "micdoodle8/mods/galacticraft/api/entity/IFuelable"); - mv.visitJumpInsn(IFEQ, l45); - Label l48 = new Label(); - mv.visitLabel(l48); - mv.visitLineNumber(112, l48); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 6); - mv.visitTypeInsn(CHECKCAST, "micdoodle8/mods/galacticraft/api/entity/IFuelable"); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "attachedFuelable", - "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;"); - Label l49 = new Label(); - mv.visitLabel(l49); - mv.visitLineNumber(113, l49); - mv.visitJumpInsn(GOTO, l32); - mv.visitLabel(l45); - mv.visitLineNumber(102, l45); - mv.visitFrame(F_CHOP, 2, null, 0, null); - mv.visitIincInsn(2, 1); - mv.visitLabel(l38); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ILOAD, 2); - mv.visitVarInsn(ILOAD, 3); - mv.visitJumpInsn(IF_ICMPLT, l39); - mv.visitLabel(l32); - mv.visitLineNumber(117, l32); - mv.visitFrame(F_CHOP, 3, null, 0, null); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitJumpInsn(IFNULL, l2); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "getFluid", - "()Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitJumpInsn(IFNULL, l2); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "getFluid", - "()Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitJumpInsn(IFLE, l2); - Label l50 = new Label(); - mv.visitLabel(l50); - mv.visitLineNumber(118, l50); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "getFluid", - "()Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitVarInsn(ASTORE, 4); - Label l51 = new Label(); - mv.visitLabel(l51); - mv.visitLineNumber(119, l51); - mv.visitVarInsn(ALOAD, 4); - Label l52 = new Label(); - mv.visitJumpInsn(IFNONNULL, l52); - Label l53 = new Label(); - mv.visitLabel(l53); - mv.visitLineNumber(120, l53); - mv.visitFieldInsn( - GETSTATIC, - "gtPlusPlus/core/item/chemistry/RocketFuels", - "mValidRocketFuels", - "Ljava/util/HashMap;"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/HashMap", "values", "()Ljava/util/Collection;", false); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Collection", "iterator", "()Ljava/util/Iterator;", true); - mv.visitVarInsn(ASTORE, 6); - Label l54 = new Label(); - mv.visitJumpInsn(GOTO, l54); - Label l55 = new Label(); - mv.visitLabel(l55); - mv.visitFrame( - F_FULL, - 7, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack", TOP, TOP, "net/minecraftforge/fluids/FluidStack", - TOP, "java/util/Iterator" }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 6); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;", true); - mv.visitTypeInsn(CHECKCAST, "net/minecraftforge/fluids/Fluid"); - mv.visitVarInsn(ASTORE, 5); - Label l56 = new Label(); - mv.visitLabel(l56); - mv.visitLineNumber(121, l56); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "getFluid", - "()Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidStack", - "getFluid", - "()Lnet/minecraftforge/fluids/Fluid;", - false); - mv.visitVarInsn(ALOAD, 5); - mv.visitJumpInsn(IF_ACMPNE, l54); - Label l57 = new Label(); - mv.visitLabel(l57); - mv.visitLineNumber(122, l57); - mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack"); - mv.visitInsn(DUP); - mv.visitVarInsn(ALOAD, 5); - mv.visitInsn(ICONST_2); - mv.visitMethodInsn( - INVOKESPECIAL, - "net/minecraftforge/fluids/FluidStack", - "<init>", - "(Lnet/minecraftforge/fluids/Fluid;I)V", - false); - mv.visitVarInsn(ASTORE, 1); - mv.visitLabel(l54); - mv.visitLineNumber(120, l54); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 6); - mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z", true); - mv.visitJumpInsn(IFNE, l55); - mv.visitLabel(l52); - mv.visitLineNumber(126, l52); - mv.visitFrame( - F_FULL, - 5, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack", TOP, TOP, "net/minecraftforge/fluids/FluidStack" }, - 0, - new Object[] {}); - mv.visitVarInsn(ALOAD, 4); - mv.visitFieldInsn(GETFIELD, "net/minecraftforge/fluids/FluidStack", "amount", "I"); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraftforge/fluids/FluidTank", "getCapacity", "()I", false); - Label l58 = new Label(); - mv.visitJumpInsn(IF_ICMPGE, l58); - Label l59 = new Label(); - mv.visitLabel(l59); - mv.visitLineNumber(127, l59); - mv.visitTypeInsn(NEW, "net/minecraftforge/fluids/FluidStack"); - mv.visitInsn(DUP); - mv.visitVarInsn(ALOAD, 4); - mv.visitInsn(ICONST_2); - mv.visitMethodInsn( - INVOKESPECIAL, - "net/minecraftforge/fluids/FluidStack", - "<init>", - "(Lnet/minecraftforge/fluids/FluidStack;I)V", - false); - mv.visitVarInsn(ASTORE, 1); - mv.visitLabel(l58); - mv.visitLineNumber(130, l58); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 1); - mv.visitJumpInsn(IFNULL, l2); - Label l60 = new Label(); - mv.visitLabel(l60); - mv.visitLineNumber(131, l60); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "attachedFuelable", - "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;"); - mv.visitJumpInsn(IFNULL, l2); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "hasEnoughEnergyToRun", - "Z"); - mv.visitJumpInsn(IFEQ, l2); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn(GETFIELD, "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", "disabled", "Z"); - mv.visitJumpInsn(IFNE, l2); - Label l61 = new Label(); - mv.visitLabel(l61); - mv.visitLineNumber(132, l61); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "attachedFuelable", - "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;"); - mv.visitMethodInsn( - INVOKESTATIC, - "gtPlusPlus/xmod/galacticraft/util/GalacticUtils", - "getRocketTier", - "(Ljava/lang/Object;)I", - false); - mv.visitVarInsn(ISTORE, 5); - Label l62 = new Label(); - mv.visitLabel(l62); - mv.visitLineNumber(133, l62); - mv.visitVarInsn(ILOAD, 5); - mv.visitJumpInsn(IFLE, l2); - Label l63 = new Label(); - mv.visitLabel(l63); - mv.visitLineNumber(134, l63); - mv.visitVarInsn(ILOAD, 5); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKESTATIC, - "gtPlusPlus/xmod/galacticraft/util/GalacticUtils", - "isFuelValidForTier", - "(ILnet/minecraftforge/fluids/FluidStack;)Z", - false); - mv.visitJumpInsn(IFEQ, l2); - Label l64 = new Label(); - mv.visitLabel(l64); - mv.visitLineNumber(135, l64); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "attachedFuelable", - "Lmicdoodle8/mods/galacticraft/api/entity/IFuelable;"); - mv.visitVarInsn(ALOAD, 1); - mv.visitInsn(ICONST_1); - mv.visitMethodInsn( - INVOKEINTERFACE, - "micdoodle8/mods/galacticraft/api/entity/IFuelable", - "addFuel", - "(Lnet/minecraftforge/fluids/FluidStack;Z)I", - true); - mv.visitVarInsn(ISTORE, 3); - Label l65 = new Label(); - mv.visitLabel(l65); - mv.visitLineNumber(136, l65); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ILOAD, 3); - Label l66 = new Label(); - mv.visitJumpInsn(IFLE, l66); - mv.visitInsn(ICONST_1); - Label l67 = new Label(); - mv.visitJumpInsn(GOTO, l67); - mv.visitLabel(l66); - mv.visitFrame( - F_FULL, - 6, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack", TOP, INTEGER, - "net/minecraftforge/fluids/FluidStack", INTEGER }, - 1, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader" }); - mv.visitInsn(ICONST_0); - mv.visitLabel(l67); - mv.visitFrame( - F_FULL, - 6, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "net/minecraftforge/fluids/FluidStack", TOP, INTEGER, - "net/minecraftforge/fluids/FluidStack", INTEGER }, - 2, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", INTEGER }); - mv.visitFieldInsn( - PUTFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "loadedFuelLastTick", - "Z"); - Label l68 = new Label(); - mv.visitLabel(l68); - mv.visitLineNumber(137, l68); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn( - GETFIELD, - "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader", - "fuelTank", - "Lnet/minecraftforge/fluids/FluidTank;"); - mv.visitVarInsn(ILOAD, 3); - mv.visitInsn(ICONST_1); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraftforge/fluids/FluidTank", - "drain", - "(IZ)Lnet/minecraftforge/fluids/FluidStack;", - false); - mv.visitInsn(POP); - mv.visitLabel(l2); - mv.visitLineNumber(144, l2); - mv.visitFrame( - F_FULL, - 1, - new Object[] { "micdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader" }, - 0, - new Object[] {}); - mv.visitInsn(RETURN); - Label l69 = new Label(); - mv.visitLabel(l69); - mv.visitLocalVariable( - "this", - "Lmicdoodle8/mods/galacticraft/core/tile/TileEntityFuelLoader;", - null, - l0, - l69, - 0); - mv.visitLocalVariable("liquid", "Lnet/minecraftforge/fluids/FluidStack;", null, l5, l2, 1); - mv.visitLocalVariable("amount", "I", null, l37, l32, 2); - mv.visitLocalVariable("filled", "I", null, l36, l32, 3); - mv.visitLocalVariable("filled", "I", null, l65, l2, 3); - mv.visitLocalVariable("isFuel", "Z", null, l10, l6, 4); - mv.visitLocalVariable("liquidInTank", "Lnet/minecraftforge/fluids/FluidStack;", null, l13, l6, 5); - mv.visitLocalVariable("didFill", "Z", null, l14, l6, 6); - mv.visitLocalVariable("aFuelType", "Lnet/minecraftforge/fluids/Fluid;", null, l20, l18, 7); - mv.visitLocalVariable("var8", "[Lnet/minecraftforge/common/util/ForgeDirection;", null, l35, l32, 4); - mv.visitLocalVariable("dir", "Lnet/minecraftforge/common/util/ForgeDirection;", null, l40, l45, 5); - mv.visitLocalVariable("pad", "L" + aTileEntity + ";", null, l41, l45, 6); - mv.visitLocalVariable("mainTile", "L" + aTileEntity + ";", null, l44, l42, 7); - mv.visitLocalVariable("liquidInTank", "Lnet/minecraftforge/fluids/FluidStack;", null, l51, l2, 4); - mv.visitLocalVariable("aFuelType", "Lnet/minecraftforge/fluids/Fluid;", null, l56, l54, 5); - mv.visitLocalVariable("aTier", "I", null, l62, l2, 5); - mv.visitMaxs(5, 9); - mv.visitEnd(); - } - } - - public static final class localClassVisitor extends ClassVisitor { - - public localClassVisitor(ClassVisitor cv) { - super(ASM5, cv); - FMLRelaunchLog - .log("[GT++ ASM] Galacticraft Fuel_Loader Patch", Level.INFO, "Inspecting Class " + className); - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - if (name.equals("updateEntity")) { - FMLRelaunchLog.log("[GT++ ASM] Galacticraft Fuel_Loader Patch", Level.INFO, "Removing method " + name); - return null; - } - - MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions); - return methodVisitor; - } - } -} diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java index 35ba0a6d46..405a804329 100644 --- a/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java +++ b/src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java @@ -3,9 +3,6 @@ package gtPlusPlus.preloader.asm.transformers; import static gtPlusPlus.preloader.asm.ClassesToTransform.COFH_ORE_DICTIONARY_ARBITER; import static gtPlusPlus.preloader.asm.ClassesToTransform.FORGE_CHUNK_MANAGER; import static gtPlusPlus.preloader.asm.ClassesToTransform.FORGE_ORE_DICTIONARY; -import static gtPlusPlus.preloader.asm.ClassesToTransform.GALACTICRAFT_ENTITY_AUTO_ROCKET; -import static gtPlusPlus.preloader.asm.ClassesToTransform.GALACTICRAFT_FLUID_UTILS; -import static gtPlusPlus.preloader.asm.ClassesToTransform.GALACTICRAFT_TILE_ENTITY_FUEL_LOADER; import static gtPlusPlus.preloader.asm.ClassesToTransform.IC2_BLOCK_BASE_TILE_ENTITY; import static gtPlusPlus.preloader.asm.ClassesToTransform.IC2_BLOCK_CHARGEPAD; import static gtPlusPlus.preloader.asm.ClassesToTransform.IC2_BLOCK_ELECTRIC; @@ -139,22 +136,6 @@ public class Preloader_Transformer_Handler implements IClassTransformer { return new ClassTransformer_COFH_OreDictionaryArbiter(basicClass).getWriter().toByteArray(); } - // Fix GC stuff - if (AsmConfig.enableGcFuelChanges) { - if (transformedName.equals(GALACTICRAFT_FLUID_UTILS)) { - Preloader_Logger.INFO("Galacticraft FluidUtils Patch", "Transforming " + transformedName); - return new ClassTransformer_GC_FluidUtil(basicClass, false).getWriter().toByteArray(); - } - if (transformedName.equals(GALACTICRAFT_TILE_ENTITY_FUEL_LOADER)) { - Preloader_Logger.INFO("Galacticraft Fuel_Loader Patch", "Transforming " + transformedName); - return new ClassTransformer_GC_FuelLoader(basicClass, false).getWriter().toByteArray(); - } - if (transformedName.equals(GALACTICRAFT_ENTITY_AUTO_ROCKET)) { - Preloader_Logger.INFO("Galacticraft EntityAutoRocket Patch", "Transforming " + transformedName); - return new ClassTransformer_GC_EntityAutoRocket(basicClass, false).getWriter().toByteArray(); - } - } - // Fix IC2 Wrench Harvesting for (String y : IC2_WRENCH_PATCH_CLASS_NAMES) { if (transformedName.equals(y)) { diff --git a/src/main/java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java b/src/main/java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java deleted file mode 100644 index 8d3a79c74b..0000000000 --- a/src/main/java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java +++ /dev/null @@ -1,87 +0,0 @@ -package gtPlusPlus.xmod.galacticraft.handler; - -import static gregtech.api.enums.Mods.GalacticraftCore; - -import java.lang.reflect.Field; -import java.util.HashMap; -import java.util.LinkedHashMap; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraftforge.event.entity.player.ItemTooltipEvent; -import net.minecraftforge.fluids.Fluid; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import gtPlusPlus.core.item.chemistry.RocketFuels; -import gtPlusPlus.core.util.reflect.ReflectionUtils; -import gtPlusPlus.preloader.asm.AsmConfig; - -public class HandlerTooltip_GC { - - private static Item mItemBlock; - private static Block mBlock; - private static Class<?> oMainClass; - private static Class<?> oFuelLoaderClass; - private static HashMap<Integer, String> mFuelNames; - - static { - mFuelNames = new LinkedHashMap<Integer, String>(); - } - - @SubscribeEvent - public void onItemTooltip(ItemTooltipEvent event) { - if (GalacticraftCore.isModLoaded() && AsmConfig.enableGcFuelChanges) { - - if (mBlock == null) { - try { - Class<?> GCBlocks = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.blocks.GCBlocks"); - if (GCBlocks != null) { - oMainClass = GCBlocks; - - Class<?> GCFuelLoader = ReflectionUtils - .getClass("micdoodle8.mods.galacticraft.core.blocks.BlockFuelLoader"); - - if (GCFuelLoader != null) { - oFuelLoaderClass = GCFuelLoader; - } - - Field aField = ReflectionUtils.getField(oMainClass, "fuelLoader"); - if (aField != null) { - Block aBlock = (Block) aField.get(null); - if (aBlock != null) { - mBlock = aBlock; - mItemBlock = Item.getItemFromBlock(mBlock); - } - } - } - } catch (Throwable t) {} - } - if (mFuelNames == null) { - mFuelNames = new LinkedHashMap<Integer, String>(); - } - - if (mFuelNames.isEmpty()) { - for (int aMapKey : RocketFuels.mValidRocketFuels.keySet()) { - Fluid aFuel = RocketFuels.mValidRocketFuels.get(aMapKey); - if (aFuel != null) { - // noinspection deprecation - mFuelNames.put(aMapKey, aFuel.getLocalizedName()); - } - } - } - if (mItemBlock != null && !mFuelNames.isEmpty()) { - Item aTempItem = event.itemStack.getItem(); - Block aTempBlock = Block.getBlockFromItem(aTempItem); - if (aTempItem == mItemBlock || oFuelLoaderClass.isInstance(aTempBlock) - || event.itemStack.getUnlocalizedName().toLowerCase().contains("fuelloader")) { - for (int aMapKey : mFuelNames.keySet()) { - String aFuel = mFuelNames.get(aMapKey); - if (aFuel != null) { - event.toolTip.add("Tier " + (aMapKey + 1) + ": " + aFuel); - } - } - } - } - } - } -} |