aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/GTplusplus.java4
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/OreDictUtils.java7
-rw-r--r--src/Java/gtPlusPlus/preloader/CORE_Preloader.java8
-rw-r--r--src/Java/gtPlusPlus/preloader/GTplusplus_Preloader.java55
-rw-r--r--src/Java/gtPlusPlus/preloader/Preloader_GT_OreDict.java111
5 files changed, 181 insertions, 4 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java
index 4e693355dd..7680d504de 100644
--- a/src/Java/gtPlusPlus/GTplusplus.java
+++ b/src/Java/gtPlusPlus/GTplusplus.java
@@ -16,7 +16,6 @@ import org.apache.commons.lang3.reflect.FieldUtils;
import cpw.mods.fml.common.*;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.*;
-import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.enums.GT_Values;
@@ -26,19 +25,16 @@ import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.Recipe_GT.Gregtech_Recipe_Map;
import gtPlusPlus.core.commands.CommandMath;
import gtPlusPlus.core.common.CommonProxy;
-import gtPlusPlus.core.handler.BurnableFuelHandler;
import gtPlusPlus.core.handler.Recipes.RegistrationHandler;
import gtPlusPlus.core.handler.events.LoginEventHandler;
import gtPlusPlus.core.item.general.RF2EU_Battery;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.recipe.RECIPES_Old_Circuits;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.item.ItemUtils;
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 gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_WorldAccelerator;
import net.minecraft.launchwrapper.Launch;
import net.minecraftforge.common.config.Configuration;
diff --git a/src/Java/gtPlusPlus/core/util/reflect/OreDictUtils.java b/src/Java/gtPlusPlus/core/util/reflect/OreDictUtils.java
new file mode 100644
index 0000000000..6d34733545
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/util/reflect/OreDictUtils.java
@@ -0,0 +1,7 @@
+package gtPlusPlus.core.util.reflect;
+
+public class OreDictUtils {
+
+
+
+}
diff --git a/src/Java/gtPlusPlus/preloader/CORE_Preloader.java b/src/Java/gtPlusPlus/preloader/CORE_Preloader.java
new file mode 100644
index 0000000000..562f7d67de
--- /dev/null
+++ b/src/Java/gtPlusPlus/preloader/CORE_Preloader.java
@@ -0,0 +1,8 @@
+package gtPlusPlus.preloader;
+
+public class CORE_Preloader {
+ public static final String NAME = "GT++ Preloader";
+ public static final String MODID = "GT++_Preloader";
+ public static final String VERSION = "0.1-Alpha";
+ public static boolean enableOldGTcircuits = false;
+}
diff --git a/src/Java/gtPlusPlus/preloader/GTplusplus_Preloader.java b/src/Java/gtPlusPlus/preloader/GTplusplus_Preloader.java
new file mode 100644
index 0000000000..737038c84b
--- /dev/null
+++ b/src/Java/gtPlusPlus/preloader/GTplusplus_Preloader.java
@@ -0,0 +1,55 @@
+package gtPlusPlus.preloader;
+
+import static gtPlusPlus.preloader.CORE_Preloader.*;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+
+import cpw.mods.fml.common.Mod;
+import cpw.mods.fml.common.Mod.EventHandler;
+import cpw.mods.fml.common.event.*;
+import gtPlusPlus.core.util.Utils;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.common.config.Configuration;
+
+@Mod(modid = MODID, name = NAME, version = VERSION, dependencies = "required-before:gregtech;")
+public class GTplusplus_Preloader implements ActionListener {
+
+ @EventHandler
+ public void load(final FMLInitializationEvent e) {
+ Utils.LOG_INFO("Begin resource allocation for " + MODID + " V" + VERSION);
+ }
+
+ // Pre-Init
+ @Mod.EventHandler
+ public void preInit(final FMLPreInitializationEvent event) {
+ Utils.LOG_INFO("Loading " + MODID + " V" + VERSION);
+ // Handle GT++ Config
+ handleConfigFile(event);
+ if (CORE_Preloader.enableOldGTcircuits) {
+ MinecraftForge.EVENT_BUS.register(new Preloader_GT_OreDict());
+ }
+ }
+
+ @EventHandler
+ public static void postInit(final FMLPostInitializationEvent e) {
+ Utils.LOG_INFO("Finished loading GT++ Pre-Loader.");
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ // TODO Auto-generated method stub
+ }
+
+ public static void handleConfigFile(final FMLPreInitializationEvent event) {
+ final Configuration config = new Configuration(
+ new File(event.getModConfigurationDirectory(), "GTplusplus/GTplusplus.cfg"));
+ config.load();
+
+ // Circuits
+ CORE_Preloader.enableOldGTcircuits = config.getBoolean("enableOldGTcircuits", "gregtech", false,
+ "Restores circuits and their recipes from Pre-5.09.28 times.");
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/preloader/Preloader_GT_OreDict.java b/src/Java/gtPlusPlus/preloader/Preloader_GT_OreDict.java
new file mode 100644
index 0000000000..b81f7a2ef4
--- /dev/null
+++ b/src/Java/gtPlusPlus/preloader/Preloader_GT_OreDict.java
@@ -0,0 +1,111 @@
+package gtPlusPlus.preloader;
+
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import gregtech.common.items.GT_MetaGenerated_Item_01;
+import gtPlusPlus.core.item.ModItems;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.item.ItemUtils;
+import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.oredict.OreDictionary.OreRegisterEvent;
+
+public class Preloader_GT_OreDict {
+ @SubscribeEvent
+ public void onItemRegisteredToOreDictionary(final OreRegisterEvent event) throws Throwable {
+ String name = event.Name;
+ ItemStack ore = event.Ore;
+ // Check Item is Valid
+ if (ore != null && (name != null && !name.equals(""))) {
+ // Check Item has a Valid MODID
+ String MODID = "";
+
+ try {
+ MODID = ItemUtils.getModId(ore);
+ }
+ catch (NullPointerException n) {
+ Utils.LOG_INFO("[Bug] Found Item with Bad MODID - " + ore.getDisplayName()
+ + " | If you recognise this item, please inform the developer.");
+ }
+
+ if (MODID != null) {
+ // Check Item has a Valid MODID
+ if (!MODID.equals("")) {
+ // Check Item is from Gregtech
+ if (MODID.equals("gregtech")) {
+ //Utils.LOG_INFO("Found GT ITEM - " + ore.getDisplayName());
+ // Circuit Removal
+ if (Meta_GT_Proxy.areWeUsingGregtech5uExperimental() && CORE_Preloader.enableOldGTcircuits) {
+ if (removeCircuit(ore)) {
+ Utils.LOG_INFO("[Old Feature - Circuits] Preventing " + ore.getDisplayName()
+ + " from registering itself with oredict tag " + name + ".");
+ //Do Magic
+ if (event.isCancelable()){
+ event.setCanceled(true);
+ }
+ else {
+ try {
+ ore = ItemUtils.getSimpleStack(ModItems.AAA_Broken);
+ name = "null";
+ //event.setCanceled(true);
+ throw new OreDictCancelledException("[Old Feature - Circuits] Circuit OreDict event cancelled.");
+ }
+ catch(OreDictCancelledException | UnsupportedOperationException | IllegalArgumentException o){
+ Utils.LOG_INFO("[Old Feature - Circuits] Circuit OreDict event cancelled.");
+ }
+ finally{
+
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private boolean removeCircuit(ItemStack circuit) {
+ int damageValue = circuit.getItemDamage() - 32000;
+ if (circuit.getItem() instanceof GT_MetaGenerated_Item_01) { // 700-720
+ if (damageValue >= 700 && damageValue <= 720) {
+ return true;
+ }
+ }
+ else {
+ try {
+ if (Class.forName("gregtech.common.items.GT_MetaGenerated_Item_03") != null) { // 6/11/12/14/16/20/30-57/69-73/79-96
+ Class MetaItem03 = Class.forName("gregtech.common.items.GT_MetaGenerated_Item_03");
+ if (isInstanceOf(MetaItem03, circuit.getItem())) {
+ if (damageValue == 6 || damageValue == 11 || damageValue == 12 || damageValue == 14
+ || damageValue == 16 || damageValue == 20) {
+ return true;
+ }
+ else if (damageValue >= 30 && damageValue <= 57) {
+ return true;
+ }
+ else if (damageValue >= 69 && damageValue <= 73) {
+ return true;
+ }
+ else if (damageValue >= 79 && damageValue <= 96) {
+ return true;
+ }
+ }
+ }
+ }
+ catch (ClassNotFoundException e) {
+ }
+ }
+ return false;
+ }
+
+ // Simplification of Life.
+ private boolean isInstanceOf(Class clazz, Object obj) {
+ return clazz.isInstance(obj);
+ }
+
+ class OreDictCancelledException extends Exception {
+ public OreDictCancelledException(String msg){
+ super(msg);
+ }
+ }
+}