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 /src/Java/miscutil/core/common | |
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.
Diffstat (limited to 'src/Java/miscutil/core/common')
4 files changed, 254 insertions, 93 deletions
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); } } |