From 0e631830d7408710e0ced3dfc35f6fa3f3756773 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 4 Apr 2016 17:32:59 +1000 Subject: Added in an Iron Blast furnace, to give an alternative to the Bronze one. Takes 5-6x longer, Uses 3x fuel, but is far cheaper to make. --- src/Java/miscutil/core/block/ModBlocks.java | 6 + src/Java/miscutil/core/common/CommonProxy.java | 6 +- .../handler/registration/RECIPES_Machines.java | 26 +- .../core/handler/registration/RECIPES_Tools.java | 177 ++++++++++ .../handler/registration/RegistrationHandler.java | 25 ++ src/Java/miscutil/core/item/tool/Loader_TOOLS.java | 177 ---------- src/Java/miscutil/core/util/ItemUtils.java | 83 ++--- .../miscutil/gregtech/enums/GregtechItemList.java | 14 +- .../gregtech/gui/CONTAINER_IronBlastFurnace.java | 31 ++ .../gregtech/gui/GUI_IronBlastFurnace.java | 30 ++ .../init/machines/GregtechSteamCondenser.java | 22 +- .../implementations/GregtechMetaCasingBlocks.java | 87 +++++ .../GregtechMetaTileEntityIronBlastFurnace.java | 369 +++++++++++++++++++++ 13 files changed, 819 insertions(+), 234 deletions(-) create mode 100644 src/Java/miscutil/core/handler/registration/RECIPES_Tools.java create mode 100644 src/Java/miscutil/core/handler/registration/RegistrationHandler.java delete mode 100644 src/Java/miscutil/core/item/tool/Loader_TOOLS.java create mode 100644 src/Java/miscutil/gregtech/gui/CONTAINER_IronBlastFurnace.java create mode 100644 src/Java/miscutil/gregtech/gui/GUI_IronBlastFurnace.java create mode 100644 src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaCasingBlocks.java create mode 100644 src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaTileEntityIronBlastFurnace.java (limited to 'src/Java') diff --git a/src/Java/miscutil/core/block/ModBlocks.java b/src/Java/miscutil/core/block/ModBlocks.java index 991b35ad14..b2abe86b7d 100644 --- a/src/Java/miscutil/core/block/ModBlocks.java +++ b/src/Java/miscutil/core/block/ModBlocks.java @@ -3,6 +3,7 @@ package miscutil.core.block; import miscutil.core.block.antigrief.TowerDevice; import miscutil.core.creativetabs.AddToCreativeTab; import miscutil.core.util.Utils; +import miscutil.gregtech.metatileentity.implementations.GregtechMetaCasingBlocks; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import cpw.mods.fml.common.registry.GameRegistry; @@ -12,8 +13,10 @@ public final class ModBlocks { //Blood Steel public static Block blockBloodSteel; public static Block blockStaballoy; + //public static Block blockIronPlatedBricks; public static Block blockToolBuilder; public static Block blockGriefSaver; + public static Block blockCasingsMisc; //public static Block blockBloodSteelChest; @@ -70,6 +73,9 @@ public final class ModBlocks { //Staballoy Block GameRegistry.registerBlock(blockStaballoy = new BasicBlock("blockStaballoy", Material.iron), "blockStaballoy"); + + //Casing Blocks + blockCasingsMisc = new GregtechMetaCasingBlocks(); //Blood Steel Block //Name, Material, Hardness, Resistance, Light level, Tool, tool level, sound //GameRegistry.registerBlock(blockToolBuilder = new AdvancedBlock("blockToolBuilder", Material.circuits, TMCreativeTabs.tabMachines, 1F, 5F, 0F, "pickaxe", 1, Block.soundTypeWood), "blockToolBuilder"); diff --git a/src/Java/miscutil/core/common/CommonProxy.java b/src/Java/miscutil/core/common/CommonProxy.java index 32dc0c8c11..a4a08c90c8 100644 --- a/src/Java/miscutil/core/common/CommonProxy.java +++ b/src/Java/miscutil/core/common/CommonProxy.java @@ -5,9 +5,8 @@ import static miscutil.core.lib.LoadedMods.Gregtech; import gregtech.api.util.GT_OreDictUnificator; import miscutil.core.block.ModBlocks; import miscutil.core.gui.ModGUI; -import miscutil.core.handler.registration.RECIPES_Machines; +import miscutil.core.handler.registration.RegistrationHandler; import miscutil.core.item.ModItems; -import miscutil.core.item.tool.Loader_TOOLS; import miscutil.core.lib.CORE; import miscutil.core.lib.LoadedMods; import miscutil.core.tileentities.ModTileEntities; @@ -67,8 +66,7 @@ public class CommonProxy { public void init(FMLInitializationEvent e) { - Loader_TOOLS.run(); - RECIPES_Machines.RECIPES_LOAD(); + RegistrationHandler.run(); } diff --git a/src/Java/miscutil/core/handler/registration/RECIPES_Machines.java b/src/Java/miscutil/core/handler/registration/RECIPES_Machines.java index 2c6f6505c9..d2108b7d7b 100644 --- a/src/Java/miscutil/core/handler/registration/RECIPES_Machines.java +++ b/src/Java/miscutil/core/handler/registration/RECIPES_Machines.java @@ -11,6 +11,8 @@ public class RECIPES_Machines { //Outputs //static ItemStack RECIPE_BufferCore_ULV = new ItemStack(GregtechEnergyBuffer.itemBufferCore); static ItemStack RECIPE_SteamCondenser = GregtechItemList.Condensor_MAX.get(1); + static ItemStack RECIPE_IronBlastFurnace = GregtechItemList.Machine_Iron_BlastFurnace.get(1); + static ItemStack RECIPE_IronPlatedBricks = GregtechItemList.Casing_IronPlatedBricks.get(1); static ItemStack RECIPE_Buffer_ULV = GregtechItemList.Energy_Buffer_1by1_ULV.get(1); static ItemStack RECIPE_Buffer_LV = GregtechItemList.Energy_Buffer_1by1_LV.get(1); static ItemStack RECIPE_Buffer_MV = GregtechItemList.Energy_Buffer_1by1_MV.get(1); @@ -21,6 +23,7 @@ public class RECIPES_Machines { static ItemStack RECIPE_Buffer_ZPM = GregtechItemList.Energy_Buffer_1by1_ZPM.get(1); static ItemStack RECIPE_Buffer_UV = GregtechItemList.Energy_Buffer_1by1_UV.get(1); static ItemStack RECIPE_Buffer_MAX = GregtechItemList.Energy_Buffer_1by1_MAX.get(1); + //Buffer Cores static ItemStack RECIPE_BufferCore_ULV = Utils.getItemStack("miscutils:item.itemBufferCore1", 1); @@ -102,6 +105,10 @@ public class RECIPES_Machines { //gregtech:gt.metaitem.01:32611 static ItemStack pump_MV = ItemList.Electric_Pump_MV.get(1); + //Lava Boiler + static ItemStack boiler_Coal = ItemList.Machine_Bronze_Boiler.get(1); + static ItemStack blockBricks = Utils.getItemStack("minecraft:brick_block", 1); + //Batteries static String batteryBasic = "batteryBasic"; static String batteryAdvanced = "batteryAdvanced"; @@ -152,7 +159,7 @@ public class RECIPES_Machines { circuitData, batteryElite, circuitData, plateTier5, cableTier5, plateTier5, RECIPE_BufferCore_EV); - + ItemUtils.recipeBuilder( plateTier6, cableTier6, plateTier6, circuitData, batteryElite, circuitElite, @@ -253,13 +260,28 @@ public class RECIPES_Machines { RECIPE_Buffer_MAX); - + //Steam Condenser ItemUtils.recipeBuilder( pipeLargeCopper, pipeHugeSteel, pipeLargeCopper, plateEnergeticAlloy, pump_MV, plateEnergeticAlloy, plateEnergeticAlloy, pipeLargeCopper, plateEnergeticAlloy, RECIPE_SteamCondenser); + //Iron BF + ItemUtils.recipeBuilder( + "plateDoubleAnyIron", "craftingFurnace", "plateDoubleAnyIron", + boiler_Coal, machineCasing_ULV, boiler_Coal, + "plateDoubleAnyIron", "bucketLava", "plateDoubleAnyIron", + RECIPE_IronBlastFurnace); + + //Iron plated Bricks + ItemUtils.recipeBuilder( + "plateAnyIron", RECIPES_Tools.craftingToolHardHammer, "plateAnyIron", + "plateAnyIron", blockBricks, "plateAnyIron", + "plateAnyIron", RECIPES_Tools.craftingToolWrench, "plateAnyIron", + RECIPE_IronPlatedBricks); + + Utils.LOG_INFO("Done loading recipes for the Various machine blocks."); diff --git a/src/Java/miscutil/core/handler/registration/RECIPES_Tools.java b/src/Java/miscutil/core/handler/registration/RECIPES_Tools.java new file mode 100644 index 0000000000..b40327fceb --- /dev/null +++ b/src/Java/miscutil/core/handler/registration/RECIPES_Tools.java @@ -0,0 +1,177 @@ +package miscutil.core.handler.registration; + +import miscutil.core.item.ModItems; +import miscutil.core.util.ItemUtils; +import miscutil.core.util.Utils; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +public class RECIPES_Tools { + + //Outputs + static ItemStack RECIPE_StaballoyPickaxe = new ItemStack(ModItems.itemStaballoyPickaxe); + static ItemStack RECIPE_StaballoyAxe = new ItemStack(ModItems.itemStaballoyAxe); + static ItemStack RECIPE_SandstoneHammer = new ItemStack(ModItems.itemSandstoneHammer); + static ItemStack RECIPE_StaballoyIngot = new ItemStack(ModItems.itemIngotStaballoy); + static ItemStack RECIPE_SandStone = new ItemStack(Blocks.sandstone, 2); + static ItemStack RECIPE_Sand = new ItemStack(Blocks.sand, 4); + + static ItemStack RECIPE_DivisionSigil = new ItemStack(Utils.getItem("ExtraUtilities:divisionSigil")); + + //MC Items + static Item Apple = Items.apple; + + //MC Blocks + static Block CobbleStone = Blocks.cobblestone; + static Block Dirt = Blocks.dirt; + static Block Sand = Blocks.sand; + static Block Gravel = Blocks.gravel; + static Block Sandstone = Blocks.sandstone; + + //null + static String empty = " "; + + //Batteries + static String batteryBasic = "batteryBasic"; + static String batteryAdvanced = "batteryAdvanced"; + static String batteryElite = "batteryElite"; + static String batteryMaster = "batteryMaster"; + static String batteryUltimate = "batteryUltimate"; + + //Circuits + static String circuitPrimitive = "circuitPrimitive"; + static String circuitBasic = "circuitBasic"; + static String circuitGood = "circuitGood"; + static String circuitAdvanced = "circuitAdvanced"; + static String circuitElite = "circuitElite"; + static String circuitMaster = "circuitMaster"; + static String circuitUltimate = "circuitUltimate"; + + //Cables + static String cableGt01Electrum = "cableGt01Electrum"; + static String cableGt02Electrum = "cableGt02Electrum"; + static String cableGt01RedstoneAlloy = "cableGt01RedstoneAlloy"; + static String cableGt02RedstoneAlloy = "cableGt02RedstoneAlloy"; + static String cableGt01Copper = "cableGt01Copper"; + static String cableGt02Copper = "cableGt02Copper"; + static String cableGt01AnnealedCopper = "cableGt01AnnealedCopper"; + static String cableGt02AnnealedCopper = "cableGt02AnnealedCopper"; + + //Rods + static String stickStaballoy= "stickStaballoy"; + static String stickTitanium= "stickTitanium"; + static String stickIron= "stickIron"; + static String stickGold= "stickGold"; + static String stickSilver= "stickSilver"; + static String stickSteel= "stickSteel"; + static String stickBronze= "stickBronze"; + static String stickTungsten= "stickTungsten"; + static String stickRedAlloy= "stickRedAlloy"; + static String stickInvar= "stickInvar"; + static String stickElectrum= "stickElectrum"; + static String stickElectricalSteel= "stickElectricalSteel"; + + //Plates + static String plateStaballoy= "plateStaballoy"; + static String plateTitanium= "plateTitanium"; + static String plateIron= "plateIron"; + static String plateGold= "plateGold"; + static String plateSilver= "plateSilver"; + static String plateSteel= "plateSteel"; + static String plateBronze= "plateBronze"; + static String plateTungsten= "plateTungsten"; + static String plateRedAlloy= "plateRedAlloy"; + static String plateInvar= "plateInvar"; + static String plateElectrum= "plateElectrum"; + static String plateElectricalSteel= "plateElectricalSteel"; + + //Ingots + static String ingotStaballoy= "ingotStaballoy"; + static String ingotTitanium= "ingotTitanium"; + static String ingotIron= "ingotIron"; + static String ingotGold= "ingotGold"; + static String ingotSilver= "ingotSilver"; + static String ingotSteel= "ingotSteel"; + static String ingotBronze= "ingotBronze"; + static String ingotTungsten= "ingotTungsten"; + static String ingotRedAlloy= "ingotRedAlloy"; + static String ingotInvar= "ingotInvar"; + static String ingotElectrum= "ingotElectrum"; + static String ingotUranium= "ingotUranium"; + static String ingotElectricalSteel= "ingotElectricalSteel"; + + //Crafting Tools + static String craftingToolHardHammer = "craftingToolHardHammer"; + static String craftingToolSoftHammer = "craftingToolSoftHammer"; + static String craftingToolFile = "craftingToolFile"; + static String craftingToolSaw = "craftingToolSaw"; + static String craftingToolPickaxe = "craftingToolPickaxe"; + static String craftingToolWrench = "craftingToolWrench"; + static String craftingToolCrowbar = "craftingToolCrowbar"; + static String craftingToolKnife = "craftingToolKnife"; + static String craftingToolScrewdriver = "craftingToolScrewdriver"; + + static ItemStack sandHammer = new ItemStack (ModItems.itemSandstoneHammer, 1, OreDictionary.WILDCARD_VALUE); + static String craftingToolSandHammer = "craftingToolSandHammer"; + + public static final void RECIPES_LOAD(){ + + //plateStaballoy = new ItemStack(ModItems.itemPlateStaballoy); + //ingotStaballoy = new ItemStack(ModItems.itemIngotStaballoy); + + //Pickaxes + run(); + + } + + private static void run(){ + //Staballoy Pickaxe + ItemUtils.recipeBuilder( + plateStaballoy, plateStaballoy, ingotStaballoy, + craftingToolFile, stickTungsten, craftingToolHardHammer, + craftingToolWrench, stickTungsten, craftingToolHardHammer, + RECIPE_StaballoyPickaxe); + + //Staballoy Axe + ItemUtils.recipeBuilder( + plateStaballoy, ingotStaballoy, craftingToolHardHammer, + plateStaballoy, stickTungsten, craftingToolHardHammer, + craftingToolFile, stickTungsten, craftingToolWrench, + RECIPE_StaballoyAxe); + + //Cobble to Sand + ItemUtils.recipeBuilder( + CobbleStone, CobbleStone, CobbleStone, + CobbleStone, sandHammer, CobbleStone, + CobbleStone, CobbleStone, CobbleStone, + RECIPE_Sand); + + //Sand to Sandstone + ItemUtils.recipeBuilder( + Sand, Sand, Sand, + Sand, sandHammer, Sand, + Sand, Sand, Sand, + RECIPE_SandStone); + + //Sandstone Hammer + ItemUtils.recipeBuilder( + plateElectrum, ingotElectrum, plateElectrum, + craftingToolScrewdriver, stickBronze, craftingToolHardHammer, + null, stickSteel, null, + RECIPE_SandstoneHammer); + + //Division Sigil + ItemUtils.recipeBuilder( + "plateNetherStar", "gemIridium", "plateNetherStar", + "plateIridium", craftingToolHardHammer, "plateIridium", + "plateNetherStar", "gemIridium", "plateNetherStar", + RECIPE_DivisionSigil); + + + } + +} diff --git a/src/Java/miscutil/core/handler/registration/RegistrationHandler.java b/src/Java/miscutil/core/handler/registration/RegistrationHandler.java new file mode 100644 index 0000000000..8c66bb1cc9 --- /dev/null +++ b/src/Java/miscutil/core/handler/registration/RegistrationHandler.java @@ -0,0 +1,25 @@ +package miscutil.core.handler.registration; + +import miscutil.core.util.Utils; + +public class RegistrationHandler { + + public static int recipesSuccess = 0; + public static int recipesFailed = 0; + + public static void run(){ + init(); + } + + private final static void init(){ + RECIPES_Tools.RECIPES_LOAD(); + RECIPES_Machines.RECIPES_LOAD(); + 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/item/tool/Loader_TOOLS.java b/src/Java/miscutil/core/item/tool/Loader_TOOLS.java deleted file mode 100644 index bd917df75f..0000000000 --- a/src/Java/miscutil/core/item/tool/Loader_TOOLS.java +++ /dev/null @@ -1,177 +0,0 @@ -package miscutil.core.item.tool; - -import miscutil.core.item.ModItems; -import miscutil.core.util.ItemUtils; -import miscutil.core.util.Utils; -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -public class Loader_TOOLS { - - //Outputs - static ItemStack RECIPE_StaballoyPickaxe = new ItemStack(ModItems.itemStaballoyPickaxe); - static ItemStack RECIPE_StaballoyAxe = new ItemStack(ModItems.itemStaballoyAxe); - static ItemStack RECIPE_SandstoneHammer = new ItemStack(ModItems.itemSandstoneHammer); - static ItemStack RECIPE_StaballoyIngot = new ItemStack(ModItems.itemIngotStaballoy); - static ItemStack RECIPE_SandStone = new ItemStack(Blocks.sandstone, 2); - static ItemStack RECIPE_Sand = new ItemStack(Blocks.sand, 4); - - static ItemStack RECIPE_DivisionSigil = new ItemStack(Utils.getItem("ExtraUtilities:divisionSigil")); - - //MC Items - static Item Apple = Items.apple; - - //MC Blocks - static Block CobbleStone = Blocks.cobblestone; - static Block Dirt = Blocks.dirt; - static Block Sand = Blocks.sand; - static Block Gravel = Blocks.gravel; - static Block Sandstone = Blocks.sandstone; - - //null - static String empty = " "; - - //Batteries - static String batteryBasic = "batteryBasic"; - static String batteryAdvanced = "batteryAdvanced"; - static String batteryElite = "batteryElite"; - static String batteryMaster = "batteryMaster"; - static String batteryUltimate = "batteryUltimate"; - - //Circuits - static String circuitPrimitive = "circuitPrimitive"; - static String circuitBasic = "circuitBasic"; - static String circuitGood = "circuitGood"; - static String circuitAdvanced = "circuitAdvanced"; - static String circuitElite = "circuitElite"; - static String circuitMaster = "circuitMaster"; - static String circuitUltimate = "circuitUltimate"; - - //Cables - static String cableGt01Electrum = "cableGt01Electrum"; - static String cableGt02Electrum = "cableGt02Electrum"; - static String cableGt01RedstoneAlloy = "cableGt01RedstoneAlloy"; - static String cableGt02RedstoneAlloy = "cableGt02RedstoneAlloy"; - static String cableGt01Copper = "cableGt01Copper"; - static String cableGt02Copper = "cableGt02Copper"; - static String cableGt01AnnealedCopper = "cableGt01AnnealedCopper"; - static String cableGt02AnnealedCopper = "cableGt02AnnealedCopper"; - - //Rods - static String stickStaballoy= "stickStaballoy"; - static String stickTitanium= "stickTitanium"; - static String stickIron= "stickIron"; - static String stickGold= "stickGold"; - static String stickSilver= "stickSilver"; - static String stickSteel= "stickSteel"; - static String stickBronze= "stickBronze"; - static String stickTungsten= "stickTungsten"; - static String stickRedAlloy= "stickRedAlloy"; - static String stickInvar= "stickInvar"; - static String stickElectrum= "stickElectrum"; - static String stickElectricalSteel= "stickElectricalSteel"; - - //Plates - static String plateStaballoy= "plateStaballoy"; - static String plateTitanium= "plateTitanium"; - static String plateIron= "plateIron"; - static String plateGold= "plateGold"; - static String plateSilver= "plateSilver"; - static String plateSteel= "plateSteel"; - static String plateBronze= "plateBronze"; - static String plateTungsten= "plateTungsten"; - static String plateRedAlloy= "plateRedAlloy"; - static String plateInvar= "plateInvar"; - static String plateElectrum= "plateElectrum"; - static String plateElectricalSteel= "plateElectricalSteel"; - - //Ingots - static String ingotStaballoy= "ingotStaballoy"; - static String ingotTitanium= "ingotTitanium"; - static String ingotIron= "ingotIron"; - static String ingotGold= "ingotGold"; - static String ingotSilver= "ingotSilver"; - static String ingotSteel= "ingotSteel"; - static String ingotBronze= "ingotBronze"; - static String ingotTungsten= "ingotTungsten"; - static String ingotRedAlloy= "ingotRedAlloy"; - static String ingotInvar= "ingotInvar"; - static String ingotElectrum= "ingotElectrum"; - static String ingotUranium= "ingotUranium"; - static String ingotElectricalSteel= "ingotElectricalSteel"; - - //Crafting Tools - static String craftingToolHardHammer = "craftingToolHardHammer"; - static String craftingToolSoftHammer = "craftingToolSoftHammer"; - static String craftingToolFile = "craftingToolFile"; - static String craftingToolSaw = "craftingToolSaw"; - static String craftingToolPickaxe = "craftingToolPickaxe"; - static String craftingToolWrench = "craftingToolWrench"; - static String craftingToolCrowbar = "craftingToolCrowbar"; - static String craftingToolKnife = "craftingToolKnife"; - static String craftingToolScrewdriver = "craftingToolScrewdriver"; - - static ItemStack sandHammer = new ItemStack (ModItems.itemSandstoneHammer, 1, OreDictionary.WILDCARD_VALUE); - static String craftingToolSandHammer = "craftingToolSandHammer"; - - public static final void run(){ - - //plateStaballoy = new ItemStack(ModItems.itemPlateStaballoy); - //ingotStaballoy = new ItemStack(ModItems.itemIngotStaballoy); - - //Pickaxes - registerPickaxes(); - - } - - private static void registerPickaxes(){ - //Staballoy Pickaxe - ItemUtils.recipeBuilder( - plateStaballoy, plateStaballoy, ingotStaballoy, - craftingToolFile, stickTungsten, craftingToolHardHammer, - craftingToolWrench, stickTungsten, craftingToolHardHammer, - RECIPE_StaballoyPickaxe); - - //Staballoy Axe - ItemUtils.recipeBuilder( - plateStaballoy, ingotStaballoy, craftingToolHardHammer, - plateStaballoy, stickTungsten, craftingToolHardHammer, - craftingToolFile, stickTungsten, craftingToolWrench, - RECIPE_StaballoyAxe); - - //Cobble to Sand - ItemUtils.recipeBuilder( - CobbleStone, CobbleStone, CobbleStone, - CobbleStone, sandHammer, CobbleStone, - CobbleStone, CobbleStone, CobbleStone, - RECIPE_Sand); - - //Sand to Sandstone - ItemUtils.recipeBuilder( - Sand, Sand, Sand, - Sand, sandHammer, Sand, - Sand, Sand, Sand, - RECIPE_SandStone); - - //Sandstone Hammer - ItemUtils.recipeBuilder( - plateElectrum, ingotElectrum, plateElectrum, - craftingToolScrewdriver, stickBronze, craftingToolHardHammer, - null, stickSteel, null, - RECIPE_SandstoneHammer); - - //Division Sigil - ItemUtils.recipeBuilder( - "plateNetherStar", "gemIridium", "plateNetherStar", - "plateIridium", craftingToolHardHammer, "plateIridium", - "plateNetherStar", "gemIridium", "plateNetherStar", - RECIPE_DivisionSigil); - - - } - -} diff --git a/src/Java/miscutil/core/util/ItemUtils.java b/src/Java/miscutil/core/util/ItemUtils.java index e2c07aa104..f6403f8d2e 100644 --- a/src/Java/miscutil/core/util/ItemUtils.java +++ b/src/Java/miscutil/core/util/ItemUtils.java @@ -2,6 +2,7 @@ package miscutil.core.util; import java.util.ArrayList; +import miscutil.core.handler.registration.RegistrationHandler; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.ShapedOreRecipe; @@ -12,35 +13,35 @@ public class ItemUtils { public static ItemStack getItemStackOfItem(Boolean modToCheck, String mod_itemname_meta){ if (modToCheck){ try{ - Item em = null; - - Item em1 = Utils.getItem(mod_itemname_meta); - Utils.LOG_WARNING("Found: "+em1.toString()); - if (!em1.equals(null)){ - em = em1; - } - else { - em = null; + Item em = null; + + Item em1 = Utils.getItem(mod_itemname_meta); + Utils.LOG_WARNING("Found: "+em1.toString()); + if (!em1.equals(null)){ + em = em1; + } + else { + em = null; + return null; + } + if (!em.equals(null)){ + ItemStack returnStack = new ItemStack(em,1,16); + return returnStack; + } + Utils.LOG_WARNING(mod_itemname_meta+" not found."); return null; - } - if (!em.equals(null)){ - ItemStack returnStack = new ItemStack(em,1,16); - return returnStack; - } - Utils.LOG_WARNING(mod_itemname_meta+" not found."); - return null; } catch (NullPointerException e) { Utils.LOG_ERROR(mod_itemname_meta+" not found. [NULL]"); return null; - } + } } return 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){ - + ArrayList validSlots = new ArrayList(); - + //, String lineFirst, String lineSecond, String lineThird Utils.LOG_INFO("Trying to add a recipe for "+resultItem.toString()); String a,b,c,d,e,f,g,h,i; @@ -63,8 +64,8 @@ public class ItemUtils { Utils.LOG_WARNING(h); if (slot_9 == null){ i = " ";} else { i = "9";validSlots.add('9');validSlots.add(slot_9);} Utils.LOG_WARNING(i); - - + + Utils.LOG_ERROR("_______"); String lineOne = a+b+c; Utils.LOG_ERROR("|"+a+"|"+b+"|"+c+"|"); @@ -75,7 +76,7 @@ public class ItemUtils { 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); @@ -111,46 +112,52 @@ public class ItemUtils { } } } - + try { - Utils.LOG_WARNING("validSlots to array: "+validSlots.toArray()); + /*Utils.LOG_WARNING("validSlots to array: "+validSlots.toArray()); Object[] validSlotsArray = (Object[]) validSlots.toArray(); - + for(int j = 0; j < validSlotsArray.length; j++) { 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++; + /*try { try { try { - try { - GameRegistry.addRecipe(new ShapedOreRecipe(resultItem.copy(), (Object[]) validSlots.toArray())); - Utils.LOG_INFO("Success! Added a recipe for "+resultItem.toString()); - } - catch (ClassCastException r){ + //Code + } + catch (NullPointerException | ClassCastException r){ Utils.LOG_WARNING("@@@: Invalid Recipe detected for: "+resultItem.getUnlocalizedName()); + RegistrationHandler.recipesFailed++; r.printStackTrace(); - System.exit(1); + //System.exit(1); } } catch (NullPointerException o){ - + Utils.LOG_WARNING("@@@: Invalid Recipe detected for: "+resultItem.getUnlocalizedName()); o.printStackTrace(); - System.exit(1); + RegistrationHandler.recipesFailed++; + //System.exit(1); } } catch (ClassCastException r){ Utils.LOG_WARNING("@@@: Casting to ObjectArray Failed :("); - } + }*/ } - catch(NullPointerException k){ + catch(NullPointerException | ClassCastException k){ k.getMessage(); k.getClass(); k.printStackTrace(); k.getLocalizedMessage(); Utils.LOG_WARNING("@@@: Invalid Recipe detected for: "+resultItem.getUnlocalizedName()); - System.exit(1); + RegistrationHandler.recipesFailed++; + //System.exit(1); } } - + } diff --git a/src/Java/miscutil/gregtech/enums/GregtechItemList.java b/src/Java/miscutil/gregtech/enums/GregtechItemList.java index 1e980a3c5d..f64dfda734 100644 --- a/src/Java/miscutil/gregtech/enums/GregtechItemList.java +++ b/src/Java/miscutil/gregtech/enums/GregtechItemList.java @@ -29,14 +29,24 @@ public enum GregtechItemList implements GregtechItemContainer { Credit_Greg_Osmium, Credit_Greg_Naquadah, Energy_Buffer_CREATIVE, - //Energy Buffes + + //Energy Buffers Energy_Buffer_1by1_ULV, Energy_Buffer_1by1_LV, Energy_Buffer_1by1_MV, Energy_Buffer_1by1_HV, Energy_Buffer_1by1_EV, Energy_Buffer_1by1_IV, Energy_Buffer_1by1_LuV, Energy_Buffer_1by1_ZPM, Energy_Buffer_1by1_UV, Energy_Buffer_1by1_MAX, + //Cobble Generators Cobble_Generator_ULV, Cobble_Generator_LV, Cobble_Generator_MV, Cobble_Generator_HV, Cobble_Generator_EV, Cobble_Generator_IV, Cobble_Generator_LuV, Cobble_Generator_ZPM, Cobble_Generator_UV, Cobble_Generator_MAX, + //The max Steam condenser Condensor_MAX, + //Player owned Safes - GT_Safe_ULV, GT_Safe_LV, GT_Safe_MV, GT_Safe_HV, GT_Safe_EV, GT_Safe_IV, GT_Safe_LuV, GT_Safe_ZPM, GT_Safe_UV, GT_Safe_MAX; + GT_Safe_ULV, GT_Safe_LV, GT_Safe_MV, GT_Safe_HV, GT_Safe_EV, GT_Safe_IV, GT_Safe_LuV, GT_Safe_ZPM, GT_Safe_UV, GT_Safe_MAX, + + //IronBlastFurnace Machine_Bronze_BlastFurnace + Machine_Iron_BlastFurnace, Casing_IronPlatedBricks, + + //Machine Casings + Casing_Shielding; public static final GregtechItemList[] DYE_ONLY_ITEMS = { diff --git a/src/Java/miscutil/gregtech/gui/CONTAINER_IronBlastFurnace.java b/src/Java/miscutil/gregtech/gui/CONTAINER_IronBlastFurnace.java new file mode 100644 index 0000000000..a094f764cc --- /dev/null +++ b/src/Java/miscutil/gregtech/gui/CONTAINER_IronBlastFurnace.java @@ -0,0 +1,31 @@ +package miscutil.gregtech.gui; + +import gregtech.api.gui.GT_ContainerMetaTile_Machine; +import gregtech.api.gui.GT_Slot_Output; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +public class CONTAINER_IronBlastFurnace extends GT_ContainerMetaTile_Machine { + public CONTAINER_IronBlastFurnace(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + + @Override + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new Slot(this.mTileEntity, 0, 34, 16)); + addSlotToContainer(new Slot(this.mTileEntity, 1, 34, 34)); + addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 2, 86, 25)); + addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 3, 104, 25)); + } + + @Override + public int getSlotCount() { + return 4; + } + + @Override + public int getShiftClickSlotCount() { + return 2; + } +} diff --git a/src/Java/miscutil/gregtech/gui/GUI_IronBlastFurnace.java b/src/Java/miscutil/gregtech/gui/GUI_IronBlastFurnace.java new file mode 100644 index 0000000000..6ed6b3c907 --- /dev/null +++ b/src/Java/miscutil/gregtech/gui/GUI_IronBlastFurnace.java @@ -0,0 +1,30 @@ +package miscutil.gregtech.gui; + +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import miscutil.core.lib.CORE; +import net.minecraft.entity.player.InventoryPlayer; + +public class GUI_IronBlastFurnace + extends GT_GUIContainerMetaTile_Machine { + public GUI_IronBlastFurnace(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(new CONTAINER_IronBlastFurnace(aInventoryPlayer, aTileEntity), CORE.MODID+":textures/gui/IronBlastFurnace.png"); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + this.fontRendererObj.drawString("Iron Blast Furnace", 8, 4, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + super.drawGuiContainerBackgroundLayer(par1, par2, par3); + int x = (this.width - this.xSize) / 2; + int y = (this.height - this.ySize) / 2; + drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize); + if ((this.mContainer != null) && + (this.mContainer.mProgressTime > 0)) { + drawTexturedModalRect(x + 58, y + 28, 176, 0, Math.max(0, Math.min(20, (this.mContainer.mProgressTime > 0 ? 1 : 0) + this.mContainer.mProgressTime * 20 / (this.mContainer.mMaxProgressTime < 1 ? 1 : this.mContainer.mMaxProgressTime))), 11); + } + } +} diff --git a/src/Java/miscutil/gregtech/init/machines/GregtechSteamCondenser.java b/src/Java/miscutil/gregtech/init/machines/GregtechSteamCondenser.java index 79abce9fce..11af61a95b 100644 --- a/src/Java/miscutil/gregtech/init/machines/GregtechSteamCondenser.java +++ b/src/Java/miscutil/gregtech/init/machines/GregtechSteamCondenser.java @@ -1,17 +1,14 @@ package miscutil.gregtech.init.machines; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_ModHandler; import miscutil.core.util.Utils; import miscutil.gregtech.enums.GregtechItemList; import miscutil.gregtech.metatileentity.implementations.GregtechMetaCondensor; +import miscutil.gregtech.metatileentity.implementations.GregtechMetaTileEntityIronBlastFurnace; public class GregtechSteamCondenser { - + public static void run() { @@ -26,11 +23,14 @@ public class GregtechSteamCondenser { //Steam Condensors GregtechItemList.Condensor_MAX.set(new GregtechMetaCondensor(769, "steamcondensor.01.tier.single", "Steam Condensor").getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(GregtechItemList.Condensor_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'),OrePrefixes.wireGt04.get(Materials.ElectricalSteel),Character.valueOf('T'), ItemList.Electric_Pump_MV }); - /*Steam Condensors - GregtechItemList.Condensor_MAX.set(new GregtechMetaCondensorII(780, "steamcondensor.01.tier.single", "Steam CondensorII").getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(GregtechItemList.Condensor_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'),OrePrefixes.wireGt04.get(Materials.Nickel),Character.valueOf('T'), ItemList.Pump_MV }); - */ - + //GT_ModHandler.addCraftingRecipe(GregtechItemList.Condensor_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WTW", "WMW", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('W'),OrePrefixes.wireGt04.get(Materials.ElectricalSteel),Character.valueOf('T'), ItemList.Electric_Pump_MV }); + + + GregtechItemList.Machine_Iron_BlastFurnace.set(new GregtechMetaTileEntityIronBlastFurnace(768, "ironmachine.blastfurnace", "Iron Plated Blast Furnace").getStackForm(1L)); + + //ItemUtils.recipeBuilder(slot_1, slot_2, slot_3, slot_4, slot_5, slot_6, slot_7, slot_8, slot_9, resultItem); + + //GT_ModHandler.addCraftingRecipe(ItemList.Machine_Bronze_BlastFurnace.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PFP", "FwF", "PFP", Character.valueOf('P'), OrePrefixes.plate.get(Materials.Bronze), Character.valueOf('F'), OreDictNames.craftingFurnace}); + } } diff --git a/src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaCasingBlocks.java b/src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaCasingBlocks.java new file mode 100644 index 0000000000..72e084b747 --- /dev/null +++ b/src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaCasingBlocks.java @@ -0,0 +1,87 @@ +package miscutil.gregtech.metatileentity.implementations; + +import gregtech.api.enums.Textures; +import gregtech.api.objects.GT_CopiedBlockTexture; +import gregtech.api.util.GT_LanguageManager; +import gregtech.common.blocks.GT_Block_Casings_Abstract; +import gregtech.common.blocks.GT_Item_Casings1; +import gregtech.common.blocks.GT_Material_Casings; +import miscutil.gregtech.enums.GregtechItemList; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class GregtechMetaCasingBlocks +extends GT_Block_Casings_Abstract { + public GregtechMetaCasingBlocks() { + super(GT_Item_Casings1.class, "miscutils.blockcasings", GT_Material_Casings.INSTANCE); + for (byte i = 0; i < 16; i = (byte) (i + 1)) { + Textures.BlockIcons.CASING_BLOCKS[i] = new GT_CopiedBlockTexture(this, 6, i); + } + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "UNUSED"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "LV Machine Casing"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "MV Machine Casing"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "HV Machine Casing"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "EV Machine Casing"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "IV Machine Casing"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "LuV Machine Casing"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "ZPM Machine Casing"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "UV Machine Casing"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "MAX Machine Casing"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Iron Plated Bricks"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Heat Proof Machine Casing"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cupronickel Coil Block"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Kanthal Coil Block"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Nichrome Coil Block"); + //GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Superconducting Coil Block"); + GregtechItemList.Casing_Shielding.set(new ItemStack(this, 1, 0)); + /* ItemList.Casing_LV.set(new ItemStack(this, 1, 1)); + ItemList.Casing_MV.set(new ItemStack(this, 1, 2)); + ItemList.Casing_HV.set(new ItemStack(this, 1, 3)); + ItemList.Casing_EV.set(new ItemStack(this, 1, 4)); + ItemList.Casing_IV.set(new ItemStack(this, 1, 5)); + ItemList.Casing_LuV.set(new ItemStack(this, 1, 6)); + ItemList.Casing_ZPM.set(new ItemStack(this, 1, 7)); + ItemList.Casing_UV.set(new ItemStack(this, 1, 8)); + ItemList.Casing_MAX.set(new ItemStack(this, 1, 9));*/ + GregtechItemList.Casing_IronPlatedBricks.set(new ItemStack(this, 1, 10)); + /*ItemList.Casing_HeatProof.set(new ItemStack(this, 1, 11)); + ItemList.Casing_Coil_Cupronickel.set(new ItemStack(this, 1, 12)); + ItemList.Casing_Coil_Kanthal.set(new ItemStack(this, 1, 13)); + ItemList.Casing_Coil_Nichrome.set(new ItemStack(this, 1, 14)); + ItemList.Casing_Coil_Superconductor.set(new ItemStack(this, 1, 15));*/ + } + + public IIcon getIcon(int aSide, int aMeta) { + if ((aMeta >= 0) && (aMeta < 16)) { + switch (aMeta) { + case 1: + return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); + case 10: + return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); + case 11: + return Textures.BlockIcons.MACHINE_HEATPROOFCASING.getIcon(); + case 12: + return Textures.BlockIcons.MACHINE_COIL_CUPRONICKEL.getIcon(); + case 13: + return Textures.BlockIcons.MACHINE_COIL_KANTHAL.getIcon(); + case 14: + return Textures.BlockIcons.MACHINE_COIL_NICHROME.getIcon(); + case 15: + return Textures.BlockIcons.MACHINE_COIL_SUPERCONDUCTOR.getIcon(); + } + if (aSide == 0) { + return Textures.BlockIcons.MACHINECASINGS_BOTTOM[aMeta].getIcon(); + } + if (aSide == 1) { + return Textures.BlockIcons.MACHINECASINGS_TOP[aMeta].getIcon(); + } + return Textures.BlockIcons.MACHINECASINGS_SIDE[aMeta].getIcon(); + } + return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); + } + + public int colorMultiplier(IBlockAccess aWorld, int aX, int aY, int aZ) { + return aWorld.getBlockMetadata(aX, aY, aZ) > 9 ? super.colorMultiplier(aWorld, aX, aY, aZ) : gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[0] << 16 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[1] << 8 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[2]; + } +} diff --git a/src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaTileEntityIronBlastFurnace.java b/src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaTileEntityIronBlastFurnace.java new file mode 100644 index 0000000000..c5f2e479c1 --- /dev/null +++ b/src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaTileEntityIronBlastFurnace.java @@ -0,0 +1,369 @@ +package miscutil.gregtech.metatileentity.implementations; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.objects.GT_ItemStack; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import miscutil.core.block.ModBlocks; +import miscutil.gregtech.gui.CONTAINER_IronBlastFurnace; +import miscutil.gregtech.gui.GUI_IronBlastFurnace; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; + +public class GregtechMetaTileEntityIronBlastFurnace + extends MetaTileEntity { + private static final ITexture[] FACING_SIDE = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL)}; + private static final ITexture[] FACING_FRONT = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT)}; + private static final ITexture[] FACING_ACTIVE = {new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_FRONT_ACTIVE)}; + public int mMaxProgresstime = 0; + public int mUpdate = 30; + public int mProgresstime = 0; + public boolean mMachine = false; + public ItemStack mOutputItem1; + public ItemStack mOutputItem2; + + public GregtechMetaTileEntityIronBlastFurnace(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional, 4); + } + + public GregtechMetaTileEntityIronBlastFurnace(String aName) { + super(aName, 4); + } + + @Override + public String[] getDescription() { + return new String[]{"Skip the Bronze age, Get some Steel!", "Multiblock: 3x3x4 hollow with opening on top", "32 Iron Plated Bricks required"}; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + if (aSide == aFacing) { + return aActive ? FACING_ACTIVE : FACING_FRONT; + } + return FACING_SIDE; + } + + @Override + public boolean isSteampowered() { + return false; + } + + @Override + public boolean isElectric() { + return false; + } + + @Override + public boolean isPneumatic() { + return false; + } + + @Override + public boolean isEnetInput() { + return false; + } + + @Override + public boolean isEnetOutput() { + return false; + } + + @Override + public boolean isInputFacing(byte aSide) { + return false; + } + + @Override + public boolean isOutputFacing(byte aSide) { + return false; + } + + @Override + public boolean isTeleporterCompatible() { + return false; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return aFacing > 1; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) { + return true; + } + + @Override + public int getProgresstime() { + return this.mProgresstime; + } + + @Override + public int maxProgresstime() { + return this.mMaxProgresstime; + } + + @Override + public int increaseProgress(int aProgress) { + this.mProgresstime += aProgress; + return this.mMaxProgresstime - this.mProgresstime; + } + + @Override + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { + return (GregTech_API.getCoverBehavior(aCoverID.toStack()).isSimpleCover()) && (super.allowCoverOnSide(aSide, aCoverID)); + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GregtechMetaTileEntityIronBlastFurnace(this.mName); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + aNBT.setInteger("mProgresstime", this.mProgresstime); + aNBT.setInteger("mMaxProgresstime", this.mMaxProgresstime); + if (this.mOutputItem1 != null) { + NBTTagCompound tNBT = new NBTTagCompound(); + this.mOutputItem1.writeToNBT(tNBT); + aNBT.setTag("mOutputItem1", tNBT); + } + if (this.mOutputItem2 != null) { + NBTTagCompound tNBT = new NBTTagCompound(); + this.mOutputItem2.writeToNBT(tNBT); + aNBT.setTag("mOutputItem2", tNBT); + } + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + this.mUpdate = 30; + this.mProgresstime = aNBT.getInteger("mProgresstime"); + this.mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); + this.mOutputItem1 = GT_Utility.loadItem(aNBT, "mOutputItem1"); + this.mOutputItem2 = GT_Utility.loadItem(aNBT, "mOutputItem2"); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) { + return true; + } + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new CONTAINER_IronBlastFurnace(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GUI_IronBlastFurnace(aPlayerInventory, aBaseMetaTileEntity); + } + + private boolean checkMachine() { + int xDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetX; + int zDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetZ; + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 4; j++) { //This is height + for (int k = -1; k < 2; k++) { + if ((xDir + i != 0) || (j != 0) || (zDir + k != 0)) { + if ((i != 0) || (j == -1) || (k != 0)) { + if ((getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k) != ModBlocks.blockCasingsMisc) || (getBaseMetaTileEntity().getMetaIDOffset(xDir + i, j, zDir + k) != 10)) { + return false; + } + } else if ((!GT_Utility.arrayContains(getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k), new Object[]{Blocks.lava, Blocks.flowing_lava, null})) && (!getBaseMetaTileEntity().getAirOffset(xDir + i, j, zDir + k))) { + return false; + } + } + } + } + } + return true; + } + + @Override + public void onMachineBlockUpdate() { + this.mUpdate = 30; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + if ((aBaseMetaTileEntity.isClientSide()) && + (aBaseMetaTileEntity.isActive())) { + aBaseMetaTileEntity.getWorld().spawnParticle("largesmoke", aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1) + Math.random(), aBaseMetaTileEntity.getOffsetY(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1) + Math.random(), 0.0D, 0.3D, 0.0D); + } + if (aBaseMetaTileEntity.isServerSide()) { + if (this.mUpdate-- == 0) { + this.mMachine = checkMachine(); + } + if (this.mMachine) { + if (this.mMaxProgresstime > 0) { + if (++this.mProgresstime >= this.mMaxProgresstime) { + addOutputProducts(); + this.mOutputItem1 = null; + this.mOutputItem2 = null; + this.mProgresstime = 0; + this.mMaxProgresstime = 0; + try { + // GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "steel"); + } catch (Exception e) { + } + } + } else if (aBaseMetaTileEntity.isAllowedToWork()) { + checkRecipe(); + } + } + aBaseMetaTileEntity.setActive((this.mMaxProgresstime > 0) && (this.mMachine)); + if (aBaseMetaTileEntity.isActive()) { + if (aBaseMetaTileEntity.getAir(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1))) { + aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.lava, 1, 2); + this.mUpdate = 1; + } + if (aBaseMetaTileEntity.getAir(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1))) { + aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.lava, 1, 2); + this.mUpdate = 1; + } + } else { + if (aBaseMetaTileEntity.getBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1)) == Blocks.lava) { + aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.air, 0, 2); + this.mUpdate = 1; + } + if (aBaseMetaTileEntity.getBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1)) == Blocks.lava) { + aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1), aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1), Blocks.air, 0, 2); + this.mUpdate = 1; + } + } + } + } + + private void addOutputProducts() { + if (this.mOutputItem1 != null) { + if (this.mInventory[2] == null) { + this.mInventory[2] = GT_Utility.copy(new Object[]{this.mOutputItem1}); + } else if (GT_Utility.areStacksEqual(this.mInventory[2], this.mOutputItem1)) { + this.mInventory[2].stackSize = Math.min(this.mOutputItem1.getMaxStackSize(), this.mOutputItem1.stackSize + this.mInventory[2].stackSize); + } + } + if (this.mOutputItem2 != null) { + if (this.mInventory[3] == null) { + this.mInventory[3] = GT_Utility.copy(new Object[]{this.mOutputItem2}); + } else if (GT_Utility.areStacksEqual(this.mInventory[3], this.mOutputItem2)) { + this.mInventory[3].stackSize = Math.min(this.mOutputItem2.getMaxStackSize(), this.mOutputItem2.stackSize + this.mInventory[3].stackSize); + } + } + } + + private boolean spaceForOutput(ItemStack aStack1, ItemStack aStack2) { + if (((this.mInventory[2] == null) || (aStack1 == null) || ((this.mInventory[2].stackSize + aStack1.stackSize <= this.mInventory[2].getMaxStackSize()) && (GT_Utility.areStacksEqual(this.mInventory[2], aStack1)))) && ( + (this.mInventory[3] == null) || (aStack2 == null) || ((this.mInventory[3].stackSize + aStack2.stackSize <= this.mInventory[3].getMaxStackSize()) && (GT_Utility.areStacksEqual(this.mInventory[3], aStack2))))) { + return true; + } + return false; + } + + private boolean checkRecipe() { + if (!this.mMachine) { + return false; + } + if ((this.mInventory[0] != null) && (this.mInventory[1] != null) && (this.mInventory[0].stackSize >= 1)) { + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "dustIron")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "ingotIron"))) { + if ((this.mInventory[1].getItem() == Items.coal) && (this.mInventory[1].stackSize >= 4) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 4); + this.mMaxProgresstime = 36000; + return true; + } + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "fuelCoke")) && (this.mInventory[1].stackSize >= 2) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 2); + this.mMaxProgresstime = 4800; + return true; + } + if ((this.mInventory[0].stackSize >= 9) && ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCoal")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCharcoal"))) && (this.mInventory[1].stackSize >= 4) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 9); + getBaseMetaTileEntity().decrStackSize(1, 4); + this.mMaxProgresstime = 64800; + return true; + } + } else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "dustSteel")) { + if ((this.mInventory[1].getItem() == Items.coal) && (this.mInventory[1].stackSize >= 2) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 2); + this.mMaxProgresstime = 3600; + return true; + } + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "fuelCoke")) && (this.mInventory[1].stackSize >= 1) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 2L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 1); + this.mMaxProgresstime = 2400; + return true; + } + if ((this.mInventory[0].stackSize >= 9) && ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCoal")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCharcoal"))) && (this.mInventory[1].stackSize >= 2) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 2L)))) { + getBaseMetaTileEntity().decrStackSize(0, 9); + getBaseMetaTileEntity().decrStackSize(1, 2); + this.mMaxProgresstime = 32400; + return true; + } + } else if (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[0], "blockIron")) { + if ((this.mInventory[1].getItem() == Items.coal) && (this.mInventory[1].stackSize >= 36) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 36); + this.mMaxProgresstime = 64800; + return true; + } + if ((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "fuelCoke")) && (this.mInventory[1].stackSize >= 18) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 18); + this.mMaxProgresstime = 43200; + return true; + } + if (((GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCoal")) || (GT_OreDictUnificator.isItemStackInstanceOf(this.mInventory[1], "blockCharcoal"))) && (this.mInventory[1].stackSize >= 4) && (spaceForOutput(this.mOutputItem1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 9L), this.mOutputItem2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.DarkAsh, 4L)))) { + getBaseMetaTileEntity().decrStackSize(0, 1); + getBaseMetaTileEntity().decrStackSize(1, 4); + this.mMaxProgresstime = 64800; + return true; + } + } + } + this.mOutputItem1 = null; + this.mOutputItem2 = null; + return false; + } + + @Override + public boolean isGivingInformation() { + return false; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aIndex > 1; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + if (aIndex < 2) { + } + return !GT_Utility.areStacksEqual(aStack, this.mInventory[0]); + } + + @Override + public byte getTileEntityBaseType() { + return 0; + } +} -- cgit