aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java')
-rw-r--r--src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java211
1 files changed, 211 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
new file mode 100644
index 0000000000..a5981b15d9
--- /dev/null
+++ b/src/main/java/gtPlusPlus/preloader/asm/AsmConfig.java
@@ -0,0 +1,211 @@
+package gtPlusPlus.preloader.asm;
+
+import cpw.mods.fml.common.FMLLog;
+import gtPlusPlus.preloader.Preloader_Logger;
+
+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 enableOreDictPatch;
+ public static boolean enableTiConFluidLighting;
+ public static boolean enableGtTooltipFix;
+ public static boolean enableGtNbtFix;
+ public static boolean enableGtCharcoalPitFix;
+ public static boolean enableChunkDebugging;
+ public static boolean enableCofhPatch;
+ public static boolean enableGcFuelChanges;
+ public static boolean enableRcFlowFix;
+ public static int maxRailcraftTankProcessVolume;
+ public static int maxRailcraftFluidLoaderFlow;
+ public static int maxRailcraftFluidUnloaderFlow;
+ public static boolean enableRcItemDupeFix;
+ public static boolean enableTcAspectSafety;
+ public static boolean enabledLwjglKeybindingFix;
+ public static boolean enabledFixEntitySetHealth;
+ public static boolean enableThaumicTinkererRepairFix;
+
+ public static boolean disableAllLogging;
+ public static boolean debugMode;
+
+ 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", "disableAllLogging", false);
+ prop.comment = "Disables ALL logging from GT++.";
+ prop.setLanguageKey("gtpp.disableAllLogging").setRequiresMcRestart(false);
+ disableAllLogging = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "debugMode", false);
+ prop.comment = "Enables all sorts of debug logging. (Don't use unless told to, breaks other things.)";
+ prop.setLanguageKey("gtpp.debugMode").setRequiresMcRestart(false);
+ debugMode = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enabledFixEntitySetHealth", false);
+ prop.comment = "Enable/Disable entity setHealth() fix.";
+ prop.setLanguageKey("gtpp.enabledFixEntitySetHealth").setRequiresMcRestart(true);
+ enabledFixEntitySetHealth = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ 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(false);
+ 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());
+
+ prop = config.get("debug", "enableCofhPatch", false);
+ prop.comment = "Enable/Disable COFH OreDictionaryArbiter Patch (Useful for Development)";
+ prop.setLanguageKey("gtpp.enableCofhPatch").setRequiresMcRestart(true);
+ enableCofhPatch = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enableOreDictPatch", false);
+ prop.comment = "Enable/Disable Forge OreDictionary Patch (Useful for Development)";
+ prop.setLanguageKey("gtpp.enableOreDictPatch").setRequiresMcRestart(true);
+ enableOreDictPatch = prop.getBoolean(false);
+ propOrderDebug.add(prop.getName());
+
+ prop = config.get("debug", "enableThaumicTinkererRepairFix", false);
+ prop.comment = "Enable/Disable Patch for Thaumic Repairer";
+ prop.setLanguageKey("gtpp.enableThaumicTinkererRepairFix").setRequiresMcRestart(true);
+ enableThaumicTinkererRepairFix = prop.getBoolean(false);
+ 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);
+ enabledLwjglKeybindingFix = 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());
+
+
+
+ prop = config.get("general", "enableGtCharcoalPitFix", true);
+ prop.comment = "Makes the Charcoal Pile Igniter work better.";
+ prop.setLanguageKey("gtpp.enableGtCharcoalPitFix").setRequiresMcRestart(true);
+ 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());
+
+
+ //Railcraft Tank fix
+ prop = config.get("general", "enableRcFlowFix", true);
+ prop.comment = "Allows Custom max IO rates on RC tanks";
+ prop.setLanguageKey("gtpp.enableRcFlowFix").setRequiresMcRestart(true);
+ enableRcFlowFix = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+ prop = config.get("general", "maxRailcraftTankProcessVolume", 4000);
+ prop.comment = "Max IO for RC fluid tanks (Not Carts). 'enableRcFlowFix' Must be enabled.";
+ prop.setLanguageKey("gtpp.maxRailcraftTankProcessVolume").setRequiresMcRestart(true);
+ maxRailcraftTankProcessVolume = prop.getInt(4000);
+ propOrder.add(prop.getName());
+
+ // Railcraft Loader Max flowrate
+ prop = config.get("general", "maxRailcraftFluidLoaderFlow", 20);
+ prop.comment = "Max Output rate for RC Fluid Loaders";
+ prop.setLanguageKey("gtpp.maxRailcraftFluidLoaderFlow").setRequiresMcRestart(true);
+ maxRailcraftFluidLoaderFlow = prop.getInt(20);
+ propOrder.add(prop.getName());
+
+ // Railcraft Unloader Max flowrate
+ prop = config.get("general", "maxRailcraftFluidUnloaderFlow", 80);
+ prop.comment = "Max Output rate for RC Fluid Unloaders";
+ prop.setLanguageKey("gtpp.maxRailcraftFluidUnloaderFlow").setRequiresMcRestart(true);
+ maxRailcraftFluidUnloaderFlow = prop.getInt(80);
+ propOrder.add(prop.getName());
+
+ //Railcraft Dupe Fix
+ prop = config.get("general", "enableRcItemDupeFix", true);
+ prop.comment = "Fixes possible negative itemstacks";
+ prop.setLanguageKey("gtpp.enableRcItemDupeFix").setRequiresMcRestart(true);
+ enableRcItemDupeFix = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+
+ //TC Aspect Safety
+ prop = config.get("general", "enableTcAspectSafety", true);
+ prop.comment = "Fixes small oversights in Thaumcraft 4.";
+ prop.setLanguageKey("gtpp.enableTcAspectSafety").setRequiresMcRestart(true);
+ enableTcAspectSafety = prop.getBoolean(true);
+ propOrder.add(prop.getName());
+
+
+ config.setCategoryPropertyOrder("general", propOrder);
+ config.setCategoryPropertyOrder("debug", propOrderDebug);
+ if (config.hasChanged()) {
+ config.save();
+ }
+
+ 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);
+ Preloader_Logger.INFO("Railcraft Fluid Flow Patch - Enabled: "+enableRcFlowFix);
+ Preloader_Logger.INFO("Thaumcraft Aspect Safety Patch - Enabled: "+enableTcAspectSafety);
+ Preloader_Logger.INFO("Fix bad usage of EntityLivingBase.setHealth Patch - Enabled: "+enabledFixEntitySetHealth);
+
+ } catch (Exception var3) {
+ FMLLog.log(Level.ERROR, var3, "GT++ ASM had a problem loading it's config", new Object[0]);
+ }
+
+ }
+} \ No newline at end of file