aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/preloader
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/preloader')
-rw-r--r--src/Java/gtPlusPlus/preloader/ChunkDebugger.java8
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/AsmConfig.java83
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java17
3 files changed, 102 insertions, 6 deletions
diff --git a/src/Java/gtPlusPlus/preloader/ChunkDebugger.java b/src/Java/gtPlusPlus/preloader/ChunkDebugger.java
index 565617a4aa..06964d31fa 100644
--- a/src/Java/gtPlusPlus/preloader/ChunkDebugger.java
+++ b/src/Java/gtPlusPlus/preloader/ChunkDebugger.java
@@ -27,7 +27,11 @@ public class ChunkDebugger {
public static void removeTicketFromCache(Ticket aTicket) {
Pair<String, String> aPair = mChunkTicketsMap.get(aTicket.hashCode());
- Logger.REFLECTION("Ticket released by "+aTicket.getModId()+" for dimension "+aPair.getValue());
+ String aKey = aPair.getKey();
+ if (aKey == null) {
+ aKey = "Invalid ModId";
+ }
+ Logger.REFLECTION("Ticket released by "+aKey+" for dimension "+aTicket.world.provider.dimensionId);
mChunkTicketsMap.remove(aTicket.hashCode());
}
@@ -42,7 +46,7 @@ public class ChunkDebugger {
String aKey = aPair.getKey();
String aValue = aPair.getValue();
if (aKey != null && aValue != null) {
- Logger.REFLECTION("Chunk Loaded by "+aKey+" at position "+aChunk.toString()+" for dimension "+aValue);
+ Logger.REFLECTION("Chunk Unloaded by "+aKey+" at position "+aChunk.toString()+"");
}
mChunksLoadedByModsMap.remove(aChunk.toString());
}
diff --git a/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java
new file mode 100644
index 0000000000..81ebbd1309
--- /dev/null
+++ b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java
@@ -0,0 +1,83 @@
+package gtPlusPlus.preloader.asm;
+
+import cpw.mods.fml.common.FMLLog;
+import java.io.File;
+import java.util.ArrayList;
+import net.minecraftforge.common.config.Configuration;
+import net.minecraftforge.common.config.Property;
+import org.apache.logging.log4j.Level;
+
+public class AsmConfig {
+
+ public static boolean loaded;
+ public static Configuration config;
+
+ public static boolean enableTiConFluidLighting;
+ public static boolean enableGtTooltipFix;
+ public static boolean enableGtNbtFix;
+ public static boolean enableChunkDebugging;
+
+ public AsmConfig(File file) {
+ if (!loaded) {
+ config = new Configuration(file);
+ syncConfig(true);
+ }
+
+ }
+
+ public static void syncConfig(boolean load) {
+ ArrayList<String> propOrder = new ArrayList<String>();
+ ArrayList<String> propOrderDebug = new ArrayList<String>();
+
+ try {
+ if (!config.isChild && load) {
+ config.load();
+ }
+
+ Property prop;
+
+ //Debug
+ prop = config.get("debug", "enableChunkDebugging", false);
+ prop.comment = "Enable/Disable Chunk Debugging Features, Must Be enabled on Client and Server.";
+ prop.setLanguageKey("gtpp.enableChunkDebugging").setRequiresMcRestart(true);
+ enableChunkDebugging = prop.getBoolean(true);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enableGtNbtFix", true);
+ prop.comment = "Enable/Disable GT NBT Persistency Fix";
+ prop.setLanguageKey("gtpp.enableGtNbtFix").setRequiresMcRestart(true);
+ enableGtNbtFix = prop.getBoolean(true);
+ 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", "enableGtTooltipFix", true);
+ prop.comment = "Enable/Disable Custom GT Tooltips";
+ prop.setLanguageKey("gtpp.enableGtTooltipFix").setRequiresMcRestart(true);
+ enableGtTooltipFix = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+
+ config.setCategoryPropertyOrder("general", propOrder);
+ config.setCategoryPropertyOrder("debug", propOrderDebug);
+ if (config.hasChanged()) {
+ config.save();
+ }
+
+ System.out.println("[GT++ ASM] Chunk Debugging - Enabled: "+enableChunkDebugging);
+ System.out.println("[GT++ ASM] Gt Nbt Fix - Enabled: "+enableGtNbtFix);
+ System.out.println("[GT++ ASM] TiCon Fluid Lighting - Enabled: "+enableTiConFluidLighting);
+ System.out.println("[GT++ ASM] Gt Tooltip Fix - Enabled: "+enableGtTooltipFix);
+
+ } catch (Exception var3) {
+ FMLLog.log(Level.ERROR, var3, "GT++ ASM has a problem loading it's config", new Object[0]);
+ }
+
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
index 1400d0d49b..6954e286ae 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
@@ -1,5 +1,6 @@
package gtPlusPlus.preloader.asm.transformers;
+import java.io.File;
import java.io.IOException;
import org.apache.logging.log4j.Level;
import org.objectweb.asm.ClassReader;
@@ -8,13 +9,21 @@ import org.objectweb.asm.ClassWriter;
import cpw.mods.fml.relauncher.CoreModManager;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
import cpw.mods.fml.relauncher.ReflectionHelper;
+import galaxyspace.SolarSystem.core.configs.GSConfigDimensions;
import net.minecraft.launchwrapper.IClassTransformer;
import net.minecraft.launchwrapper.Launch;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.preloader.asm.AsmConfig;
import gtPlusPlus.preloader.asm.transformers.Preloader_ClassTransformer.OreDictionaryVisitor;
public class Preloader_Transformer_Handler implements IClassTransformer {
private final boolean mEnabled = false;
+ public static final AsmConfig mConfig;
+ static {
+ mConfig = new AsmConfig(new File("config/GTplusplus/asm.cfg"));
+ System.out.println("Asm Config Location: "+mConfig.config.getConfigFile().getAbsolutePath());
+ }
public byte[] transform(String name, String transformedName, byte[] basicClass) {
@@ -40,7 +49,7 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
}
//Enable mapping of Tickets and loaded chunks. - Forge
- if (transformedName.equals("net.minecraftforge.common.ForgeChunkManager")) {
+ if (transformedName.equals("net.minecraftforge.common.ForgeChunkManager") && mConfig.enableChunkDebugging) {
FMLRelaunchLog.log("[GT++ ASM] Chunkloading Patch", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_Forge_ChunkLoading(basicClass, obfuscated).getWriter().toByteArray();
}
@@ -59,7 +68,7 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
}
// Fix Tinkers Fluids
- if (transformedName.equals("tconstruct.smeltery.blocks.TConstructFluid")) {
+ if (transformedName.equals("tconstruct.smeltery.blocks.TConstructFluid") && mConfig.enableTiConFluidLighting) {
FMLRelaunchLog.log("[GT++ ASM] Bright Fluids", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_TiConFluids("getLightValue", obfuscated, basicClass).getWriter().toByteArray();
}
@@ -79,12 +88,12 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
}
//Fix GT NBT Persistency issue
- if (transformedName.equals("gregtech.common.blocks.GT_Block_Machines")) {
+ if (transformedName.equals("gregtech.common.blocks.GT_Block_Machines") && mConfig.enableGtNbtFix) {
FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_GT_BlockMachines_NBT(basicClass, obfuscated).getWriter().toByteArray();
}
//Patching Meta Tile Tooltips
- if (transformedName.equals("gregtech.common.blocks.GT_Item_Machines")) {
+ if (transformedName.equals("gregtech.common.blocks.GT_Item_Machines") && mConfig.enableGtTooltipFix) {
FMLRelaunchLog.log("[GT++ ASM] Gregtech Tooltip Patch", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_GT_ItemMachines_Tooltip(basicClass, obfuscated).getWriter().toByteArray();
}