diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-10-25 23:57:04 +0100 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-10-25 23:57:04 +0100 |
commit | 7e09b5381593a23aeff0a0bab03926a8c1e2b87d (patch) | |
tree | c815e6de403ede869dde352c9d62eddab73b8551 /src/Java/gtPlusPlus/preloader | |
parent | e617124ba171bdf0a5aa8165c63715634de3f3c3 (diff) | |
download | GT5-Unofficial-7e09b5381593a23aeff0a0bab03926a8c1e2b87d.tar.gz GT5-Unofficial-7e09b5381593a23aeff0a0bab03926a8c1e2b87d.tar.bz2 GT5-Unofficial-7e09b5381593a23aeff0a0bab03926a8c1e2b87d.zip |
+ Added 'DebugChunks' function.
+ Added ASM Config.
Diffstat (limited to 'src/Java/gtPlusPlus/preloader')
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(); } |