diff options
Diffstat (limited to 'src/Java/miscutil/core')
-rw-r--r-- | src/Java/miscutil/core/common/CommonProxy.java | 103 | ||||
-rw-r--r-- | src/Java/miscutil/core/common/compat/COMPAT_CompactWindmills.java | 20 | ||||
-rw-r--r-- | src/Java/miscutil/core/common/compat/COMPAT_HANDLER.java | 63 | ||||
-rw-r--r-- | src/Java/miscutil/core/common/compat/COMPAT_IC2.java | 48 | ||||
-rw-r--r-- | src/Java/miscutil/core/lib/CORE.java | 2 | ||||
-rw-r--r-- | src/Java/miscutil/core/lib/LoadedMods.java | 5 | ||||
-rw-r--r-- | src/Java/miscutil/core/util/UtilsItems.java | 94 |
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; + } } |