aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/miscutil/core')
-rw-r--r--src/Java/miscutil/core/common/CommonProxy.java103
-rw-r--r--src/Java/miscutil/core/common/compat/COMPAT_CompactWindmills.java20
-rw-r--r--src/Java/miscutil/core/common/compat/COMPAT_HANDLER.java63
-rw-r--r--src/Java/miscutil/core/common/compat/COMPAT_IC2.java48
-rw-r--r--src/Java/miscutil/core/lib/CORE.java2
-rw-r--r--src/Java/miscutil/core/lib/LoadedMods.java5
-rw-r--r--src/Java/miscutil/core/util/UtilsItems.java94
7 files changed, 227 insertions, 108 deletions
diff --git a/src/Java/miscutil/core/common/CommonProxy.java b/src/Java/miscutil/core/common/CommonProxy.java
index e0af693445..54a0e18d9b 100644
--- a/src/Java/miscutil/core/common/CommonProxy.java
+++ b/src/Java/miscutil/core/common/CommonProxy.java
@@ -4,19 +4,11 @@ import static miscutil.core.lib.CORE.DEBUG;
import static miscutil.core.lib.LoadedMods.Gregtech;
import gregtech.api.util.GT_OreDictUnificator;
import miscutil.core.block.ModBlocks;
-import miscutil.core.common.compat.COMPAT_BigReactors;
-import miscutil.core.common.compat.COMPAT_EnderIO;
-import miscutil.core.common.compat.COMPAT_ExtraUtils;
-import miscutil.core.common.compat.COMPAT_MorePlanets;
-import miscutil.core.common.compat.COMPAT_PneumaticCraft;
-import miscutil.core.common.compat.COMPAT_RFTools;
-import miscutil.core.common.compat.COMPAT_SimplyJetpacks;
-import miscutil.core.common.compat.COMPAT_Thaumcraft;
+import miscutil.core.common.compat.COMPAT_HANDLER;
import miscutil.core.gui.ModGUI;
import miscutil.core.handler.registration.RegistrationHandler;
import miscutil.core.item.ModItems;
import miscutil.core.lib.CORE;
-import miscutil.core.lib.LoadedMods;
import miscutil.core.tileentities.ModTileEntities;
import miscutil.core.util.Utils;
import miscutil.core.util.UtilsItems;
@@ -80,9 +72,7 @@ public class CommonProxy {
}
public void postInit(FMLPostInitializationEvent e) {
-
-
-
+ registerOreDict();
}
public void registerNetworkStuff(){
@@ -104,9 +94,9 @@ public class CommonProxy {
}
@SuppressWarnings("static-method")
- public void registerOreDict(){
+ private void registerOreDict(){
- Utils.LOG_INFO("Registering Ingots & Plates with OreDict.");
+ Utils.LOG_INFO("Registering Materials with OreDict.");
//In-house
//tools
@@ -127,94 +117,13 @@ public class CommonProxy {
GT_OreDictUnificator.registerOre("bufferCore_"+CORE.VOLTAGES[i-1], new ItemStack(UtilsItems.getItem("miscutils:item.itemBufferCore"+i)));
}
-
- //InterMod
- if (LoadedMods.Big_Reactors){
- COMPAT_BigReactors.OreDict();
- }
- if (LoadedMods.EnderIO){
- COMPAT_EnderIO.OreDict();
- }
- if (LoadedMods.MorePlanets){
- COMPAT_MorePlanets.OreDict();
- }
- if (LoadedMods.Simply_Jetpacks){
- COMPAT_SimplyJetpacks.OreDict();
- }
- if (LoadedMods.RFTools){
- COMPAT_RFTools.OreDict();
- }
- if (LoadedMods.Thaumcraft){
- COMPAT_Thaumcraft.OreDict();
- }
- if (LoadedMods.Extra_Utils){
- COMPAT_ExtraUtils.OreDict();
- }
- if (LoadedMods.PneumaticCraft){
- COMPAT_PneumaticCraft.OreDict();
- }
+ //Do Inter-Mod Compatibility
+ COMPAT_HANDLER.run();
}
-
-
-
-
-
-
-
-
-
-
-
@SuppressWarnings("static-method")
public int addArmor(String armor) {
return 0;
}
}
-
-
-/*
- *
- * try{
- Item em = null;
- //Item em1 = GameRegistry.findItem("ThaumCraft", "ItemResource:16");
- //Item em2 = GameRegistry.findItem("ThaumCraft", "<ItemResource:16>");
-
- Item em1 = Utils.getItem("Thaumcraft:ItemResource:16");
- Utils.LOG_WARNING("Found: "+em1.toString());
- if (!em1.equals(null)){
- em = em1;
- }
- else {
- em = null;
- }
- if (!em.equals(null)){
- ItemStack voidIngot = new ItemStack(em,1,16);
- //GT_OreDictUnificator.registerOre("ingotVoidMetal", new ItemStack(em));
- //GameRegistry.registerCustomItemStack("ingotVoidMetal", voidIngot);
- GT_OreDictUnificator.registerOre("ingotVoidMetal", voidIngot);
- }
- else {
- Utils.LOG_WARNING("Void Metal Ingot not found.");
- }
- } catch (NullPointerException e) {
- Utils.LOG_ERROR("Void Metal Ingot not found. [NULL]");
- }
-
- try {
-Item em = null;
-Item em1 = Utils.getItem("ExtraUtilities:bedrockiumIngot");
-Utils.LOG_WARNING("Found: "+em1.toString());
-if (!em1.equals(null)){
- em = em1;
-}
-if (!em.equals(null)){
- GT_OreDictUnificator.registerOre("ingotBedrockium", new ItemStack(em));
-}
-else {
- Utils.LOG_WARNING("Bedrockium Ingot not found.");
-}
-} catch (NullPointerException e) {
- Utils.LOG_ERROR("Bedrockium Ingot not found. [NULL]");
-}*/
diff --git a/src/Java/miscutil/core/common/compat/COMPAT_CompactWindmills.java b/src/Java/miscutil/core/common/compat/COMPAT_CompactWindmills.java
new file mode 100644
index 0000000000..98988f25c0
--- /dev/null
+++ b/src/Java/miscutil/core/common/compat/COMPAT_CompactWindmills.java
@@ -0,0 +1,20 @@
+package miscutil.core.common.compat;
+
+import static miscutil.core.common.compat.COMPAT_HANDLER.RemoveRecipeQueue;
+
+
+
+public class COMPAT_CompactWindmills {
+
+ public static void OreDict(){
+ run();
+ }
+
+ private static final void run(){
+ RemoveRecipeQueue.add("CompactWindmills:WOOL");
+ RemoveRecipeQueue.add("CompactWindmills:WOOD");
+ RemoveRecipeQueue.add("CompactWindmills:ALLOY");
+ RemoveRecipeQueue.add("CompactWindmills:CARBON");
+ RemoveRecipeQueue.add("CompactWindmills:IRIDIUM");
+ }
+}
diff --git a/src/Java/miscutil/core/common/compat/COMPAT_HANDLER.java b/src/Java/miscutil/core/common/compat/COMPAT_HANDLER.java
new file mode 100644
index 0000000000..7c39859a1a
--- /dev/null
+++ b/src/Java/miscutil/core/common/compat/COMPAT_HANDLER.java
@@ -0,0 +1,63 @@
+package miscutil.core.common.compat;
+
+import static miscutil.core.util.UtilsItems.removeCraftingRecipe;
+
+import java.util.LinkedList;
+import java.util.Queue;
+
+import miscutil.core.lib.LoadedMods;
+
+public class COMPAT_HANDLER {
+
+ public static Queue<Object> RemoveRecipeQueue = new LinkedList<Object>();
+ public static Queue<Object> AddRecipeQueue = new LinkedList<Object>();
+
+ //InterMod
+ public static void run(){
+
+ if (LoadedMods.Big_Reactors){
+ COMPAT_BigReactors.OreDict();
+ }
+ if (LoadedMods.EnderIO){
+ COMPAT_EnderIO.OreDict();
+ }
+ if (LoadedMods.MorePlanets){
+ COMPAT_MorePlanets.OreDict();
+ }
+ if (LoadedMods.Simply_Jetpacks){
+ COMPAT_SimplyJetpacks.OreDict();
+ }
+ if (LoadedMods.RFTools){
+ COMPAT_RFTools.OreDict();
+ }
+ if (LoadedMods.Thaumcraft){
+ COMPAT_Thaumcraft.OreDict();
+ }
+ if (LoadedMods.Extra_Utils){
+ COMPAT_ExtraUtils.OreDict();
+ }
+ if (LoadedMods.PneumaticCraft){
+ COMPAT_PneumaticCraft.OreDict();
+ }
+ if (LoadedMods.CompactWindmills){
+ COMPAT_CompactWindmills.OreDict();
+ }
+ if (LoadedMods.IndustrialCraft2){
+ COMPAT_IC2.OreDict();
+ }
+ }
+
+ public static void ServerStartedEvent(){
+ //Removal of Recipes
+ for(Object item : RemoveRecipeQueue){
+ removeCraftingRecipe(item);
+ }
+ }
+
+ public static void ServerStartedEvent_RECIPES(){
+ //Remoal Recipes
+ for(Object item : AddRecipeQueue){
+ removeCraftingRecipe(item);
+ }
+ }
+}
diff --git a/src/Java/miscutil/core/common/compat/COMPAT_IC2.java b/src/Java/miscutil/core/common/compat/COMPAT_IC2.java
new file mode 100644
index 0000000000..50daca16ce
--- /dev/null
+++ b/src/Java/miscutil/core/common/compat/COMPAT_IC2.java
@@ -0,0 +1,48 @@
+package miscutil.core.common.compat;
+
+import static miscutil.core.common.compat.COMPAT_HANDLER.RemoveRecipeQueue;
+import miscutil.core.util.UtilsItems;
+import net.minecraft.item.ItemStack;
+
+
+public class COMPAT_IC2 {
+
+ private static ItemStack temp_1;
+ private static ItemStack temp_2;
+ private static ItemStack temp_3;
+ private static ItemStack temp_4;
+ private static ItemStack temp_5;
+
+
+
+ public static void OreDict(){
+ //Get ItemStacks for results
+ temp_1 = UtilsItems.getItemStack("IC2:itemCropnalyzer", 1);
+ temp_2 = UtilsItems.getItemStack("IC2:itemSolarHelmet", 1);
+ run();
+ }
+
+ private static final void run(){
+ //Fuck these right off.
+ RemoveRecipeQueue.add("IC2:itemCable");
+ RemoveRecipeQueue.add("IC2:itemCable:1");
+ RemoveRecipeQueue.add("IC2:itemCable:2");
+ RemoveRecipeQueue.add("IC2:itemCable:3");
+ RemoveRecipeQueue.add("IC2:itemCable:5");
+ RemoveRecipeQueue.add("IC2:itemCable:6");
+ RemoveRecipeQueue.add("IC2:itemCable:10");
+ RemoveRecipeQueue.add("IC2:itemCable:13");
+
+ RemoveRecipeQueue.add(temp_1);
+ UtilsItems.recipeBuilder("ore:craftingWireCopper", "ore:craftingWireCopper", null,
+ "minecraft:redstone", "minecraft:glass", "minecraft:redstone",
+ "minecraft:redstone", "ore:circuitBasic", "minecraft:redstone",
+ temp_1);
+ RemoveRecipeQueue.add(temp_2);
+ UtilsItems.recipeBuilder("ore:plateIron", "ore:plateIron", "ore:plateIron",
+ "ore:plateIron", "gregtech:gt.metaitem.01:32750", "ore:plateIron",
+ "ore:craftingWireCopper", "ore:craftingWireCopper", "ore:craftingWireCopper",
+ temp_2);
+ }
+
+}
diff --git a/src/Java/miscutil/core/lib/CORE.java b/src/Java/miscutil/core/lib/CORE.java
index c5be731885..afec1ef301 100644
--- a/src/Java/miscutil/core/lib/CORE.java
+++ b/src/Java/miscutil/core/lib/CORE.java
@@ -13,7 +13,7 @@ public class CORE {
public static final String name = "Misc. Utils";
public static final String MODID = "miscutils";
- public static final String VERSION = "1.0.3";
+ public static final String VERSION = "1.0.4";
public static final boolean DEBUG = false;
public static final boolean LOAD_ALL_CONTENT = false;
public static final int GREG_FIRST_ID = 760;
diff --git a/src/Java/miscutil/core/lib/LoadedMods.java b/src/Java/miscutil/core/lib/LoadedMods.java
index cb6c206c1b..394f96a6fc 100644
--- a/src/Java/miscutil/core/lib/LoadedMods.java
+++ b/src/Java/miscutil/core/lib/LoadedMods.java
@@ -17,6 +17,7 @@ public class LoadedMods {
public static boolean PneumaticCraft = false;
public static boolean MorePlanets = false;
public static boolean ForbiddenMagic = false;
+ public static boolean CompactWindmills = false;
private static int totalMods;
@@ -66,6 +67,10 @@ public class LoadedMods {
ForbiddenMagic = true;
totalMods++;
}
+ if (Loader.isModLoaded("CompactWindmills") == true){
+ CompactWindmills = true;
+ totalMods++;
+ }
Utils.LOG_INFO("Content found for "+totalMods+" mods");
diff --git a/src/Java/miscutil/core/util/UtilsItems.java b/src/Java/miscutil/core/util/UtilsItems.java
index bb10fa4f06..4323420959 100644
--- a/src/Java/miscutil/core/util/UtilsItems.java
+++ b/src/Java/miscutil/core/util/UtilsItems.java
@@ -3,11 +3,15 @@ package miscutil.core.util;
import gregtech.api.util.GT_OreDictUnificator;
import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import miscutil.core.handler.registration.RegistrationHandler;
import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.item.crafting.CraftingManager;
+import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.ShapedOreRecipe;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -40,7 +44,7 @@ public class UtilsItems {
}
return null;
}
-
+
public static void getItemForOreDict(String FQRN, String oreDictName, String itemName, int meta){
try {
Item em = null;
@@ -50,16 +54,16 @@ public class UtilsItems {
em = em1;
}
if (em != null){
-
+
ItemStack metaStack = new ItemStack(em,1,meta);
GT_OreDictUnificator.registerOre(oreDictName, metaStack);
-
+
/*ItemStack itemStackWithMeta = new ItemStack(em,1,meta);
GT_OreDictUnificator.registerOre(oreDictName, new ItemStack(itemStackWithMeta.getItem()));*/
}
- } catch (NullPointerException e) {
- Utils.LOG_ERROR(itemName+" not found. [NULL]");
- }
+ } catch (NullPointerException e) {
+ Utils.LOG_ERROR(itemName+" not found. [NULL]");
+ }
}
public static void recipeBuilder(Object slot_1, Object slot_2, Object slot_3, Object slot_4, Object slot_5, Object slot_6, Object slot_7, Object slot_8, Object slot_9, ItemStack resultItem){
@@ -145,7 +149,7 @@ public class UtilsItems {
{
Utils.LOG_ERROR(""+validSlotsArray[j]);
}*/
-
+
GameRegistry.addRecipe(new ShapedOreRecipe(resultItem.copy(), (Object[]) validSlots.toArray()));
Utils.LOG_INFO("Success! Added a recipe for "+resultItem.toString());
RegistrationHandler.recipesSuccess++;
@@ -199,15 +203,85 @@ public class UtilsItems {
public static Item getItemInPlayersHand(){
Minecraft mc = Minecraft.getMinecraft();
Item heldItem = null;
-
+
try{heldItem = mc.thePlayer.getHeldItem().getItem();
}catch(NullPointerException e){return null;}
-
+
if (heldItem != null){
return heldItem;
}
-
+
return null;
}
+ public static boolean removeCraftingRecipe(Object x){
+ if (null == x){return false;}
+ if (x instanceof String){
+ Item R = getItem((String) x);
+ if (R != null){
+ x = R;
+ }
+ else {
+ return false;
+ }
+ }
+ if (x instanceof Item || x instanceof ItemStack){
+ if (x instanceof Item){
+ ItemStack r = new ItemStack((Item) x);
+ Utils.LOG_INFO("Removing Recipe for "+r.getUnlocalizedName());
+ }
+ else {
+ Utils.LOG_INFO("Removing Recipe for "+((ItemStack) x).getUnlocalizedName());
+ }
+ if (x instanceof ItemStack){
+ Item r = ((ItemStack) x).getItem();
+ if (null != r){
+ x = r;
+ }
+ else {
+ Utils.LOG_INFO("Recipe removal failed - Tell Alkalus.");
+ return false;
+ }
+ }
+ if (attemptRecipeRemoval((Item) x)){
+ Utils.LOG_INFO("Recipe removal successful");
+ return true;
+ }
+ Utils.LOG_INFO("Recipe removal failed - Tell Alkalus.");
+ return false;
+ }
+ return false;
+ }
+
+ private static boolean attemptRecipeRemoval(Item I){
+ Utils.LOG_WARNING("Create list of recipes.");
+ List<IRecipe> recipes = CraftingManager.getInstance().getRecipeList();
+ Iterator<IRecipe> items = recipes.iterator();
+ Utils.LOG_WARNING("Begin list iteration.");
+ while (items.hasNext()) {
+ ItemStack is = items.next().getRecipeOutput();
+ if (is != null && is.getItem() == I){
+ items.remove();
+ Utils.LOG_INFO("Remove a recipe with "+I.getUnlocalizedName()+" as output.");
+ continue;
+ }
+ }
+ Utils.LOG_WARNING("All recipes should be gone?");
+ if (!items.hasNext()){
+ Utils.LOG_WARNING("We iterated once, let's try again to double check.");
+ Iterator<IRecipe> items2 = recipes.iterator();
+ while (items2.hasNext()) {
+ ItemStack is = items2.next().getRecipeOutput();
+ if (is != null && is.getItem() == I){
+ items.remove();
+ Utils.LOG_WARNING("REMOVING MISSED RECIPE - RECHECK CONSTRUCTORS");
+ return true;
+ }
+ }
+ Utils.LOG_WARNING("Should be all gone now after double checking, so return true.");
+ return true;
+ }
+ Utils.LOG_INFO("Return false, because something went wrong.");
+ return false;
+ }
}