aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/preloader/asm
diff options
context:
space:
mode:
authorDennis <47501679+Denostrov@users.noreply.github.com>2023-06-05 00:07:49 +0300
committerGitHub <noreply@github.com>2023-06-04 23:07:49 +0200
commitcf50206d38abcc4136d9f200c5870bf7a58b941e (patch)
tree06c02d747c4ab8da963b5523f748f8adb1f8c711 /src/main/java/gtPlusPlus/preloader/asm
parentb093eda18787f29ec1aeba2e0b67b5b4bbafea98 (diff)
downloadGT5-Unofficial-cf50206d38abcc4136d9f200c5870bf7a58b941e.tar.gz
GT5-Unofficial-cf50206d38abcc4136d9f200c5870bf7a58b941e.tar.bz2
GT5-Unofficial-cf50206d38abcc4136d9f200c5870bf7a58b941e.zip
fix lag by disabling asm that messed with tinkers fluid lighting (#654)
* disable asm that messed with tinkers fluid lighting * remove unused config and asm file
Diffstat (limited to 'src/main/java/gtPlusPlus/preloader/asm')
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java8
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java177
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java7
3 files changed, 0 insertions, 192 deletions
diff --git a/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
index 42f9c40f39..53aadc1967 100644
--- a/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
+++ b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
@@ -17,7 +17,6 @@ public class AsmConfig {
public static Configuration config;
public static boolean enableOreDictPatch;
- public static boolean enableTiConFluidLighting;
public static boolean enableGtTooltipFix;
public static boolean enableGtNbtFix;
public static boolean enableGtCharcoalPitFix;
@@ -100,12 +99,6 @@ public class AsmConfig {
propOrderDebug.add(prop.getName());
// General Features
- prop = config.get("general", "enableTiConFluidLighting", true);
- prop.comment = "Enable/Disable Brightness Visuals for Tinkers Fluids, only required on the Client.";
- prop.setLanguageKey("gtpp.enableTiConFluidLighting").setRequiresMcRestart(true);
- enableTiConFluidLighting = prop.getBoolean(true);
- propOrder.add(prop.getName());
-
prop = config.get("general", "enabledLwjglKeybindingFix", true);
prop.comment = "Prevents the game crashing from having invalid keybinds. https://github.com/alkcorp/GTplusplus/issues/544";
prop.setLanguageKey("gtpp.enabledLwjglKeybindingFix").setRequiresMcRestart(true);
@@ -147,7 +140,6 @@ public class AsmConfig {
Preloader_Logger.INFO("Chunk Debugging - Enabled: " + enableChunkDebugging);
Preloader_Logger.INFO("Gt Nbt Fix - Enabled: " + enableGtNbtFix);
- Preloader_Logger.INFO("TiCon Fluid Lighting - Enabled: " + enableTiConFluidLighting);
Preloader_Logger.INFO("Gt Tooltip Fix - Enabled: " + enableGtTooltipFix);
Preloader_Logger.INFO("COFH Patch - Enabled: " + enableCofhPatch);
Preloader_Logger.INFO("Gc Fuel Changes Patch - Enabled: " + enableGcFuelChanges);
diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java
deleted file mode 100644
index 4392802ba3..0000000000
--- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TiConFluids.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package gtPlusPlus.preloader.asm.transformers;
-
-import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
-import static org.objectweb.asm.Opcodes.ALOAD;
-import static org.objectweb.asm.Opcodes.ASM5;
-import static org.objectweb.asm.Opcodes.F_APPEND;
-import static org.objectweb.asm.Opcodes.GETFIELD;
-import static org.objectweb.asm.Opcodes.IFLE;
-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.IRETURN;
-import static org.objectweb.asm.Opcodes.ISTORE;
-
-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_TiConFluids {
-
- // Leftover Code, in case I ever want to inject interfaces.
- // private static final String cloneableInterface = "java/lang/Cloneable";
-
- // The qualified name of the class we plan to transform.
- private static final String className = "tconstruct.smeltery.blocks.TConstructFluid";
-
- private final boolean isValid;
- private final boolean isObfuscated;
- private final String methodName;
- private final ClassReader reader;
- private final ClassWriter writer;
-
- public ClassTransformer_TiConFluids(String aMethodName, boolean obfuscated, byte[] basicClass) {
- isObfuscated = obfuscated;
-
- methodName = obfuscated ? DevHelper.getSRG(aMethodName) : aMethodName;
-
- ClassReader aTempReader = null;
- ClassWriter aTempWriter = null;
-
- aTempReader = new ClassReader(basicClass);
- aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
- aTempReader.accept(new localClassVisitir(aTempWriter, isObfuscated), 0);
-
- if (aTempReader != null && aTempWriter != null) {
- isValid = true;
- } else {
- isValid = false;
- }
- reader = aTempReader;
- writer = aTempWriter;
-
- if (reader != null && writer != null) {
- injectMethod();
- }
- }
-
- public boolean isValidTransformer() {
- return isValid;
- }
-
- public ClassReader getReader() {
- return reader;
- }
-
- public ClassWriter getWriter() {
- return writer;
- }
-
- public void injectMethod() {
- if (isValidTransformer()) {
- FMLRelaunchLog.log(
- "[GT++ ASM] Bright Fluids",
- Level.INFO,
- "Injecting " + methodName
- + " into "
- + className
- + ". ["
- + (isObfuscated ? "Obfuscated" : "Unobfuscated")
- + "]");
- // Account for Obfuscated constructor args.
- String IBlockAccessName = isObfuscated ? "ahl" : "net/minecraft/world/IBlockAccess";
- String aConstructorTypes = "(L" + IBlockAccessName + ";III)I";
-
- MethodVisitor mv = getWriter().visitMethod(ACC_PUBLIC, methodName, aConstructorTypes, null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(17, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitFieldInsn(GETFIELD, "tconstruct/smeltery/blocks/TConstructFluid", "maxScaledLight", "I");
- mv.visitVarInsn(ISTORE, 5);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLineNumber(18, l1);
- mv.visitVarInsn(ILOAD, 5);
- Label l2 = new Label();
- mv.visitJumpInsn(IFLE, l2);
- Label l3 = new Label();
- mv.visitLabel(l3);
- mv.visitLineNumber(19, l3);
- mv.visitVarInsn(ILOAD, 5);
- mv.visitInsn(IRETURN);
- mv.visitLabel(l2);
- mv.visitLineNumber(21, l2);
- mv.visitFrame(F_APPEND, 1, new Object[] { INTEGER }, 0, null);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(ALOAD, 1);
- mv.visitVarInsn(ILOAD, 2);
- mv.visitVarInsn(ILOAD, 3);
- mv.visitVarInsn(ILOAD, 4);
- // net.minecraftforge.fluids.BlockFluidClassic.getLightValue(IBlockAccess, int, int, int)
- mv.visitMethodInsn(
- INVOKESPECIAL,
- "net/minecraftforge/fluids/BlockFluidClassic",
- methodName,
- aConstructorTypes,
- false);
- mv.visitInsn(IRETURN);
- Label l4 = new Label();
- mv.visitLabel(l4);
- mv.visitLocalVariable("this", "Ltconstruct/smeltery/blocks/TConstructFluid;", null, l0, l4, 0);
- mv.visitLocalVariable("world", "L" + IBlockAccessName + ";", null, l0, l4, 1);
- mv.visitLocalVariable("x", "I", null, l0, l4, 2);
- mv.visitLocalVariable("y", "I", null, l0, l4, 3);
- mv.visitLocalVariable("z", "I", null, l0, l4, 4);
- mv.visitLocalVariable("maxLight", "I", null, l1, l4, 5);
- mv.visitMaxs(5, 6);
- mv.visitEnd();
- FMLRelaunchLog.log("[GT++ ASM] Bright Fluids", Level.INFO, "Method injection complete.");
- }
- }
-
- public final class localClassVisitir extends ClassVisitor {
-
- private final boolean mIsObfuscated;
-
- public localClassVisitir(ClassVisitor cv, boolean obfuscated) {
- super(ASM5, cv);
- mIsObfuscated = obfuscated;
- }
-
- @Override
- public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
- String IBlockAccessName = isObfuscated ? "ahl" : "net/minecraft/world/IBlockAccess";
- String aConstructorTypes = "(L" + IBlockAccessName + ";III)I";
- MethodVisitor methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
- if (name.equals(methodName) && desc.equals(aConstructorTypes)) {
- FMLRelaunchLog.log(
- "[GT++ ASM] OreDictTransformer",
- Level.INFO,
- "Found target method. [" + mIsObfuscated + "]");
- return new localMethodVisitor(methodVisitor, mIsObfuscated);
- }
- return methodVisitor;
- }
- }
-
- private final class localMethodVisitor extends MethodVisitor {
-
- private final boolean mObfuscated;
-
- public localMethodVisitor(MethodVisitor mv, boolean obfuscated) {
- super(ASM5, mv);
- this.mObfuscated = obfuscated;
- }
-
- @Override
- public void visitCode() {}
- }
-}
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 d3631a7599..35ba0a6d46 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
@@ -26,7 +26,6 @@ import static gtPlusPlus.preloader.asm.ClassesToTransform.LWJGL_KEYBOARD;
import static gtPlusPlus.preloader.asm.ClassesToTransform.MINECRAFT_GAMESETTINGS;
import static gtPlusPlus.preloader.asm.ClassesToTransform.MINECRAFT_GAMESETTINGS_OBF;
import static gtPlusPlus.preloader.asm.ClassesToTransform.THAUMCRAFT_ITEM_WISP_ESSENCE;
-import static gtPlusPlus.preloader.asm.ClassesToTransform.TINKERS_FLUID_BLOCK;
import java.io.File;
import java.io.IOException;
@@ -140,12 +139,6 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
return new ClassTransformer_COFH_OreDictionaryArbiter(basicClass).getWriter().toByteArray();
}
- // Fix Tinkers Fluids
- if (transformedName.equals(TINKERS_FLUID_BLOCK) && AsmConfig.enableTiConFluidLighting) {
- Preloader_Logger.INFO("Bright Fluids", "Transforming " + transformedName);
- return new ClassTransformer_TiConFluids("getLightValue", obfuscated, basicClass).getWriter().toByteArray();
- }
-
// Fix GC stuff
if (AsmConfig.enableGcFuelChanges) {
if (transformedName.equals(GALACTICRAFT_FLUID_UTILS)) {