diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-06-17 16:55:21 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-06-17 16:55:21 +1000 |
commit | 92b359cbee7aeca68bf4fa2a1c9530e777f6ed11 (patch) | |
tree | 9a8b43617b2bbfb71b96ff240491d83ace1b5b0b | |
parent | b96d8f61d1550d61f432290431ebf8a96da252f2 (diff) | |
download | GT5-Unofficial-92b359cbee7aeca68bf4fa2a1c9530e777f6ed11.tar.gz GT5-Unofficial-92b359cbee7aeca68bf4fa2a1c9530e777f6ed11.tar.bz2 GT5-Unofficial-92b359cbee7aeca68bf4fa2a1c9530e777f6ed11.zip |
~Changed the way compatability is handled.
~Recipe Handler now works in two segments, loading recipes as normal during Init and then from a queue during postInit.
~Queue should be populated throughout the mods init/preInit phases, so that they're not removed during recipe removal.
~Made more changes to the NFHG, not sure if I broke it more or not.. but it works, kinda.
19 files changed, 608 insertions, 294 deletions
diff --git a/src/Java/miscutil/MiscUtils.java b/src/Java/miscutil/MiscUtils.java index 2ddd6bf8cb..46ed16be36 100644 --- a/src/Java/miscutil/MiscUtils.java +++ b/src/Java/miscutil/MiscUtils.java @@ -5,15 +5,7 @@ import java.awt.event.ActionListener; import miscutil.core.commands.CommandMath; import miscutil.core.common.CommonProxy; -import miscutil.core.common.compat.COMPAT_HANDLER; -import miscutil.core.creative.AddToCreativeTab; -import miscutil.core.handler.events.PickaxeBlockBreakEventHandler; import miscutil.core.lib.CORE; -import miscutil.core.lib.LoadedMods; -import miscutil.core.util.PlayerCache; -import miscutil.core.util.Utils; -import miscutil.core.util.debug.DEBUG_INIT; -import miscutil.gregtech.common.GregtechRecipeAdder; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; @@ -25,7 +17,7 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.event.FMLServerStoppingEvent; -@Mod(modid=CORE.MODID, name="Misc. Utils", version=CORE.VERSION, dependencies="required-after:gregtech;") +@Mod(modid=CORE.MODID, name="Misc. Utils", version=CORE.VERSION, dependencies="required-after:Forge; after:IC2; after:gregtech; after:Railcraft; after:CompactWindmills; after:ForbiddenMagic; after:MorePlanet; after:PneumaticCraft; after:ExtraUtilities; after:Thaumcraft; after:rftools; after:simplyjetpacks; after:BigReactors; after:EnderIO;") public class MiscUtils implements ActionListener { @@ -41,18 +33,6 @@ implements ActionListener @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { - LoadedMods.checkLoaded(); - Utils.LOG_INFO("Doing some house cleaning."); - - if (LoadedMods.Gregtech){ - try { - CORE.sRecipeAdder = CORE.RA = new GregtechRecipeAdder(); - } catch (NullPointerException e){ - - } - } - - AddToCreativeTab.initialiseTabs(); proxy.registerTileEntities(); proxy.registerRenderThings(); proxy.preInit(event); @@ -62,13 +42,8 @@ implements ActionListener @Mod.EventHandler public void init(FMLInitializationEvent event) { - proxy.init(event); + proxy.init(event); MinecraftForge.EVENT_BUS.register(this); - MinecraftForge.EVENT_BUS.register(new PickaxeBlockBreakEventHandler()); - //Debug Loading - if (CORE.DEBUG){ - DEBUG_INIT.registerHandlers(); - } FMLCommonHandler.instance().bus().register(this); proxy.registerNetworkStuff(); } @@ -76,13 +51,9 @@ implements ActionListener //Post-Init @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { - Utils.LOG_INFO("Cleaning up, doing postInit."); - COMPAT_HANDLER.ServerStartedEvent(); - PlayerCache.initCache(); - proxy.postInit(event); - + proxy.postInit(event); } - + @EventHandler public void serverStarting(FMLServerStartingEvent event) { diff --git a/src/Java/miscutil/core/common/CommonProxy.java b/src/Java/miscutil/core/common/CommonProxy.java index 26c5775290..3ef3f87f77 100644 --- a/src/Java/miscutil/core/common/CommonProxy.java +++ b/src/Java/miscutil/core/common/CommonProxy.java @@ -2,20 +2,20 @@ package miscutil.core.common; 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_HANDLER; +import miscutil.core.creative.AddToCreativeTab; import miscutil.core.gui.ModGUI; -import miscutil.core.handler.registration.RegistrationHandler; +import miscutil.core.handler.events.PickaxeBlockBreakEventHandler; import miscutil.core.item.ModItems; import miscutil.core.lib.CORE; +import miscutil.core.lib.LoadedMods; import miscutil.core.tileentities.ModTileEntities; +import miscutil.core.util.PlayerCache; import miscutil.core.util.Utils; -import miscutil.core.util.UtilsItems; +import miscutil.core.util.debug.DEBUG_INIT; import miscutil.gregtech.api.init.InitGregtech; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @@ -23,12 +23,8 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; public class CommonProxy { public void preInit(FMLPreInitializationEvent e) { - /* - * - * CORE.DEBUG Parameters area - * - */ - //Logs + Utils.LOG_INFO("Doing some house cleaning."); + Utils.LOG_INFO("Making sure we're ready to party!"); if (!DEBUG){ Utils.LOG_WARNING("Development mode not enabled."); } @@ -38,48 +34,44 @@ public class CommonProxy { else { Utils.LOG_WARNING("Development mode not set."); } - /* - * End CORE.DEBUG - */ + ModItems.init(); ModBlocks.init(); - - /** - * Enable Dev mode related content - */ - if (CORE.DEBUG){ - //InitEnderIO.run(); - } - - //Register Gregtech related items if (Gregtech) { Utils.LOG_INFO("Gregtech Found - Loading Resources."); - //Utils.LOG_INFO("Begining initialization of Gregtech related content."); - // Init Gregtech InitGregtech.run(); - } else { Utils.LOG_WARNING("Gregtech not Found - Skipping Resources."); } - + LoadedMods.checkLoaded(); + AddToCreativeTab.initialiseTabs(); } public void init(FMLInitializationEvent e) { - - RegistrationHandler.run(); - + //Debug Loading + if (CORE.DEBUG){ + DEBUG_INIT.registerHandlers(); + } + MinecraftForge.EVENT_BUS.register(new PickaxeBlockBreakEventHandler()); + + //Compat Handling + COMPAT_HANDLER.InitialiseHandlerThenAddRecipes(); + COMPAT_HANDLER.registerMyModsOreDictEntries(); + COMPAT_HANDLER.intermodOreDictionarySupport(); } public void postInit(FMLPostInitializationEvent e) { - registerOreDict(); - COMPAT_HANDLER.loadGregAPIRecipes(); + Utils.LOG_INFO("Cleaning up, doing postInit."); + PlayerCache.initCache(); + //Compat Handling + COMPAT_HANDLER.RemoveRecipesFromOtherMods(); + COMPAT_HANDLER.InitialiseLateHandlerThenAddRecipes(); + COMPAT_HANDLER.startLoadingGregAPIBasedRecipes(); } public void registerNetworkStuff(){ ModGUI.init(); - //NetworkRegistry.INSTANCE.registerGuiHandler(MiscUtils.instance, new BloodSteelFurnaceGuiHandler()); - } public void registerTileEntities(){ @@ -91,34 +83,6 @@ public class CommonProxy { } @SuppressWarnings("static-method") - private void registerOreDict(){ - - Utils.LOG_INFO("Registering Materials with OreDict."); - //In-house - - //tools - GT_OreDictUnificator.registerOre("craftingToolSandHammer", new ItemStack(ModItems.itemSandstoneHammer)); - GT_OreDictUnificator.registerOre("ingotBloodSteel", new ItemStack(ModItems.itemIngotBloodSteel)); - GT_OreDictUnificator.registerOre("ingotStaballoy", new ItemStack(ModItems.itemIngotStaballoy)); - - //Plates - GT_OreDictUnificator.registerOre("plateBloodSteel", new ItemStack(ModItems.itemPlateBloodSteel)); - GT_OreDictUnificator.registerOre("plateStaballoy", new ItemStack(ModItems.itemPlateStaballoy)); - - //Blocks - GT_OreDictUnificator.registerOre("blockStaballoy", new ItemStack(Item.getItemFromBlock(ModBlocks.blockStaballoy))); - OreDictionary.registerOre("blockBloodSteel", new ItemStack(ModBlocks.blockBloodSteel)); - - - for(int i=1; i<=10; i++){ - GT_OreDictUnificator.registerOre("bufferCore_"+CORE.VOLTAGES[i-1], new ItemStack(UtilsItems.getItem("miscutils:item.itemBufferCore"+i))); - } - - //Do Inter-Mod Compatibility - COMPAT_HANDLER.run(); - } - - @SuppressWarnings("static-method") public int addArmor(String armor) { return 0; } diff --git a/src/Java/miscutil/core/common/compat/COMPAT_CompactWindmills.java b/src/Java/miscutil/core/common/compat/COMPAT_CompactWindmills.java index 98988f25c0..bf4de21aca 100644 --- a/src/Java/miscutil/core/common/compat/COMPAT_CompactWindmills.java +++ b/src/Java/miscutil/core/common/compat/COMPAT_CompactWindmills.java @@ -1,20 +1,171 @@ package miscutil.core.common.compat; +import static miscutil.core.common.compat.COMPAT_HANDLER.AddRecipeQueue; import static miscutil.core.common.compat.COMPAT_HANDLER.RemoveRecipeQueue; +import miscutil.core.util.UtilsItems; +import miscutil.core.util.recipe.ShapedRecipeObject; +import net.minecraft.item.ItemStack; public class COMPAT_CompactWindmills { + //Change IC2 Upgrades + public static ItemStack kineticWind = UtilsItems.getItemStack("IC2:blockKineticGenerator", 1); + public static ItemStack shaftIron = UtilsItems.getItemStack("IC2:itemRecipePart:11", 1); + public static ItemStack cableCopper = UtilsItems.getItemStack("gregtech:gt.blockmachines:1367", 1); + public static String plateRubber ="ore:plateRubber"; + + //Machine Casings + public static ItemStack elvCasing = UtilsItems.getItemStack("gregtech:gt.blockcasings", 1); + public static ItemStack lvCasing = UtilsItems.getItemStack("gregtech:gt.blockcasings:1", 1); + public static ItemStack mvCasing = UtilsItems.getItemStack("gregtech:gt.blockcasings:2", 1); + public static ItemStack hvCasing = UtilsItems.getItemStack("gregtech:gt.blockcasings:3", 1); + public static ItemStack evCasing = UtilsItems.getItemStack("gregtech:gt.blockcasings:4", 1); + public static ItemStack ivCasing = UtilsItems.getItemStack("gregtech:gt.blockcasings:5", 1); + + //GT Transformers + public static ItemStack elvTransformer = UtilsItems.getItemStack("gregtech:gt.blockmachines:20", 1); + public static ItemStack lvTransformer = UtilsItems.getItemStack("gregtech:gt.blockmachines:21", 1); + public static ItemStack mvTransformer = UtilsItems.getItemStack("gregtech:gt.blockmachines:22", 1); + public static ItemStack hvTransformer = UtilsItems.getItemStack("gregtech:gt.blockmachines:23", 1); + public static ItemStack evTransformer = UtilsItems.getItemStack("gregtech:gt.blockmachines:24", 1); + + //Compact Windmills + public static ItemStack elvWindmill = UtilsItems.getItemStack("CompactWindmills:blockCompactWindmill", 1); + public static ItemStack lvWindmill = UtilsItems.getItemStack("CompactWindmills:blockCompactWindmill:1", 1); + public static ItemStack mvWindmill = UtilsItems.getItemStack("CompactWindmills:blockCompactWindmill:2", 1); + public static ItemStack hvWindmill = UtilsItems.getItemStack("CompactWindmills:blockCompactWindmill:3", 1); + public static ItemStack evWindmill = UtilsItems.getItemStack("CompactWindmills:blockCompactWindmill:4", 1); + + //Compact Rotors + public static ItemStack rotor2 = UtilsItems.getItemStack("CompactWindmills:WOOL", 1); + public static ItemStack rotor1 = UtilsItems.getItemStack("CompactWindmills:WOOD", 1); + public static ItemStack rotor3 = UtilsItems.getItemStack("CompactWindmills:ALLOY", 1); + public static ItemStack rotor4 = UtilsItems.getItemStack("CompactWindmills:CARBON", 1); + public static ItemStack rotor5 = UtilsItems.getItemStack("CompactWindmills:IRIDIUM", 1); + + //IC2 Rotors + public static ItemStack rotorIC1 = UtilsItems.getItemStack("IC2:itemwoodrotor", 1); + public static ItemStack rotorIC2 = UtilsItems.getItemStack("IC2:itemironrotor", 1); + public static ItemStack rotorIC3 = UtilsItems.getItemStack("IC2:itemsteelrotor", 1); + public static ItemStack rotorIC4 = UtilsItems.getItemStack("IC2:itemwcarbonrotor", 1); + public static ItemStack rotorBlade1 = UtilsItems.getItemStack("IC2:itemRecipePart:7", 1); + public static ItemStack rotorBlade2 = UtilsItems.getItemStack("IC2:itemRecipePart:8", 1); + public static ItemStack rotorBlade3 = UtilsItems.getItemStack("IC2:itemRecipePart:10", 1); + public static ItemStack rotorBlade4 = UtilsItems.getItemStack("IC2:itemRecipePart:9", 1); + + //Plates + public static String plateTier1 = "ore:plateMagnalium"; + public static String plateTier2 = "ore:plateStainlessSteel"; + public static String plateTier3 = "ore:plateTitanium"; + public static String plateTier4 = "ore:plateTungstenSteel"; + public static String plateTier5 = "ore:plateNichrome"; + public static String plateCarbon = "ore:plateAlloyCarbon"; + public static String plateAlloy = "ore:plateAlloyAdvanced"; + + //Circuits + public static String circuitTier1 = "ore:circuitGood"; + public static String circuitTier2 = "ore:circuitAdvanced"; + public static String circuitTier3 = "ore:circuitData"; + public static String circuitTier4 = "ore:circuitElite"; + public static String circuitTier5 = "ore:circuitMaster"; + + //Wooden Rotor + public static ShapedRecipeObject Wooden_Rotor = new ShapedRecipeObject( + rotorBlade1, "ore:plateAnyIron", "ore:plateAnyIron", + "ore:screwAluminium", rotorIC1, "ore:screwAluminium", + rotorBlade1, "plateAnyIron", rotorBlade1, + rotor1); + //Alloy Rotor + public static ShapedRecipeObject Alloy_Rotor = new ShapedRecipeObject( + plateAlloy, plateAlloy, plateAlloy, + plateAlloy, rotorIC3, plateAlloy, + plateAlloy,plateAlloy, plateAlloy, + rotor3); + //Carbon Rotor + public static ShapedRecipeObject Carbon_Rotor = new ShapedRecipeObject( + plateCarbon, rotorBlade4, plateCarbon, + rotorBlade4, rotor3, rotorBlade4, + plateCarbon, rotorBlade4, plateCarbon, + rotor4); + + //Kinetic Wind Turbine + public static ShapedRecipeObject KWT = new ShapedRecipeObject( + plateCarbon, shaftIron, plateCarbon, + cableCopper, mvCasing, cableCopper, + plateRubber, plateCarbon, plateRubber, + kineticWind); + + //ELV Windmill + public static ShapedRecipeObject WM_ELV = new ShapedRecipeObject( + + circuitTier1, elvTransformer, circuitTier1, + plateTier1, lvCasing, plateTier1, + plateTier1, rotor1, plateTier1, + elvWindmill); + + + //LV Windmill + public static ShapedRecipeObject WM_LV = new ShapedRecipeObject( + circuitTier2, lvTransformer, circuitTier2, + plateTier2, mvCasing, plateTier2, + plateTier2, rotor2, plateTier2, + lvWindmill); + + //MV Windmill + public static ShapedRecipeObject WM_MV = new ShapedRecipeObject( + circuitTier3, mvTransformer, circuitTier3, + plateTier3, hvCasing, plateTier3, + plateTier3, rotor3, plateTier3, + mvWindmill); + + //HV Windmill + public static ShapedRecipeObject WM_HV = new ShapedRecipeObject( + circuitTier4, hvTransformer, circuitTier4, + plateTier4, evCasing, plateTier4, + plateTier4, rotor4, plateTier4, + hvWindmill); + + //EV Windmill + public static ShapedRecipeObject WM_EV = new ShapedRecipeObject( + circuitTier5, evTransformer, circuitTier5, + plateTier5, ivCasing, plateTier5, + plateTier5, rotor5, plateTier5, + evWindmill); + 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"); + //RemoveRecipeQueue.add("CompactWindmills:WOOL"); + //RemoveRecipeQueue.add("CompactWindmills:WOOD"); + //RemoveRecipeQueue.add("CompactWindmills:ALLOY"); + //RemoveRecipeQueue.add("CompactWindmills:CARBON"); + //RemoveRecipeQueue.add("CompactWindmills:IRIDIUM"); + + //Remove Recipes + RemoveRecipeQueue.add(kineticWind); + RemoveRecipeQueue.add(elvWindmill); + RemoveRecipeQueue.add(lvWindmill); + RemoveRecipeQueue.add(mvWindmill); + RemoveRecipeQueue.add(hvWindmill); + RemoveRecipeQueue.add(evWindmill); + RemoveRecipeQueue.add(rotor1); + RemoveRecipeQueue.add(rotor3); + RemoveRecipeQueue.add(rotor4); + + //Add Recipes + AddRecipeQueue.add(Wooden_Rotor); + AddRecipeQueue.add(Alloy_Rotor); + AddRecipeQueue.add(Carbon_Rotor); + AddRecipeQueue.add(KWT); + AddRecipeQueue.add(WM_ELV); + AddRecipeQueue.add(WM_LV); + AddRecipeQueue.add(WM_MV); + AddRecipeQueue.add(WM_HV); + AddRecipeQueue.add(WM_EV); + } } diff --git a/src/Java/miscutil/core/common/compat/COMPAT_HANDLER.java b/src/Java/miscutil/core/common/compat/COMPAT_HANDLER.java index ee2ba9e230..7cac0bcef2 100644 --- a/src/Java/miscutil/core/common/compat/COMPAT_HANDLER.java +++ b/src/Java/miscutil/core/common/compat/COMPAT_HANDLER.java @@ -1,20 +1,59 @@ package miscutil.core.common.compat; import static miscutil.core.util.UtilsItems.removeCraftingRecipe; +import gregtech.api.util.GT_OreDictUnificator; import java.util.LinkedList; import java.util.Queue; -import miscutil.core.handler.registration.RECIPES_GREGTECH; +import miscutil.core.block.ModBlocks; +import miscutil.core.handler.registration.LateRegistrationHandler; +import miscutil.core.handler.registration.RegistrationHandler; +import miscutil.core.item.ModItems; +import miscutil.core.lib.CORE; import miscutil.core.lib.LoadedMods; +import miscutil.core.util.Utils; +import miscutil.core.util.UtilsItems; +import miscutil.core.util.recipe.RECIPES_GREGTECH; +import miscutil.core.util.recipe.ShapedRecipeObject; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class COMPAT_HANDLER { public static Queue<Object> RemoveRecipeQueue = new LinkedList<Object>(); - public static Queue<Object> AddRecipeQueue = new LinkedList<Object>(); + public static Queue<ShapedRecipeObject> AddRecipeQueue = new LinkedList<ShapedRecipeObject>(); + public static Boolean areInitItemsLoaded = false; + + + public static void registerMyModsOreDictEntries(){ + + Utils.LOG_INFO("Registering Materials with OreDict."); + //In-house + + //tools + GT_OreDictUnificator.registerOre("craftingToolSandHammer", new ItemStack(ModItems.itemSandstoneHammer)); + GT_OreDictUnificator.registerOre("ingotBloodSteel", new ItemStack(ModItems.itemIngotBloodSteel)); + GT_OreDictUnificator.registerOre("ingotStaballoy", new ItemStack(ModItems.itemIngotStaballoy)); + + //Plates + GT_OreDictUnificator.registerOre("plateBloodSteel", new ItemStack(ModItems.itemPlateBloodSteel)); + GT_OreDictUnificator.registerOre("plateStaballoy", new ItemStack(ModItems.itemPlateStaballoy)); + + //Blocks + GT_OreDictUnificator.registerOre("blockStaballoy", new ItemStack(Item.getItemFromBlock(ModBlocks.blockStaballoy))); + OreDictionary.registerOre("blockBloodSteel", new ItemStack(ModBlocks.blockBloodSteel)); + + + for(int i=1; i<=10; i++){ + GT_OreDictUnificator.registerOre("bufferCore_"+CORE.VOLTAGES[i-1], new ItemStack(UtilsItems.getItem("miscutils:item.itemBufferCore"+i))); + } + } + //InterMod - public static void run(){ + public static void intermodOreDictionarySupport(){ if (LoadedMods.Big_Reactors){ COMPAT_BigReactors.OreDict(); @@ -48,21 +87,21 @@ public class COMPAT_HANDLER { } } - public static void ServerStartedEvent(){ + public static void RemoveRecipesFromOtherMods(){ //Removal of Recipes for(Object item : RemoveRecipeQueue){ removeCraftingRecipe(item); - } + } } - public static void ServerStartedEvent_RECIPES(){ - //Remoal Recipes - for(Object item : AddRecipeQueue){ - removeCraftingRecipe(item); - } + public static void InitialiseHandlerThenAddRecipes(){ + RegistrationHandler.run(); + } + public static void InitialiseLateHandlerThenAddRecipes(){ + LateRegistrationHandler.run(); } - public static void loadGregAPIRecipes(){ + public static void startLoadingGregAPIBasedRecipes(){ RECIPES_GREGTECH.run(); } } diff --git a/src/Java/miscutil/core/common/compat/COMPAT_IC2.java b/src/Java/miscutil/core/common/compat/COMPAT_IC2.java index 50daca16ce..fe6d516fb2 100644 --- a/src/Java/miscutil/core/common/compat/COMPAT_IC2.java +++ b/src/Java/miscutil/core/common/compat/COMPAT_IC2.java @@ -1,24 +1,37 @@ package miscutil.core.common.compat; + +import static miscutil.core.common.compat.COMPAT_HANDLER.AddRecipeQueue; import static miscutil.core.common.compat.COMPAT_HANDLER.RemoveRecipeQueue; import miscutil.core.util.UtilsItems; +import miscutil.core.util.recipe.ShapedRecipeObject; import net.minecraft.item.ItemStack; public class COMPAT_IC2 { - private static ItemStack temp_1; - private static ItemStack temp_2; + private static ItemStack itemCropnalyzer = UtilsItems.getItemStack("IC2:itemCropnalyzer", 1); + private static ItemStack itemSolarHelmet = UtilsItems.getItemStack("IC2:itemSolarHelmet", 1); private static ItemStack temp_3; private static ItemStack temp_4; private static ItemStack temp_5; + public static ShapedRecipeObject Cropnalyzer = new ShapedRecipeObject( + "ore:cableGt02Copper", "ore:cableGt02Copper", null, + "minecraft:redstone", "ore:blockGlass", "minecraft:redstone", + "minecraft:redstone", "ore:circuitBasic", "minecraft:redstone", + itemCropnalyzer); + public static ShapedRecipeObject SolarHelmet = new ShapedRecipeObject( + "ore:plateIron", "ore:plateIron", "ore:plateIron", + "ore:plateIron", "gregtech:gt.metaitem.01:32750", "ore:plateIron", + "ore:craftingWireCopper", "ore:craftingWireCopper", "ore:craftingWireCopper", + itemSolarHelmet); public static void OreDict(){ //Get ItemStacks for results - temp_1 = UtilsItems.getItemStack("IC2:itemCropnalyzer", 1); - temp_2 = UtilsItems.getItemStack("IC2:itemSolarHelmet", 1); + /*itemCropnalyzer = UtilsItems.getItemStack("IC2:itemCropnalyzer", 1); + itemSolarHelmet = UtilsItems.getItemStack("IC2:itemSolarHelmet", 1); */ run(); } @@ -32,17 +45,11 @@ public class COMPAT_IC2 { RemoveRecipeQueue.add("IC2:itemCable:6"); RemoveRecipeQueue.add("IC2:itemCable:10"); RemoveRecipeQueue.add("IC2:itemCable:13"); + RemoveRecipeQueue.add(itemCropnalyzer); + RemoveRecipeQueue.add(itemSolarHelmet); - 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); + AddRecipeQueue.add(Cropnalyzer); + AddRecipeQueue.add(SolarHelmet); } } diff --git a/src/Java/miscutil/core/gui/machine/GUI_NHG.java b/src/Java/miscutil/core/gui/machine/GUI_NHG.java index 632e9e29ac..b536157a49 100644 --- a/src/Java/miscutil/core/gui/machine/GUI_NHG.java +++ b/src/Java/miscutil/core/gui/machine/GUI_NHG.java @@ -45,5 +45,6 @@ public class GUI_NHG extends GuiContainer fontRendererObj.drawString(I18n.format(te.getInventoryName()), (xSize / 2) - (fontRendererObj.getStringWidth(I18n.format(te.getInventoryName())) / 2), 6, 4210752, false); //fontRendererObj.drawString(I18n.format(inventory.getInventoryName()), 8, ySize - 96 + 2, 4210752); fontRendererObj.drawString(I18n.format("CoreTemp:"+te.getCoreTemp()+"K"), 8, ySize - 96 + 2, 4210752); + fontRendererObj.drawString(I18n.format("Progress:"+te.getProgress()+"ticks"), 80, ySize - 96 + 2, 4210752); } }
\ No newline at end of file diff --git a/src/Java/miscutil/core/handler/registration/LateRegistrationHandler.java b/src/Java/miscutil/core/handler/registration/LateRegistrationHandler.java new file mode 100644 index 0000000000..7c6396b338 --- /dev/null +++ b/src/Java/miscutil/core/handler/registration/LateRegistrationHandler.java @@ -0,0 +1,28 @@ +package miscutil.core.handler.registration; + +import miscutil.core.common.compat.COMPAT_HANDLER; +import miscutil.core.util.Utils; +import miscutil.core.util.recipe.ShapedRecipeObject; + +public class LateRegistrationHandler { + + public static int recipesSuccess = 0; + public static int recipesFailed = 0; + + public static void run(){ + init(); + } + + private final static void init(){ + for(ShapedRecipeObject item : COMPAT_HANDLER.AddRecipeQueue){ + item.buildRecipe(); + } + try { + Thread.sleep(10); + } catch (InterruptedException e) { + Utils.LOG_INFO(e.toString()); + } + Utils.LOG_INFO("Loaded: "+recipesSuccess+" Failed: "+recipesFailed); + } + +} diff --git a/src/Java/miscutil/core/handler/registration/RegistrationHandler.java b/src/Java/miscutil/core/handler/registration/RegistrationHandler.java index 9f100117fc..7bb3d33f84 100644 --- a/src/Java/miscutil/core/handler/registration/RegistrationHandler.java +++ b/src/Java/miscutil/core/handler/registration/RegistrationHandler.java @@ -1,6 +1,10 @@ package miscutil.core.handler.registration; +import miscutil.core.common.compat.COMPAT_HANDLER; import miscutil.core.util.Utils; +import miscutil.core.util.recipe.RECIPES_Machines; +import miscutil.core.util.recipe.RECIPES_Shapeless; +import miscutil.core.util.recipe.RECIPES_Tools; public class RegistrationHandler { @@ -15,14 +19,10 @@ public class RegistrationHandler { RECIPES_Tools.RECIPES_LOAD(); RECIPES_Machines.RECIPES_LOAD(); RECIPES_Shapeless.RECIPES_LOAD(); - //RECIPES_MTWRAPPER.run(); - try { - Thread.sleep(10); - } catch (InterruptedException e) { - Utils.LOG_INFO(e.toString()); - } + //RECIPES_MTWRAPPER.run(); Utils.LOG_INFO("Loaded: "+recipesSuccess+" Failed: "+recipesFailed); - Utils.LOG_INFO("MT Loaded: "+RECIPES_MTWRAPPER.MT_RECIPES_LOADED+" MT Failed: "+RECIPES_MTWRAPPER.MT_RECIPES_FAILED); + COMPAT_HANDLER.areInitItemsLoaded = true; + //Utils.LOG_INFO("MT Loaded: "+RECIPES_MTWRAPPER.MT_RECIPES_LOADED+" MT Failed: "+RECIPES_MTWRAPPER.MT_RECIPES_FAILED); } } diff --git a/src/Java/miscutil/core/item/general/fuelrods/FuelRod_Base.java b/src/Java/miscutil/core/item/general/fuelrods/FuelRod_Base.java index 9a3de2c08f..56fe598a3b 100644 --- a/src/Java/miscutil/core/item/general/fuelrods/FuelRod_Base.java +++ b/src/Java/miscutil/core/item/general/fuelrods/FuelRod_Base.java @@ -196,9 +196,11 @@ public class FuelRod_Base extends Item{ itemStack.stackTagCompound.setInteger("fuelRemaining", fuelRemaining); itemStack.stackTagCompound.setInteger("maximumFuel", maximumFuel); itemStack.stackTagCompound.setFloat("heat", heat); - itemStack.stackTagCompound.setFloat("maxHeat", maxHeat); + itemStack.stackTagCompound.setFloat("maxHeat", getMaxHeat()); itemStack.stackTagCompound.setString("fuelType", fuelType); } + + } diff --git a/src/Java/miscutil/core/lib/LoadedMods.java b/src/Java/miscutil/core/lib/LoadedMods.java index 896108052c..efce85b11a 100644 --- a/src/Java/miscutil/core/lib/LoadedMods.java +++ b/src/Java/miscutil/core/lib/LoadedMods.java @@ -1,6 +1,7 @@ package miscutil.core.lib; import miscutil.core.util.Utils; +import miscutil.gregtech.common.GregtechRecipeAdder; import cpw.mods.fml.common.Loader; public class LoadedMods { @@ -24,10 +25,19 @@ public class LoadedMods { private static int totalMods; + @SuppressWarnings("deprecation") public static void checkLoaded(){ Utils.LOG_INFO("Looking for optional mod prereqs."); if (Loader.isModLoaded("gregtech") == true ){ Gregtech = true; + if (Gregtech){ + try { + CORE.sRecipeAdder = CORE.RA = new GregtechRecipeAdder(); + } catch (NullPointerException e){ + + } + } + totalMods++; } if (Loader.isModLoaded("EnderIO") == true){ diff --git a/src/Java/miscutil/core/tileentities/TileEntityNHG.java b/src/Java/miscutil/core/tileentities/TileEntityNHG.java index b145bd2742..6775fe515b 100644 --- a/src/Java/miscutil/core/tileentities/TileEntityNHG.java +++ b/src/Java/miscutil/core/tileentities/TileEntityNHG.java @@ -15,7 +15,8 @@ public class TileEntityNHG extends TileEntity implements IInventory { private ItemStack[] items = new ItemStack[19]; //18 private int progress = 1; - private int maxProgress = 100; + private int maxProgress = 1800; + private int heatCycleProgress = 120; public float coreTemp; public float maxTemp = 10000; private boolean fuelrod_1 = false; @@ -41,44 +42,67 @@ public class TileEntityNHG extends TileEntity implements IInventory return coreTemp; } + public int getProgress(){ + return progress; + } + public boolean isValidFuelRod(ItemStack input){ - if (input != null){ - if (input.getItem() instanceof FuelRod_Base){ - int fuelRodFuelLevel = getRodFuelValue(input); - float fuelRodHeatLevel = getRodHeatValue(input); - if((fuelRodHeatLevel <= 0 || fuelRodHeatLevel == 0) && fuelRodFuelLevel > 0){ - - if(fuelRodFuelLevel <= 0 || fuelRodFuelLevel == 0){ - return false; + if(!this.worldObj.isRemote){ + if (input != null){ + if (input.getItem() instanceof FuelRod_Base){ + int fuelRodFuelLevel = getRodFuelValue(input); + float fuelRodHeatLevel = getRodHeatValue(input); + Utils.LOG_WARNING("Fuel Left: "+fuelRodFuelLevel+" Current Temp: "+fuelRodHeatLevel); + return true; + //return input.stackTagCompound.getInteger("code"); + } + } + + } + return false; + } + + public ItemStack doFuelRodHeatDamage(ItemStack input){ + if(!this.worldObj.isRemote){ + if (input != null){ + if (isValidFuelRod(input)){ + int fuelRodFuelLevel = getRodFuelValue(input); + float fuelRodHeatLevel = getRodHeatValue(input); + if((fuelRodHeatLevel <= 0 || fuelRodHeatLevel == 0) && fuelRodFuelLevel > 0){ + + if(fuelRodFuelLevel <= 0 || fuelRodFuelLevel == 0){ + return null; + } + else if(fuelRodFuelLevel >= 5){ + int tempInt=fuelRodFuelLevel; + float tempFloat=fuelRodHeatLevel; + ItemStack output = input.copy(); + output.stackTagCompound.setInteger("fuelRemaining", tempInt-5); + output.stackTagCompound.setFloat("heat", tempFloat+5); + + return output; + } + else { + return null; + } } - else if(fuelRodFuelLevel >= 5){ - input.stackTagCompound.setInteger("fuelRemaining", fuelRodFuelLevel-5); - input.stackTagCompound.setFloat("heat", fuelRodHeatLevel+5); - return true; + else if(fuelRodHeatLevel >= 5 && fuelRodFuelLevel == 0){ + input.stackTagCompound.setInteger("heat", -5); + return input; } else { - return false; + return null; } } - else if(fuelRodHeatLevel >= 5 && fuelRodFuelLevel == 0){ - input.stackTagCompound.setInteger("heat", -5); - return true; - } - else { - return false; - } - //return input.stackTagCompound.getInteger("code"); } } - - - return false; + return null; } public float getRodHeatValue(ItemStack value){ if (value != null){ if (value.stackTagCompound.getFloat("heat") != 0){ - return value.stackTagCompound.getFloat("heat"); + return value.stackTagCompound.getFloat("heat"); } return 0f; } @@ -88,7 +112,7 @@ public class TileEntityNHG extends TileEntity implements IInventory public int getRodFuelValue(ItemStack value){ if (value != null){ if (value.stackTagCompound.getInteger("fuelRemaining") != 0){ - return value.stackTagCompound.getInteger("fuelRemaining"); + return value.stackTagCompound.getInteger("fuelRemaining"); } return 0; } @@ -96,100 +120,118 @@ public class TileEntityNHG extends TileEntity implements IInventory } public void checkFuelRods(){ - for (int i = 0; i < getSizeInventory(); i++){ - if (items[i] != null){ - if (items[i].getItem() instanceof FuelRod_Base){ - - - ItemStack fuelRodStack = getStackInSlot(i); - isValidFuelRod(fuelRodStack); - - - if (i == 0){ - fuelrod_1 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 1){ - fuelrod_2 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 2){ - fuelrod_3 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 3){ - fuelrod_4 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 4){ - fuelrod_5 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 5){ - fuelrod_6 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 6){ - fuelrod_7 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 7){ - fuelrod_8 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 8){ - fuelrod_9 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 9){ - fuelrod_10 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 10){ - fuelrod_11 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 11){ - fuelrod_12 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 12){ - fuelrod_13 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 13){ - fuelrod_14 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 14){ - fuelrod_15 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 15){ - fuelrod_16 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 16){ - fuelrod_17 = true; - isValidFuelRod(fuelRodStack); - } - else if (i == 17){ - fuelrod_18 = true; - isValidFuelRod(fuelRodStack); + + if(!this.worldObj.isRemote){ + for (int i = 0; i < getSizeInventory(); i++){ + if (items[i] != null){ + if (items[i].getItem() instanceof FuelRod_Base){ + ItemStack fuelRodStack = getStackInSlot(i); + //setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + if (i == 0){ + fuelrod_1 = true; + FuelRod_Base x = (FuelRod_Base) fuelRodStack.getItem(); + x.addHeat(5); + x.addFuel(-5); + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 1){ + fuelrod_2 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 2){ + fuelrod_3 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 3){ + fuelrod_4 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 4){ + fuelrod_5 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 5){ + fuelrod_6 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 6){ + fuelrod_7 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 7){ + fuelrod_8 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 8){ + fuelrod_9 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 9){ + fuelrod_10 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 10){ + fuelrod_11 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 11){ + fuelrod_12 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 12){ + fuelrod_13 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 13){ + fuelrod_14 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 14){ + fuelrod_15 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 15){ + fuelrod_16 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 16){ + fuelrod_17 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + else if (i == 17){ + fuelrod_18 = true; + setInventorySlotContents(i, doFuelRodHeatDamage(fuelRodStack)); + } + + } - - } } - } + } } public boolean calculateHeat(){ - if (!fuelrod_1 || !fuelrod_2 || !fuelrod_3 || !fuelrod_4 || !fuelrod_5 || !fuelrod_6 || !fuelrod_7 || !fuelrod_8 || !fuelrod_9 || !fuelrod_10 || !fuelrod_11 || !fuelrod_12 || !fuelrod_13 || !fuelrod_14 || !fuelrod_15 || !fuelrod_16 || !fuelrod_17 || !fuelrod_18){ + /*if (!fuelrod_1 || !fuelrod_2 || !fuelrod_3 || !fuelrod_4 || !fuelrod_5 || !fuelrod_6 || !fuelrod_7 || !fuelrod_8 || !fuelrod_9 || !fuelrod_10 || !fuelrod_11 || !fuelrod_12 || !fuelrod_13 || !fuelrod_14 || !fuelrod_15 || !fuelrod_16 || !fuelrod_17 || !fuelrod_18){ coreTemp = 0; } + else {*/ + if(!this.worldObj.isRemote){ + for (int i = 0; i < getSizeInventory(); i++){ + if (items[i] != null){ + if (items[i].getItem() instanceof FuelRod_Base){ + ItemStack fuelRodStack = getStackInSlot(i); + //if (fuelRodStack.stackTagCompound.getFloat("heat") != 0){ + doFuelRodHeatDamage(fuelRodStack); + coreTemp = coreTemp+fuelRodStack.stackTagCompound.getFloat("heat"); + return true; + //} + } + } + } + } + //} @@ -333,47 +375,73 @@ public class TileEntityNHG extends TileEntity implements IInventory private ItemStack neutrons; @Override - public void updateEntity() { - if(++progress >= maxProgress){ - Utils.LOG_WARNING("Updating Entity "+this.getInventoryName()); - if (items[18] != null){ - if(neutrons == null){ + public void updateEntity() { + + if(!this.worldObj.isRemote){ + + if(progress >= heatCycleProgress){ + //Utils.LOG_SPECIFIC_WARNING("NFHG", "Updating Entity "+this.getBlockType().getUnlocalizedName(), 376); + if (Utils.divideXintoY(heatCycleProgress, maxProgress)){ + Utils.LOG_SPECIFIC_WARNING("NFHG", "Updating Entity "+this.getBlockType().getUnlocalizedName(), 378); + calculateHeat(); + heatCycleProgress=0; + } + } + + if(++progress >= maxProgress){ + + + Utils.LOG_SPECIFIC_WARNING("NFHG", "Updating Entity "+this.getBlockType().getUnlocalizedName(), 338); + if (items[18] != null){ + ItemStack checkOutput = getStackInSlot(18); + if(neutrons == null){ + neutrons = new ItemStack(ModItems.itemHeliumBlob, 1); + if (checkOutput == null){ + Utils.LOG_WARNING("ItemStack in Output slot is definitely null, making a new ItemStack."); + setInventorySlotContents(18, neutrons); + progress = 0; + markDirty(); + } + else { + checkOutput.stackSize++; + Utils.LOG_WARNING("Found an ItemStack to increase the size of. Current size is "+neutrons.stackSize); + + progress = 0; + markDirty(); + } + } + else if(checkOutput.getItem() == ModItems.itemHeliumBlob && checkOutput.stackSize < 64){ + checkOutput.stackSize++; + Utils.LOG_WARNING("Found an ItemStack to increase size of. Current size is "+checkOutput.stackSize); + progress = 0; + markDirty(); + } + else if(checkOutput.getItem() == ModItems.itemHeliumBlob && checkOutput.stackSize == 64){ + Utils.LOG_WARNING("Output stack is full."); + progress = 0; + markDirty(); + } + } + else if (items[18] == null){ + Utils.LOG_WARNING("ItemStack in Output slot is null"); neutrons = new ItemStack(ModItems.itemHeliumBlob, 1); ItemStack checkOutput = getStackInSlot(18); if (checkOutput == null){ Utils.LOG_WARNING("ItemStack in Output slot is definitely null, making a new ItemStack."); setInventorySlotContents(18, neutrons); - checkFuelRods(); + progress = 0; + markDirty(); } else { Utils.LOG_WARNING("Found an ItemStack to increase the size of."); - checkOutput.stackSize++; - checkFuelRods(); + checkOutput.stackSize++; + progress = 0; + markDirty(); } } - else if(neutrons.getItem() == ModItems.itemHeliumBlob && neutrons.stackSize < 64){ - Utils.LOG_WARNING("Found an ItemStack to increase size of."); - neutrons.stackSize++; - checkFuelRods(); - progress = 0; - } + checkFuelRods(); } - else if (items[18] == null){ - Utils.LOG_WARNING("ItemStack in Output slot is null"); - neutrons = new ItemStack(ModItems.itemHeliumBlob, 1); - ItemStack checkOutput = getStackInSlot(18); - if (checkOutput == null){ - Utils.LOG_WARNING("ItemStack in Output slot is definitely null, making a new ItemStack."); - setInventorySlotContents(18, neutrons); - checkFuelRods(); - } - else { - Utils.LOG_WARNING("Found an ItemStack to increase the size of."); - checkOutput.stackSize++; - checkFuelRods(); - } - } - markDirty(); + progress++; } } @@ -381,11 +449,13 @@ public class TileEntityNHG extends TileEntity implements IInventory { this.neutrons = ItemStack.loadItemStackFromNBT(tag.getCompoundTag("Neutrons")); this.progress = tag.getInteger("Progress"); + this.coreTemp = tag.getFloat("coreTemp"); } public void writeCustomNBT(NBTTagCompound tag) { tag.setInteger("Progress", this.progress); + tag.setFloat("coreTemp", this.coreTemp); if(neutrons != null) { NBTTagCompound produce = new NBTTagCompound(); neutrons.writeToNBT(produce); diff --git a/src/Java/miscutil/core/util/Utils.java b/src/Java/miscutil/core/util/Utils.java index 37a4b5bb56..78ea160bac 100644 --- a/src/Java/miscutil/core/util/Utils.java +++ b/src/Java/miscutil/core/util/Utils.java @@ -115,6 +115,13 @@ public class Utils { FMLLog.severe("MiscUtils: "+s); } } + + //Developer Logger + public static void LOG_SPECIFIC_WARNING(String whatToLog, String msg, int line){ + if (CORE.DEBUG){ + FMLLog.warning("MiscUtils |"+line+"| "+whatToLog+" | "+msg); + } + } public static void paintBox(Graphics g, int MinA, int MinB, int MaxA, int MaxB){ g.drawRect (MinA, MinB, MaxA, MaxB); @@ -196,6 +203,15 @@ public class Utils { public static double decimalRoundingToWholes(double d) { return 5*(Math.round(d/5)); } + + //Can be divided by + public static boolean divideXintoY(int x, int y){ + if ((x % y) == 0) + { + return true; + } + return false; + } //Converts temps for GT machines, then rounds for ease of use. public static float celsiusToKelvin(int i){ diff --git a/src/Java/miscutil/core/util/UtilsItems.java b/src/Java/miscutil/core/util/UtilsItems.java index d939f2a9bc..8587deabd0 100644 --- a/src/Java/miscutil/core/util/UtilsItems.java +++ b/src/Java/miscutil/core/util/UtilsItems.java @@ -6,6 +6,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import miscutil.core.common.compat.COMPAT_HANDLER; +import miscutil.core.handler.registration.LateRegistrationHandler; import miscutil.core.handler.registration.RegistrationHandler; import miscutil.core.lib.CORE; import miscutil.core.lib.LoadedMods; @@ -30,11 +32,7 @@ public class UtilsItems { Utils.LOG_WARNING("Found: "+em1.toString()); if (em1 != null){ em = em1; - } - else { - em = null; - return null; - } + } if (em != null ){ ItemStack returnStack = new ItemStack(em,1); return returnStack; @@ -211,7 +209,12 @@ public class UtilsItems { try { GameRegistry.addRecipe(new ShapedOreRecipe(resultItem.copy(), (Object[]) validSlots.toArray())); Utils.LOG_INFO("Success! Added a recipe for "+resultItem.toString()); - RegistrationHandler.recipesSuccess++; + if (!COMPAT_HANDLER.areInitItemsLoaded){ + RegistrationHandler.recipesSuccess++; + } + else { + LateRegistrationHandler.recipesSuccess++; + } } catch(NullPointerException | ClassCastException k){ k.getMessage(); @@ -219,7 +222,12 @@ public class UtilsItems { k.printStackTrace(); k.getLocalizedMessage(); Utils.LOG_WARNING("@@@: Invalid Recipe detected for: "+resultItem.getUnlocalizedName()); - RegistrationHandler.recipesFailed++; + if (!COMPAT_HANDLER.areInitItemsLoaded){ + RegistrationHandler.recipesFailed++; + } + else { + LateRegistrationHandler.recipesFailed++; + } } } @@ -251,19 +259,22 @@ public class UtilsItems { Utils.LOG_ERROR("_______"); - String lineOne = a+b+c; Utils.LOG_ERROR("|"+a+"|"+b+"|"+c+"|"); Utils.LOG_ERROR("_______"); - String lineTwo = d+e+f; Utils.LOG_ERROR("|"+d+"|"+e+"|"+f+"|"); Utils.LOG_ERROR("_______"); - String lineThree = g+h+i; Utils.LOG_ERROR("|"+g+"|"+h+"|"+i+"|"); Utils.LOG_ERROR("_______"); - validSlots.add(0, lineOne); - validSlots.add(1, lineTwo); - validSlots.add(2, lineThree); + validSlots.add(0, a); + validSlots.add(1, b); + validSlots.add(2, c); + validSlots.add(3, d); + validSlots.add(4, e); + validSlots.add(5, f); + validSlots.add(6, g); + validSlots.add(7, h); + validSlots.add(8, i); try { //GameRegistry.addRecipe(new ShapelessOreRecipe(Output, outputAmount), (Object[]) validSlots.toArray()); @@ -393,6 +404,7 @@ public class UtilsItems { } public static void recipeBuilder(Object[] array, ItemStack outPut) { + Utils.LOG_SPECIFIC_WARNING("object Array - recipeBuilder", "Attempting to build a recipe using an object array as an input, splitting it, then running the normal recipeBuilder() method.", 396); Object a=null; Object b=null; Object c=null; @@ -402,7 +414,7 @@ public class UtilsItems { Object g=null; Object h=null; Object i=null; - for(int z =0; z < array.length; z++){ + for(int z =0; z <= array.length; z++){ array[z].toString(); switch(z) { diff --git a/src/Java/miscutil/core/handler/registration/RECIPES_GREGTECH.java b/src/Java/miscutil/core/util/recipe/RECIPES_GREGTECH.java index 75ea04e1e6..b6f6e778de 100644 --- a/src/Java/miscutil/core/handler/registration/RECIPES_GREGTECH.java +++ b/src/Java/miscutil/core/util/recipe/RECIPES_GREGTECH.java @@ -1,4 +1,4 @@ -package miscutil.core.handler.registration; +package miscutil.core.util.recipe; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; diff --git a/src/Java/miscutil/core/handler/registration/RECIPES_MTWRAPPER.java b/src/Java/miscutil/core/util/recipe/RECIPES_MTWRAPPER.java index 16ba377b07..e30b3f1c04 100644 --- a/src/Java/miscutil/core/handler/registration/RECIPES_MTWRAPPER.java +++ b/src/Java/miscutil/core/util/recipe/RECIPES_MTWRAPPER.java @@ -1,4 +1,4 @@ -package miscutil.core.handler.registration; +package miscutil.core.util.recipe; import java.util.ArrayList; diff --git a/src/Java/miscutil/core/handler/registration/RECIPES_Machines.java b/src/Java/miscutil/core/util/recipe/RECIPES_Machines.java index b51e41b5ab..9d324e69f0 100644 --- a/src/Java/miscutil/core/handler/registration/RECIPES_Machines.java +++ b/src/Java/miscutil/core/util/recipe/RECIPES_Machines.java @@ -1,4 +1,4 @@ -package miscutil.core.handler.registration; +package miscutil.core.util.recipe; import gregtech.api.enums.ItemList; import miscutil.core.lib.LoadedMods; diff --git a/src/Java/miscutil/core/handler/registration/RECIPES_Shapeless.java b/src/Java/miscutil/core/util/recipe/RECIPES_Shapeless.java index 34eefffea3..5b09f9a3a0 100644 --- a/src/Java/miscutil/core/handler/registration/RECIPES_Shapeless.java +++ b/src/Java/miscutil/core/util/recipe/RECIPES_Shapeless.java @@ -1,4 +1,4 @@ -package miscutil.core.handler.registration; +package miscutil.core.util.recipe; import gregtech.api.enums.ItemList; import miscutil.core.lib.LoadedMods; diff --git a/src/Java/miscutil/core/handler/registration/RECIPES_Tools.java b/src/Java/miscutil/core/util/recipe/RECIPES_Tools.java index 3e9d36c0ab..c4db32fc3f 100644 --- a/src/Java/miscutil/core/handler/registration/RECIPES_Tools.java +++ b/src/Java/miscutil/core/util/recipe/RECIPES_Tools.java @@ -1,4 +1,4 @@ -package miscutil.core.handler.registration; +package miscutil.core.util.recipe; import miscutil.core.item.ModItems; import miscutil.core.util.UtilsItems; diff --git a/src/Java/miscutil/core/util/recipe/ShapedRecipeObject.java b/src/Java/miscutil/core/util/recipe/ShapedRecipeObject.java new file mode 100644 index 0000000000..5a7bd9719f --- /dev/null +++ b/src/Java/miscutil/core/util/recipe/ShapedRecipeObject.java @@ -0,0 +1,43 @@ +package miscutil.core.util.recipe; + +import miscutil.core.util.Utils; +import miscutil.core.util.UtilsItems; +import net.minecraft.item.ItemStack; + +public class ShapedRecipeObject { + + public Object object_A; + public Object object_B; + public Object object_C; + public Object object_D; + public Object object_E; + public Object object_F; + public Object object_G; + public Object object_H; + public Object object_I; + public ItemStack object_OUTPUT; + + public ShapedRecipeObject( + Object input_A,Object input_B,Object input_C, + Object input_D,Object input_E,Object input_F, + Object input_G,Object input_H,Object input_I, + Object input_Output){ + this.object_A = input_A; + this.object_B = input_B; + this.object_C = input_C; + this.object_D = input_D; + this.object_E = input_E; + this.object_F = input_F; + this.object_G = input_G; + this.object_H = input_H; + this.object_I = input_I; + ItemStack output_A = (ItemStack) input_Output; + this.object_OUTPUT = output_A; + Utils.LOG_SPECIFIC_WARNING("ShapedRecipeObject", "New object created.", 36); + } + + public void buildRecipe(){ + UtilsItems.recipeBuilder(object_A, object_B, object_C, object_D, object_E, object_F, object_G, object_H, object_I, object_OUTPUT); + } + +} |