aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Java/miscutil/core/block/ModBlocks.java6
-rw-r--r--src/Java/miscutil/core/common/CommonProxy.java6
-rw-r--r--src/Java/miscutil/core/handler/registration/RECIPES_Machines.java26
-rw-r--r--src/Java/miscutil/core/handler/registration/RECIPES_Tools.java (renamed from src/Java/miscutil/core/item/tool/Loader_TOOLS.java)10
-rw-r--r--src/Java/miscutil/core/handler/registration/RegistrationHandler.java25
-rw-r--r--src/Java/miscutil/core/util/ItemUtils.java83
-rw-r--r--src/Java/miscutil/gregtech/enums/GregtechItemList.java14
-rw-r--r--src/Java/miscutil/gregtech/gui/CONTAINER_IronBlastFurnace.java31
-rw-r--r--src/Java/miscutil/gregtech/gui/GUI_IronBlastFurnace.java30
-rw-r--r--src/Java/miscutil/gregtech/init/machines/GregtechSteamCondenser.java22
-rw-r--r--src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaCasingBlocks.java87
-rw-r--r--src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaTileEntityIronBlastFurnace.java369
-rw-r--r--src/resources/assets/miscutils/textures/gui/IronBlastFurnace.pngbin0 -> 4118 bytes
13 files changed, 647 insertions, 62 deletions
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/item/tool/Loader_TOOLS.java b/src/Java/miscutil/core/handler/registration/RECIPES_Tools.java
index bd917df75f..b40327fceb 100644
--- a/src/Java/miscutil/core/item/tool/Loader_TOOLS.java
+++ b/src/Java/miscutil/core/handler/registration/RECIPES_Tools.java
@@ -1,4 +1,4 @@
-package miscutil.core.item.tool;
+package miscutil.core.handler.registration;
import miscutil.core.item.ModItems;
import miscutil.core.util.ItemUtils;
@@ -10,7 +10,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
-public class Loader_TOOLS {
+public class RECIPES_Tools {
//Outputs
static ItemStack RECIPE_StaballoyPickaxe = new ItemStack(ModItems.itemStaballoyPickaxe);
@@ -118,17 +118,17 @@ public class Loader_TOOLS {
static ItemStack sandHammer = new ItemStack (ModItems.itemSandstoneHammer, 1, OreDictionary.WILDCARD_VALUE);
static String craftingToolSandHammer = "craftingToolSandHammer";
- public static final void run(){
+ public static final void RECIPES_LOAD(){
//plateStaballoy = new ItemStack(ModItems.itemPlateStaballoy);
//ingotStaballoy = new ItemStack(ModItems.itemIngotStaballoy);
//Pickaxes
- registerPickaxes();
+ run();
}
- private static void registerPickaxes(){
+ private static void run(){
//Staballoy Pickaxe
ItemUtils.recipeBuilder(
plateStaballoy, plateStaballoy, ingotStaballoy,
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/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<Object> validSlots = new ArrayList<Object>();
-
+
//, 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;
+ }
+}
diff --git a/src/resources/assets/miscutils/textures/gui/IronBlastFurnace.png b/src/resources/assets/miscutils/textures/gui/IronBlastFurnace.png
new file mode 100644
index 0000000000..3eca66e9f8
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/gui/IronBlastFurnace.png
Binary files differ