aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/GTplusplus.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/GTplusplus.java')
-rw-r--r--src/Java/gtPlusPlus/GTplusplus.java203
1 files changed, 18 insertions, 185 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java
index c3d2242e30..21185910a4 100644
--- a/src/Java/gtPlusPlus/GTplusplus.java
+++ b/src/Java/gtPlusPlus/GTplusplus.java
@@ -1,17 +1,11 @@
package gtPlusPlus;
import static gtPlusPlus.core.lib.CORE.DEBUG;
-import static gtPlusPlus.core.lib.CORE.configSwitches.*;
-import static gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_WorldAccelerator.BlacklistedTileEntiyClassNames;
+import static gtPlusPlus.core.lib.CORE.ConfigSwitches.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.io.File;
-import java.lang.reflect.Field;
import java.util.Collection;
-import java.util.HashSet;
-
-import org.apache.commons.lang3.reflect.FieldUtils;
import cpw.mods.fml.common.*;
import cpw.mods.fml.common.Mod.EventHandler;
@@ -19,196 +13,45 @@ import cpw.mods.fml.common.event.*;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.util.EmptyRecipeMap;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.Recipe_GT.Gregtech_Recipe_Map;
+import gtPlusPlus.api.analytics.SegmentAnalytics;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.commands.CommandMath;
import gtPlusPlus.core.common.CommonProxy;
+import gtPlusPlus.core.config.ConfigHandler;
import gtPlusPlus.core.handler.BookHandler;
import gtPlusPlus.core.handler.Recipes.RegistrationHandler;
import gtPlusPlus.core.handler.events.BlockEventHandler;
import gtPlusPlus.core.handler.events.LoginEventHandler;
-import gtPlusPlus.core.item.general.RF2EU_Battery;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.lib.CORE.configSwitches;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.geo.GeoUtils;
import gtPlusPlus.core.util.item.ItemUtils;
import gtPlusPlus.core.util.networking.NetworkUtils;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools;
import net.minecraft.item.Item;
import net.minecraft.launchwrapper.Launch;
-import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.oredict.OreDictionary;
@MCVersion(value = "1.7.10")
@Mod(modid = CORE.MODID, name = CORE.name, version = CORE.VERSION, dependencies = "required-after:Forge; after:PlayerAPI; after:dreamcraft; after:IC2; after:ihl; after:psychedelicraft; after:gregtech; after:Forestry; after:MagicBees; after:CoFHCore; after:Growthcraft; after:Railcraft; after:CompactWindmills; after:ForbiddenMagic; after:MorePlanet; after:PneumaticCraft; after:ExtraUtilities; after:Thaumcraft; after:rftools; after:simplyjetpacks; after:BigReactors; after:EnderIO;")
public class GTplusplus implements ActionListener {
+ //Mod Instance
@Mod.Instance(CORE.MODID)
public static GTplusplus instance;
+ //GT_Proxy instance
protected static Meta_GT_Proxy gregtechproxy;
+ //GT++ Proxy Instances
@SidedProxy(clientSide = "gtPlusPlus.core.proxy.ClientProxy", serverSide = "gtPlusPlus.core.proxy.ServerProxy")
public static CommonProxy proxy;
- public static void handleConfigFile(final FMLPreInitializationEvent event) {
- final Configuration config = new Configuration(
- new File(event.getModConfigurationDirectory(), "GTplusplus/GTplusplus.cfg"));
- config.load();
-
- configSwitches.enableUpdateChecker = config.getBoolean("enableUpdateChecker", "debug", true,
- "Stops mod checking for updates.");
-
- // Debug
- DEBUG = config.getBoolean("debugMode", "debug", false,
- "Enables all sorts of debug logging. (Don't use unless told to, breaks other things.)");
- disableEnderIOIntegration = config.getBoolean("disableEnderIO", "debug", false,
- "Disables EnderIO Integration.");
- MACHINE_INFO = config.getBoolean("enableMachineInfoLogging", "debug", false,
- "Makes many machines display lots of debug logging.");
- showHiddenNEIItems = config.getBoolean("showHiddenNEIItems", "debug", false,
- "Makes all items hidden from NEI display.");
-
-
- // Machines
- enableThaumcraftShardUnification = config.getBoolean("enableThaumcraftShardUnification", "machines", false,
- "Allows the use of TC shards across many recipes by oreDicting them into a common group.");
- enableAlternativeBatteryAlloy = config.getBoolean("enableAlternativeBatteryAlloy", "machines", false,
- "Adds a non-Antimony using Battery Alloy. Not Balanced at all..");
- disableIC2Recipes = config.getBoolean("disableIC2Recipes", "machines", false,
- "Alkaluscraft Related - Removes IC2 Cables Except glass fibre. Few other Misc Tweaks.");
- enableAlternativeDivisionSigilRecipe = config.getBoolean("enableAlternativeDivisionSigilRecipe", "machines",
- false, "Utilizes Neutronium instead.");
-
- //Circuits
- enableCustomCircuits = config.getBoolean("enableCustomCircuits", "gregtech", true,
- "Adds custom circuits to expand past the Master Tier.");
- enableOldGTcircuits = config.getBoolean("enableOldGTcircuits", "gregtech", false,
- "Restores circuits and their recipes from Pre-5.09.28 times.");
-
- // Tools
- enableSkookumChoochers = config.getBoolean("enableSkookumChoochers", "gregtech", true,
- "Adds Custom GT Tools, called Skookum Choochers, functioning as a hard hammer and a wrench.");
- enableMultiSizeTools = config.getBoolean("enableMultiSizeTools", "gregtech", true,
- "Adds Custom GT Shovels and Pickaxes which mine in a 3x3 style. One of each whill be generated for each Gregtech Material which has Dense Plates and Long Rods available.");
-
- // GT-Fixes
- enableNitroFix = config.getBoolean("enableNitroFix", "gregtech", false,
- "Restores the old Nitro-Diesel recipes.");
-
- // Pipes & Cables
- enableCustom_Pipes = config.getBoolean("enableCustom_Pipes", "gregtech", true,
- "Adds Custom GT Fluid Pipes.");
- enableCustom_Cables = config.getBoolean("enableCustom_Cables", "gregtech", true,
- "Adds Custom GT Cables.");
-
- // Block Drops
- chanceToDropDrainedShard = config.getInt("chanceToDropDrainedShard", "blockdrops", 196, 0,
- 10000, "Drained shards have a 1 in X chance to drop.");
- chanceToDropFluoriteOre = config.getInt("chanceToDropFluoriteOre", "blockdrops", 32, 0,
- 10000, "Fluorite Ore has a 1 in X chance to drop from Limestone and a 1 in X*20 from Sandstone..");
-
- // Single machines
- enableMachine_SolarGenerators = config.getBoolean("enableSolarGenerators", "gregtech",
- false, "These may be overpowered, Consult a local electrician.");
- enableMachine_Safes = config.getBoolean("enableMachineSafes", "gregtech", true,
- "These protect your goodies/rare stuff.");
- enableMachine_Dehydrators = config.getBoolean("enableMachineDehydrators", "gregtech", true,
- "These dehydrate stuff.");
- enableMachine_SteamConverter = config.getBoolean("enableMachineSteamConverter", "gregtech",
- true, "Converts IC2 steam -> Railcraft steam.");
- enableMachine_FluidTanks = config.getBoolean("enableMachineFluidTanks", "gregtech", true,
- "Portable fluid tanks.");
- enableMachine_RocketEngines = config.getBoolean("enableMachineRocketEngines", "gregtech",
- true, "Diesel egines with different internals, they consume less fuel overall.");
- enableMachine_GeothermalEngines = config.getBoolean("enableMachineGeothermalEngines",
- "gregtech", true, "These may be overpowered, Consult a local geologist.");
- enableMachine_WorldAccelerators = config.getBoolean("enableMachineWorldAccelerators",
- "gregtech", true, "These allow boosting Block/TileEntity Tick times [OP].");
- enableMachine_Tesseracts = config.getBoolean("enableMachineTesseracts",
- "gregtech", true, "Tesseracts for wireless item/fluid movement.");
- enableMachine_SimpleWasher = config.getBoolean("enableMachineSimpleWasher",
- "gregtech", true, "Very basic automated cauldron for dust washing.");
- enableMachine_Pollution = config.getBoolean("enableMachinePollution",
- "gregtech", true, "Pollution Detector & Scrubbers.");
-
- // Multi machines
- enableMultiblock_AlloyBlastSmelter = config.getBoolean("enableMultiblockAlloyBlastSmelter",
- "gregtech", true,
- "Required to smelt most high tier materials from GT++. Also smelts everything else to molten metal.");
- enableMultiblock_IndustrialCentrifuge = config
- .getBoolean("enableMultiblockIndustrialCentrifuge", "gregtech", true, "Spin, Spin, Spiiiin.");
- enableMultiblock_IndustrialCokeOven = config.getBoolean(
- "enableMultiblockIndustrialCokeOven", "gregtech", true,
- "Pyro Oven Alternative, older, more realistic, better.");
- enableMultiblock_IndustrialElectrolyzer = config.getBoolean(
- "enableMultiblockIndustrialElectrolyzer", "gregtech", true,
- "Electrolyzes things with extra bling factor.");
- enableMultiblock_IndustrialMacerationStack = config.getBoolean(
- "enableMultiblockIndustrialMacerationStack", "gregtech", true,
- "A hyper efficient maceration tower, nets more bonus outputs.");
- enableMultiblock_IndustrialPlatePress = config.getBoolean(
- "enableMultiblockIndustrialPlatePress", "gregtech", true, "Industrial bendering machine thingo.");
- enableMultiblock_IndustrialWireMill = config.getBoolean(
- "enableMultiblockIndustrialWireMill", "gregtech", true, "Produces fine wire and exotic cables.");
- enableMultiblock_IronBlastFurnace = config.getBoolean("enableMultiblockIronBlastFurnace",
- "gregtech", true, "Skip the Bronze age, very slowly.");
- enableMultiblock_MatterFabricator = config.getBoolean("enableMultiblockMatterFabricator",
- "gregtech", true, "?FAB?RIC?ATE MA?TT?ER.");
- enableMultiblock_MultiTank = config.getBoolean("enableMultiblockMultiTank", "gregtech",
- true, "Tall tanks, each layer adds extra fluid storage.");
- enableMultiblock_PowerSubstation = config.getBoolean("enableMultiblockPowerSubstation",
- "gregtech", true, "For managing large power grids.");
- enableMultiblock_LiquidFluorideThoriumReactor = config.getBoolean(
- "enableMultiblockLiquidFluorideThoriumReactor", "gregtech", true, "For supplying large power grids.");
- enableMultiblock_NuclearFuelRefinery = config.getBoolean(
- "enableMultiblock_NuclearFuelRefinery", "gregtech", true,
- "Refines molten chemicals into nuclear fuels.");
- enableMultiblock_IndustrialSifter = config.getBoolean("enableMultiblock_IndustrialSifter",
- "gregtech", true, "Large scale sifting.");
- enableMultiblock_LargeAutoCrafter = config.getBoolean("enableMultiblock_LargeAutoCrafter",
- "gregtech", true, "Can Assemble, Disassemble and Craft Project data from Data Sticks.");
- enableMultiblock_IndustrialThermalCentrifuge = config.getBoolean("enableMultiblock_IndustrialThermalCentrifuge",
- "gregtech", true, "Your warm spin for the ore thing.");
- enableMultiblock_IndustrialWashPlant = config.getBoolean("enableMultiblock_IndustrialWashPlant",
- "gregtech", true, "Used to wash the dirt, riiiiight offff..");
- enableMultiblock_ThermalBoiler = config.getBoolean("enableMachineThermalBoiler",
- "gregtech", true, "Thermal Boiler from GT4. Can Filter Lava for resources.");
- enableMultiblock_IndustrialCuttingMachine = config.getBoolean("enableMultiblock_IndustrialCuttingMachine",
- "gregtech", true, "Very fast and efficient Cutting Machine.");
-
- // Options
- RF2EU_Battery.rfPerEU = config.getInt("rfUsedPerEUForUniversalBatteries", "configurables", 4, 1, 1000,
- "How much RF is a single unit of EU worth? (Most mods use 4:1 ratio)");
-
- // Features
- enableCustomCapes = config.getBoolean("enableSupporterCape", "features", true,
- "Enables Custom GT++ Cape.");
- disableZombieReinforcement = config.getBoolean("disableZombieReinforcement", "features", false,
- "Disables Zombie Reinforcement on hard difficutly.");
-
- //Biomes
- CORE.DARKBIOME_ID = config.getInt("darkbiome_ID", "worldgen", 238, 1, 254, "The biome within the Dark Dimension.");
-
- //Blacklisted Accelerator TileEntities
- BlacklistedTileEntiyClassNames = new String[] { "com.rwtema.extrautils.tileentity.enderquarry.TileEntityEnderQuarry" };
- BlacklistedTileEntiyClassNames = config.getStringList(
- "BlacklistedTileEntiyClassNames", "gregtech",
- BlacklistedTileEntiyClassNames,
- "The Canonical Class-Names of TileEntities that should be ignored by the WorldAccelerator");
-
-
- config.save();
- }
-
// Loads Textures
@SideOnly(value = Side.CLIENT)
public static void loadTextures() {
@@ -229,27 +72,29 @@ public class GTplusplus implements ActionListener {
enableCustomCapes = true;
}
+ //Give this a go mate.
+ initAnalytics();
+
//HTTP Requests
CORE.MASTER_VERSION = NetworkUtils.getContentFromURL("https://raw.githubusercontent.com/draknyte1/GTplusplus/master/Recommended.txt").toLowerCase();
CORE.USER_COUNTRY = GeoUtils.determineUsersCountry();
// Handle GT++ Config
- handleConfigFile(event);
+ ConfigHandler.handleConfigFile(event);
+ //Check for Dev
CORE.DEVENV = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment");
if (enableUpdateChecker){
Utils.LOG_INFO("Latest is " + CORE.MASTER_VERSION + ". Updated? " + Utils.isModUpToDate());
}
- Utils.LOG_INFO("User's Country: " + CORE.USER_COUNTRY);
+ //Utils.LOG_INFO("User's Country: " + CORE.USER_COUNTRY);
// FirstCall();
Utils.registerEvent(new LoginEventHandler());
Utils.LOG_INFO("Login Handler Initialized");
- if (enableOldGTcircuits && CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){
- removeCircuitRecipeMap(); //Bye shitty recipes.
- }
-
+
+
proxy.preInit(event);
}
@@ -258,13 +103,13 @@ public class GTplusplus implements ActionListener {
public void init(final FMLInitializationEvent event) {
proxy.init(event);
proxy.registerNetworkStuff();
-
+
//Set Variables for Fluorite Block handling
Utils.LOG_INFO("Setting some Variables for the block break event handler.");
BlockEventHandler.oreLimestone = OreDictionary.getOres("oreLimestone");
BlockEventHandler.blockLimestone = OreDictionary.getOres("limestone");
BlockEventHandler.fluoriteOre = ItemUtils.getSimpleStack(Item.getItemFromBlock(ModBlocks.blockOreFluorite));
-
+
}
// Post-Init
@@ -322,19 +167,7 @@ public class GTplusplus implements ActionListener {
}
- private static boolean removeCircuitRecipeMap(){
- try {
- Utils.LOG_INFO("[Old Feature - Circuits] Trying to override the Circuit Assembler Recipe map, so that no recipes for new circuits get added.");
- ReflectionUtils.setFinalStatic(GT_Recipe_Map.class.getDeclaredField("sCircuitAssemblerRecipes"), new EmptyRecipeMap(new HashSet<GT_Recipe>(0), "gt.recipe.removed", "Removed", null, GT_Values.RES_PATH_GUI + "basicmachines/Default", 0, 0, 0, 0, 0, GT_Values.E, 0, GT_Values.E, true, false));
- Field jaffar = GT_Recipe_Map.class.getDeclaredField("sCircuitAssemblerRecipes");
- FieldUtils.removeFinalModifier(jaffar, true);
- jaffar.set(null, new EmptyRecipeMap(new HashSet<GT_Recipe>(0), "gt.recipe.removed", "Removed", null, GT_Values.RES_PATH_GUI + "basicmachines/Default", 0, 0, 0, 0, 0, GT_Values.E, 0, GT_Values.E, true, false));
- Utils.LOG_INFO("[Old Feature - Circuits] Successfully replaced circuit assembler recipe map with one that cannot hold recipes.");
- }
- catch (Exception e) {
- Utils.LOG_INFO("[Old Feature - Circuits] Failed removing circuit assembler recipe map.");
- return false;
- }
- return true;
+ private static final void initAnalytics(){
+ CORE.mAnalytics = new SegmentAnalytics();
}
}