diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-10-07 02:03:46 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-10-07 02:03:46 +1000 |
commit | 676a51a4c93713b3498508e13fae0869045f6f49 (patch) | |
tree | ac08d69405c23baadbcc37e9103153f6c06b1324 /src | |
parent | 8c6406887cbe6b2d27cead77c6605639d73012ef (diff) | |
download | GT5-Unofficial-676a51a4c93713b3498508e13fae0869045f6f49.tar.gz GT5-Unofficial-676a51a4c93713b3498508e13fae0869045f6f49.tar.bz2 GT5-Unofficial-676a51a4c93713b3498508e13fae0869045f6f49.zip |
+ Added the Bronze and Advanced Work benches from GT4, still hell buggy but a WIP.
// Temporarily added Workbench registration to the Tiered Tanks Loader.
% Added some logging to the Plate Generation.
$ Fixed getTexture() in BaseMetaTileEntityEx.java to now support all branches of Gregtech.
Diffstat (limited to 'src')
12 files changed, 1199 insertions, 17 deletions
diff --git a/src/Java/gregtech/api/metatileentity/BaseMetaTileEntityEx.java b/src/Java/gregtech/api/metatileentity/BaseMetaTileEntityEx.java index 1669a11f9a..955b7eb045 100644 --- a/src/Java/gregtech/api/metatileentity/BaseMetaTileEntityEx.java +++ b/src/Java/gregtech/api/metatileentity/BaseMetaTileEntityEx.java @@ -1108,7 +1108,7 @@ public class BaseMetaTileEntityEx extends BaseTileEntity implements IGregTechTil return 0; } - @Override + public ITexture[] getTexture(byte aSide) { ITexture rIcon = getCoverTexture(aSide); if (rIcon != null) return new ITexture[]{rIcon}; @@ -1116,6 +1116,15 @@ public class BaseMetaTileEntityEx extends BaseTileEntity implements IGregTechTil return mMetaTileEntity.getTexture(this, aSide, mFacing, (byte) (mColor - 1), mActive, getOutputRedstoneSignal(aSide) > 0); return Textures.BlockIcons.ERROR_RENDERING; } + + + public ITexture[] getTexture(Block arg0, byte aSide) { + ITexture rIcon = getCoverTexture(aSide); + if (rIcon != null) return new ITexture[]{rIcon}; + if (hasValidMetaTileEntity()) + return mMetaTileEntity.getTexture(this, aSide, mFacing, (byte) (mColor - 1), mActive, getOutputRedstoneSignal(aSide) > 0); + return Textures.BlockIcons.ERROR_RENDERING; + } private boolean isEnergyInputSide(byte aSide) { if (aSide >= 0 && aSide < 6) { @@ -2078,4 +2087,5 @@ public class BaseMetaTileEntityEx extends BaseTileEntity implements IGregTechTil public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { mMetaTileEntity.onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider); } + }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java index 6f492ef2b9..de0a72f484 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java @@ -122,7 +122,10 @@ public enum GregtechItemList implements GregtechItemContainer { Fluid_Cell_1L, Fluid_Cell_16L, Fluid_Cell_36L, Fluid_Cell_144L, //Multitank - Industrial_MultiTank, Industrial_MultiTankDense, Casing_MultitankExterior; + Industrial_MultiTank, Industrial_MultiTankDense, Casing_MultitankExterior, + + //Gt4 Workbenches + GT4_Workbench_Bronze, GT4_Workbench_Advanced; public static final GregtechItemList[] DYE_ONLY_ITEMS = { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_AdvancedWorkbench.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_AdvancedWorkbench.java new file mode 100644 index 0000000000..bb7982afe3 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_AdvancedWorkbench.java @@ -0,0 +1,161 @@ +package gtPlusPlus.xmod.gregtech.api.gui; + +import gregtech.api.gui.GT_ContainerMetaTile_Machine; +import gregtech.api.gui.GT_Slot_Holo; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GT_MetaTileEntity_AdvancedCraftingTable; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class CONTAINER_AdvancedWorkbench +extends GT_ContainerMetaTile_Machine +{ + public CONTAINER_AdvancedWorkbench(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) + { + super(aInventoryPlayer, aTileEntity); + } + + @Override + public void addSlots(InventoryPlayer aInventoryPlayer) + { + addSlotToContainer(new Slot(this.mTileEntity, 0, 8, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 1, 26, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 2, 44, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 3, 62, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 4, 8, 26)); + addSlotToContainer(new Slot(this.mTileEntity, 5, 26, 26)); + addSlotToContainer(new Slot(this.mTileEntity, 6, 44, 26)); + addSlotToContainer(new Slot(this.mTileEntity, 7, 62, 26)); + addSlotToContainer(new Slot(this.mTileEntity, 8, 8, 44)); + addSlotToContainer(new Slot(this.mTileEntity, 9, 26, 44)); + addSlotToContainer(new Slot(this.mTileEntity, 10, 44, 44)); + addSlotToContainer(new Slot(this.mTileEntity, 11, 62, 44)); + addSlotToContainer(new Slot(this.mTileEntity, 12, 8, 62)); + addSlotToContainer(new Slot(this.mTileEntity, 13, 26, 62)); + addSlotToContainer(new Slot(this.mTileEntity, 14, 44, 62)); + addSlotToContainer(new Slot(this.mTileEntity, 15, 62, 62)); + + addSlotToContainer(new Slot(this.mTileEntity, 16, 82, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 17, 100, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 18, 118, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 19, 136, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 20, 154, 8)); + + addSlotToContainer(new Slot(this.mTileEntity, 21, 82, 28)); + addSlotToContainer(new Slot(this.mTileEntity, 22, 100, 28)); + addSlotToContainer(new Slot(this.mTileEntity, 23, 118, 28)); + addSlotToContainer(new Slot(this.mTileEntity, 24, 82, 46)); + addSlotToContainer(new Slot(this.mTileEntity, 25, 100, 46)); + addSlotToContainer(new Slot(this.mTileEntity, 26, 118, 46)); + addSlotToContainer(new Slot(this.mTileEntity, 27, 82, 64)); + addSlotToContainer(new Slot(this.mTileEntity, 28, 100, 64)); + addSlotToContainer(new Slot(this.mTileEntity, 29, 118, 64)); + + addSlotToContainer(new Slot(this.mTileEntity, 33, 154, 28)); + addSlotToContainer(new Slot(this.mTileEntity, 34, 154, 64)); + + addSlotToContainer(new Slot(this.mTileEntity, 30, 136, 28)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 31, 136, 64, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 32, 154, 46, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 32, 136, 46, false, false, 1)); + } + + @Override + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) + { + if ((aSlotIndex < 21) || (aSlotIndex > 35)) { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + if ((this.mTileEntity == null) || (this.mTileEntity.getMetaTileEntity() == null)) { + return null; + } + try + { + ItemStack tStack = ((Slot)this.inventorySlots.get(aSlotIndex)).getStack(); + if ((tStack != null) && (tStack.stackSize <= 0) && (!GT_Utility.areStacksEqual(tStack, aPlayer.inventory.getItemStack()))) { + return null; + } + if (aSlotIndex == 32) + { + if ((aMouseclick == 0) && (aShifthold == 1)) + { + ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).setBluePrint(null); + return null; + } + } + else + { + if (aSlotIndex == 33) + { + ItemStack tCraftedStack = ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).getCraftingOutput(); + if (tCraftedStack != null) { + if (aShifthold == 1) + { + for (byte i = 0; i < aPlayer.inventory.mainInventory.length; i = (byte)(i + 1)) { + for (byte j = 0; (j < tCraftedStack.getMaxStackSize() / tCraftedStack.stackSize) && (((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).canDoCraftingOutput()); j = (byte)(j + 1)) + { + ItemStack tStack2; + if ((!GT_Utility.areStacksEqual(tStack2 = ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).getCraftingOutput(), tCraftedStack)) || ((tStack != null) && (tStack.stackSize != tStack2.stackSize))) { + return aPlayer.inventory.getItemStack(); + } + aPlayer.inventory.mainInventory[i] = ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).consumeMaterials(aPlayer, aPlayer.inventory.mainInventory[i]); + } + } + } + else + { + if (aMouseclick == 0) + { + if (((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).canDoCraftingOutput()) { + aPlayer.inventory.setItemStack(((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).consumeMaterials(aPlayer, aPlayer.inventory.getItemStack())); + } + return aPlayer.inventory.getItemStack(); + } + for (int i = 0; (i < tCraftedStack.getMaxStackSize() / tCraftedStack.stackSize) && (((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).canDoCraftingOutput()); i++) + { + ItemStack tStack2; + if ((!GT_Utility.areStacksEqual(tStack2 = ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).getCraftingOutput(), tCraftedStack)) || ((tStack != null) && (tStack.stackSize != tStack2.stackSize))) { + return aPlayer.inventory.getItemStack(); + } + aPlayer.inventory.setItemStack(((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).consumeMaterials(aPlayer, aPlayer.inventory.getItemStack())); + } + return aPlayer.inventory.getItemStack(); + } + } + return null; + } + if (aSlotIndex == 34) + { + ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).mFlushMode = true; + return null; + } + if (aSlotIndex == 35) + { + ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).sortIntoTheInputSlots(); + return null; + } + } + } + catch (Throwable e) + { + e.printStackTrace(GT_Log.err); + } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + @Override + public int getSlotCount() + { + return 33; + } + + @Override + public int getShiftClickSlotCount() + { + return 21; + } +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_BronzeWorkbench.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_BronzeWorkbench.java new file mode 100644 index 0000000000..d093101044 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_BronzeWorkbench.java @@ -0,0 +1,161 @@ +package gtPlusPlus.xmod.gregtech.api.gui; + +import gregtech.api.gui.GT_ContainerMetaTile_Machine; +import gregtech.api.gui.GT_Slot_Holo; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GT_MetaTileEntity_AdvancedCraftingTable; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class CONTAINER_BronzeWorkbench +extends GT_ContainerMetaTile_Machine +{ + public CONTAINER_BronzeWorkbench(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) + { + super(aInventoryPlayer, aTileEntity); + } + + @Override + public void addSlots(InventoryPlayer aInventoryPlayer) + { + addSlotToContainer(new Slot(this.mTileEntity, 0, 8, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 1, 26, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 2, 44, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 3, 62, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 4, 8, 26)); + addSlotToContainer(new Slot(this.mTileEntity, 5, 26, 26)); + addSlotToContainer(new Slot(this.mTileEntity, 6, 44, 26)); + addSlotToContainer(new Slot(this.mTileEntity, 7, 62, 26)); + addSlotToContainer(new Slot(this.mTileEntity, 8, 8, 44)); + addSlotToContainer(new Slot(this.mTileEntity, 9, 26, 44)); + addSlotToContainer(new Slot(this.mTileEntity, 10, 44, 44)); + addSlotToContainer(new Slot(this.mTileEntity, 11, 62, 44)); + addSlotToContainer(new Slot(this.mTileEntity, 12, 8, 62)); + addSlotToContainer(new Slot(this.mTileEntity, 13, 26, 62)); + addSlotToContainer(new Slot(this.mTileEntity, 14, 44, 62)); + addSlotToContainer(new Slot(this.mTileEntity, 15, 62, 62)); + + addSlotToContainer(new Slot(this.mTileEntity, 16, 82, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 17, 100, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 18, 118, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 19, 136, 8)); + addSlotToContainer(new Slot(this.mTileEntity, 20, 154, 8)); + + addSlotToContainer(new Slot(this.mTileEntity, 21, 82, 28)); + addSlotToContainer(new Slot(this.mTileEntity, 22, 100, 28)); + addSlotToContainer(new Slot(this.mTileEntity, 23, 118, 28)); + addSlotToContainer(new Slot(this.mTileEntity, 24, 82, 46)); + addSlotToContainer(new Slot(this.mTileEntity, 25, 100, 46)); + addSlotToContainer(new Slot(this.mTileEntity, 26, 118, 46)); + addSlotToContainer(new Slot(this.mTileEntity, 27, 82, 64)); + addSlotToContainer(new Slot(this.mTileEntity, 28, 100, 64)); + addSlotToContainer(new Slot(this.mTileEntity, 29, 118, 64)); + + addSlotToContainer(new Slot(this.mTileEntity, 33, 154, 28)); + addSlotToContainer(new Slot(this.mTileEntity, 34, 154, 64)); + + addSlotToContainer(new Slot(this.mTileEntity, 30, 136, 28)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 31, 136, 64, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 32, 154, 46, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 32, 136, 46, false, false, 1)); + } + + @Override + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) + { + if ((aSlotIndex < 21) || (aSlotIndex > 35)) { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + if ((this.mTileEntity == null) || (this.mTileEntity.getMetaTileEntity() == null)) { + return null; + } + try + { + ItemStack tStack = ((Slot)this.inventorySlots.get(aSlotIndex)).getStack(); + if ((tStack != null) && (tStack.stackSize <= 0) && (!GT_Utility.areStacksEqual(tStack, aPlayer.inventory.getItemStack()))) { + return null; + } + if (aSlotIndex == 32) + { + if ((aMouseclick == 0) && (aShifthold == 1)) + { + ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).setBluePrint(null); + return null; + } + } + else + { + if (aSlotIndex == 33) + { + ItemStack tCraftedStack = ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).getCraftingOutput(); + if (tCraftedStack != null) { + if (aShifthold == 1) + { + for (byte i = 0; i < aPlayer.inventory.mainInventory.length; i = (byte)(i + 1)) { + for (byte j = 0; (j < tCraftedStack.getMaxStackSize() / tCraftedStack.stackSize) && (((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).canDoCraftingOutput()); j = (byte)(j + 1)) + { + ItemStack tStack2; + if ((!GT_Utility.areStacksEqual(tStack2 = ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).getCraftingOutput(), tCraftedStack)) || ((tStack != null) && (tStack.stackSize != tStack2.stackSize))) { + return aPlayer.inventory.getItemStack(); + } + aPlayer.inventory.mainInventory[i] = ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).consumeMaterials(aPlayer, aPlayer.inventory.mainInventory[i]); + } + } + } + else + { + if (aMouseclick == 0) + { + if (((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).canDoCraftingOutput()) { + aPlayer.inventory.setItemStack(((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).consumeMaterials(aPlayer, aPlayer.inventory.getItemStack())); + } + return aPlayer.inventory.getItemStack(); + } + for (int i = 0; (i < tCraftedStack.getMaxStackSize() / tCraftedStack.stackSize) && (((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).canDoCraftingOutput()); i++) + { + ItemStack tStack2; + if ((!GT_Utility.areStacksEqual(tStack2 = ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).getCraftingOutput(), tCraftedStack)) || ((tStack != null) && (tStack.stackSize != tStack2.stackSize))) { + return aPlayer.inventory.getItemStack(); + } + aPlayer.inventory.setItemStack(((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).consumeMaterials(aPlayer, aPlayer.inventory.getItemStack())); + } + return aPlayer.inventory.getItemStack(); + } + } + return null; + } + if (aSlotIndex == 34) + { + ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).mFlushMode = true; + return null; + } + if (aSlotIndex == 35) + { + ((GT_MetaTileEntity_AdvancedCraftingTable)this.mTileEntity.getMetaTileEntity()).sortIntoTheInputSlots(); + return null; + } + } + } + catch (Throwable e) + { + e.printStackTrace(GT_Log.err); + } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + @Override + public int getSlotCount() + { + return 33; + } + + @Override + public int getShiftClickSlotCount() + { + return 21; + } +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_AdvancedWorkbench.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_AdvancedWorkbench.java new file mode 100644 index 0000000000..7da9238bd5 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_AdvancedWorkbench.java @@ -0,0 +1,30 @@ +package gtPlusPlus.xmod.gregtech.api.gui; + +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gtPlusPlus.core.lib.CORE; +import net.minecraft.entity.player.InventoryPlayer; + +public class GUI_AdvancedWorkbench +extends GT_GUIContainerMetaTile_Machine +{ + public GUI_AdvancedWorkbench(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) + { + super(new CONTAINER_AdvancedWorkbench(aInventoryPlayer, aTileEntity), CORE.RES_PATH_GUI + "AdvancedCraftingTable.png"); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) + { + //this.fontRendererObj.drawString("Condenser", 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); + } +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_BronzeWorkbench.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_BronzeWorkbench.java new file mode 100644 index 0000000000..597edba503 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_BronzeWorkbench.java @@ -0,0 +1,30 @@ +package gtPlusPlus.xmod.gregtech.api.gui; + +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gtPlusPlus.core.lib.CORE; +import net.minecraft.entity.player.InventoryPlayer; + +public class GUI_BronzeWorkbench +extends GT_GUIContainerMetaTile_Machine +{ + public GUI_BronzeWorkbench(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) + { + super(new CONTAINER_BronzeWorkbench(aInventoryPlayer, aTileEntity), CORE.RES_PATH_GUI + "BronzeCraftingTable.png"); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) + { + //this.fontRendererObj.drawString("Condenser", 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); + } +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_AdvancedCraftingTable.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_AdvancedCraftingTable.java new file mode 100644 index 0000000000..b150ea32cb --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_AdvancedCraftingTable.java @@ -0,0 +1,555 @@ +package gtPlusPlus.xmod.gregtech.common.tileentities.storage; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_AdvancedWorkbench; +import gtPlusPlus.xmod.gregtech.api.gui.GUI_AdvancedWorkbench; + +import java.util.ArrayList; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraftforge.fluids.FluidStack; + +public class GT_MetaTileEntity_AdvancedCraftingTable +extends GT_MetaTileEntity_BasicTank +{ + public boolean mFlushMode = false; + + public GT_MetaTileEntity_AdvancedCraftingTable(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 3, "WorkBench pro noSc0pe"); + } + + public GT_MetaTileEntity_AdvancedCraftingTable(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, 3, aDescription, aTextures); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + Utils.LOG_INFO("Right Click on Block"); + if (aBaseMetaTileEntity.isClientSide()){ + Utils.LOG_INFO("MTE is ClientSide"); + return true; + } + Utils.LOG_INFO("MTE is not ClientSide"); + aBaseMetaTileEntity.openGUI(aPlayer); + Utils.LOG_INFO("MTE is now has an open GUI"); + return true; + } + + @Override + public String[] getInfoData() { + + if (mFluid == null) { + return new String[]{ + GT_Values.VOLTAGE_NAMES[mTier]+" Workbench", + "Stored Fluid:", + "No Fluid", + Integer.toString(0) + "L", + Integer.toString(getCapacity()) + "L"}; + } + return new String[]{ + GT_Values.VOLTAGE_NAMES[mTier]+" Workbench", + "Stored Fluid:", + mFluid.getLocalizedName(), + Integer.toString(mFluid.amount) + "L", + Integer.toString(getCapacity()) + "L"}; + } + + @Override + public boolean isGivingInformation() { + return true; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + Utils.LOG_INFO("Dumping Fluid data. Name: "+mFluid.getFluid().getName()+" Amount: "+mFluid.amount+"L"); + if (mFluid != null) aNBT.setTag("mFluid", mFluid.writeToNBT(new NBTTagCompound())); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + mFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid")); + } + + @Override + public boolean isTransformerUpgradable() + { + return true; + } + + public boolean isBatteryUpgradable() + { + return true; + } + + @Override + public boolean isSimpleMachine() + { + return true; + } + + @Override + public boolean isValidSlot(int aIndex) + { + return (aIndex < 31) || (aIndex > 32); + } + + @Override + public boolean isFacingValid(byte aFacing) + { + return true; + } + + @Override + public boolean isAccessAllowed(EntityPlayer aPlayer) + { + return true; + } + + @Override + public boolean isEnetInput() + { + return true; + } + + @Override + public boolean isInputFacing(byte aSide) + { + return true; + } + + @Override + public long maxEUInput() + { + return 128; + } + + @Override + public long maxEUStore() + { + return 128000; + } + + public int getInvSize() + { + return 35; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) + { + return new GT_MetaTileEntity_AdvancedCraftingTable(mName, mTier, mDescription, mTextures); + } + + public void onRightclick(EntityPlayer aPlayer) + { + getBaseMetaTileEntity().openGUI(aPlayer, 160); + } + + public void onFirstTick() + { + getCraftingOutput(); + } + + @Override + public boolean doesFillContainers() + { + return false; + } + + @Override + public boolean doesEmptyContainers() + { + return false; + } + + @Override + public boolean canTankBeFilled() + { + return true; + } + + @Override + public boolean canTankBeEmptied() + { + return true; + } + + @Override + public boolean displaysItemStack() + { + return false; + } + + @Override + public boolean displaysStackSize() + { + return false; + } + + public void onPostTick() + { + if (getBaseMetaTileEntity().isServerSide()) + { + if (getBaseMetaTileEntity().hasInventoryBeenModified()) { + getCraftingOutput(); + } + fillLiquidContainers(); + if (this.mFlushMode) + { + this.mFlushMode = false; + for (byte i = 21; i < 30; i = (byte)(i + 1)) { + if (this.mInventory[i] != null) { + if (this.mInventory[i].stackSize == 0) + { + this.mInventory[i] = null; + } + else + { + this.mFlushMode = true; + break; + } + } + } + } + } + } + + public void sortIntoTheInputSlots() + { + for (byte i = 21; i < 30; i = (byte)(i + 1)) { + if (this.mInventory[i] != null) + { + if (this.mInventory[i].stackSize == 0) { + this.mInventory[i] = null; + } + if (this.mInventory[i] != null) { + for (byte j = 0; j < 16; j = (byte)(j + 1)) { + if (GT_Utility.areStacksEqual(this.mInventory[i], this.mInventory[j])) { + GT_Utility.moveStackFromSlotAToSlotB(getBaseMetaTileEntity(), getBaseMetaTileEntity(), i, j, (byte)64, (byte)1, (byte)64, (byte)1); + } + } + } + if (this.mInventory[i] != null) { + for (byte j = 0; j < 16; j = (byte)(j + 1)) { + if (this.mInventory[j] == null) { + GT_Utility.moveStackFromSlotAToSlotB(getBaseMetaTileEntity(), getBaseMetaTileEntity(), i, j, (byte)64, (byte)1, (byte)64, (byte)1); + } + } + } + } + } + } + + private void fillLiquidContainers() + { + for (byte i = 16; (i < 21) && (this.mFluid != null); i = (byte)(i + 1)) + { + ItemStack tOutput = GT_Utility.fillFluidContainer(this.mFluid, this.mInventory[i], true, true); + if (tOutput != null) + { + if (this.mInventory[i].stackSize == 1) + { + this.mFluid.amount -= GT_Utility.getFluidForFilledItem(tOutput, true).amount * tOutput.stackSize; + this.mInventory[i] = tOutput; + } + else + { + for (byte j = 16; j < 21; j = (byte)(j + 1)) { + if ((this.mInventory[j] == null) || ((GT_Utility.areStacksEqual(tOutput, this.mInventory[j])) && (this.mInventory[j].stackSize + tOutput.stackSize <= tOutput.getMaxStackSize()))) + { + this.mFluid.amount -= GT_Utility.getFluidForFilledItem(tOutput, true).amount * tOutput.stackSize; + getBaseMetaTileEntity().decrStackSize(i, 1); + if (this.mInventory[j] == null) + { + this.mInventory[j] = tOutput; break; + } + this.mInventory[j].stackSize += 1; + + break; + } + } + } + if ((this.mFluid != null) && (this.mFluid.amount <= 0)) { + this.mFluid = null; + } + } + } + if ((this.mFluid != null) && (this.mFluid.amount <= 0)) { + this.mFluid = null; + } + } + + public void setBluePrint(ItemStack aStack) + { + if (aStack == null) { + aStack = this.mInventory[30]; + } + if ((this.mInventory[31] == null) || (aStack == null) /*|| (aStack.itemID != -2)*/ || (aStack.getItemDamage() != 0) || (aStack.stackSize != 1) || (aStack.hasTagCompound())) { + return; + } + NBTTagCompound tNBT = new NBTTagCompound(); + NBTTagList tNBT_ItemList = new NBTTagList(); + for (int i = 0; i < 9; i++) + { + ItemStack tStack = this.mInventory[(i + 21)]; + if (tStack != null) + { + NBTTagCompound tag = new NBTTagCompound(); + tag.setByte("Slot", (byte)i); + tStack.writeToNBT(tag); + tNBT_ItemList.appendTag(tag); + } + } + tNBT.setTag("Inventory", tNBT_ItemList); + aStack.setTagCompound(tNBT); + } + + public ItemStack getCraftingOutput() + { + if ((this.mInventory[30] != null) /*&& (this.mInventory[30].itemID == -2)*/ && (this.mInventory[30].getItemDamage() == 0) && (this.mInventory[30].hasTagCompound())) + { + NBTTagCompound tNBT = this.mInventory[30].getTagCompound(); + NBTTagList tNBT_ItemList = tNBT.getTagList("Blueprint", 10); //TODO + for (int i = 0; (i < tNBT_ItemList.tagCount()) && (i < 9); i++) + { + NBTTagCompound tag = (NBTTagCompound)tNBT_ItemList.getCompoundTagAt(i); + byte slot = tag.getByte("Slot"); + if ((slot >= 0) && (slot < 9) && (this.mInventory[(slot + 21)] == null)) + { + this.mInventory[(slot + 21)] = GT_Utility.loadItem(tag); + if (this.mInventory[(slot + 21)] != null) { + this.mInventory[(slot + 21)].stackSize = 0; + } + } + } + } + this.mInventory[31] = GT_ModHandler.getAllRecipeOutput(getBaseMetaTileEntity().getWorld(), new ItemStack[] { this.mInventory[21], this.mInventory[22], this.mInventory[23], this.mInventory[24], this.mInventory[25], this.mInventory[26], this.mInventory[27], this.mInventory[28], this.mInventory[29] }); + return this.mInventory[31]; + } + + public boolean canDoCraftingOutput() + { + if (this.mInventory[31] == null) { + return false; + } + for (ItemStack tStack : recipeContent()) { + if (tStack.stackSize > getAmountOf(tStack)) { + return false; + } + } + return true; + } + + private int getAmountOf(ItemStack aStack) + { + int tAmount = 0; + for (byte i = 0; (i < 30) && (tAmount < 9); i = (byte)(i + 1)) { + if (GT_Utility.areStacksOrToolsEqual(aStack, this.mInventory[i])) { + tAmount += this.mInventory[i].stackSize; + } + } + return tAmount; + } + + private ArrayList<ItemStack> recipeContent() + { + ArrayList<ItemStack> tList = new ArrayList(); + for (byte i = 21; i < 30; i = (byte)(i + 1)) { + if (this.mInventory[i] != null) + { + boolean temp = false; + for (byte j = 0; j < tList.size(); j = (byte)(j + 1)) { + if (GT_Utility.areStacksOrToolsEqual(this.mInventory[i], (ItemStack)tList.get(j))) + { + ((ItemStack)tList.get(j)).stackSize += 1; + temp = true; + break; + } + } + if (!temp) { + tList.add(GT_Utility.copyAmount(1L, new Object[] { this.mInventory[i] })); + } + } + } + return tList; + } + + public ItemStack consumeMaterials(EntityPlayer aPlayer, ItemStack aHoldStack) + { + if (this.mInventory[31] == null) { + return aHoldStack; + } + if (aHoldStack != null) + { + if (!GT_Utility.areStacksEqual(aHoldStack, this.mInventory[31])) { + return aHoldStack; + } + if (aHoldStack.stackSize + this.mInventory[31].stackSize > aHoldStack.getMaxStackSize()) { + return aHoldStack; + } + } + for (byte i = 21; i < 30; i = (byte)(i + 1)) { + if (this.mInventory[i] != null) { + for (byte j = 0; j <= i; j = (byte)(j + 1)) { + if (((j < 21) || (j == i)) && + (GT_Utility.areStacksOrToolsEqual(this.mInventory[i], this.mInventory[j])) && (this.mInventory[j].stackSize > 0)) + { + ItemStack tStack = GT_Utility.getContainerItem(this.mInventory[j], true); + if ((tStack == null) || ((tStack.isItemStackDamageable()) && (tStack.getItemDamage() >= tStack.getMaxDamage()))) + { + getBaseMetaTileEntity().decrStackSize(j, 1); break; + } + if (this.mInventory[j].stackSize == 1) + { + this.mInventory[j] = tStack; break; + } + getBaseMetaTileEntity().decrStackSize(j, 1); + for (byte k = 0; k < 21; k = (byte)(k + 1)) + { + if (this.mInventory[k] == null) + { + this.mInventory[k] = tStack; + break; + } + if ((GT_Utility.areStacksEqual(tStack, this.mInventory[k])) && + (tStack.stackSize + this.mInventory[k].stackSize <= this.mInventory[k].getMaxStackSize())) + { + this.mInventory[k].stackSize += tStack.stackSize; + break; + } + } + break; + } + } + } + } + if (aHoldStack == null) + { + aHoldStack = GT_Utility.copy(new Object[] { this.mInventory[31] }); + aHoldStack.onCrafting(getBaseMetaTileEntity().getWorld(), aPlayer, this.mInventory[31].stackSize); + } + else + { + aHoldStack.stackSize += this.mInventory[31].stackSize; + aHoldStack.onCrafting(getBaseMetaTileEntity().getWorld(), aPlayer, this.mInventory[31].stackSize); + } + fillLiquidContainers(); + + return aHoldStack; + } + + @Override + public long getInputTier() + { + return GT_Utility.getTier(getBaseMetaTileEntity().getInputVoltage()); + } + + @Override + public long getOutputTier() + { + return GT_Utility.getTier(getBaseMetaTileEntity().getInputVoltage()); + } + + @Override + public int rechargerSlotStartIndex() + { + return 16; + } + + @Override + public int rechargerSlotCount() + { + return 5; + } + + public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) + { + if (aSide == 0) { + return 32; + } + if (aSide == 1) { + return 290; + } + if ((aFacing == 0) || (aFacing == 1)) { + return 222; + } + if ((aFacing == 2) || (aFacing == 3)) { + return 223; + } + return 215; + } + + @Override + public String[] getDescription() + { + return new String[]{"For the very large Projects"}; + } + + public boolean allowPutStack(int aIndex, byte aSide, ItemStack aStack) + { + if (aIndex < 16) + { + for (byte i = 0; i < 16; i = (byte)(i + 1)) { + if (GT_Utility.areStacksOrToolsEqual(aStack, this.mInventory[i])) { + return aIndex == i; + } + } + return true; + } + return false; + } + + public boolean allowPullStack(int aIndex, byte aSide, ItemStack aStack) + { + return (aIndex == 33) || ((this.mFlushMode) && (aIndex >= 21) && (aIndex < 30)); + } + + @Override + public int getCapacity() + { + return 64000; + } + + @Override + public int getTankPressure() + { + return -100; + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) + { + return new CONTAINER_AdvancedWorkbench(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) + { + return new GUI_AdvancedWorkbench(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + return new ITexture[0][0][0]; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return aSide == 1 ? new ITexture[]{ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CRAFTING)} : new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_STEEL_SIDE), new GT_RenderedTexture(Textures.BlockIcons.VOID)}; + } +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_BronzeCraftingTable.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_BronzeCraftingTable.java new file mode 100644 index 0000000000..d0f15c5da2 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_BronzeCraftingTable.java @@ -0,0 +1,160 @@ +package gtPlusPlus.xmod.gregtech.common.tileentities.storage; + +import gregtech.api.GregTech_API; +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_RenderedTexture; +import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_BronzeWorkbench; +import gtPlusPlus.xmod.gregtech.api.gui.GUI_BronzeWorkbench; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; + +public class GT_MetaTileEntity_BronzeCraftingTable +extends GT_MetaTileEntity_AdvancedCraftingTable +{ + public GT_MetaTileEntity_BronzeCraftingTable(int aID, String aName, String aNameRegional, int aTier) + { + super(aID, aName, aNameRegional, aTier); + } + + public GT_MetaTileEntity_BronzeCraftingTable(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + @Override + public boolean isElectric() + { + return false; + } + + @Override + public boolean isPneumatic() + { + return false; + } + + @Override + public boolean isSteampowered() + { + return false; + } + + @Override + public boolean isTransformerUpgradable() + { + return false; + } + + @Override + public boolean isBatteryUpgradable() + { + return false; + } + + @Override + public boolean isEnetInput() + { + return false; + } + + @Override + public boolean isInputFacing(byte aSide) + { + return false; + } + + @Override + public long maxEUInput() + { + return 0; + } + + @Override + public long maxEUStore() + { + return 0; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) + { + return new GT_MetaTileEntity_BronzeCraftingTable(mName, mTier, mDescription, mTextures); + } + + @Override + public void onRightclick(EntityPlayer aPlayer) + { + getBaseMetaTileEntity().openGUI(aPlayer, 161); + } + + @SuppressWarnings({ "static-method", "unused" }) + public boolean allowCoverOnSide(byte aSide, int aCoverID) + { + return GregTech_API.getCoverBehavior(aCoverID).isSimpleCover(); + } + + @Override + public int rechargerSlotStartIndex() + { + return 0; + } + + @Override + public int rechargerSlotCount() + { + return 0; + } + + @Override + public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) + { + if (aSide == 0) { + return 315; + } + if (aSide == 1) { + return 317; + } + if ((aFacing == 0) || (aFacing == 1)) { + return 318; + } + if ((aFacing == 2) || (aFacing == 3)) { + return 319; + } + return 320; + } + + @Override + public String[] getDescription() + { + return new String[] {"For the smaller Projects"}; + } + + @Override + public int getCapacity() + { + return 16000; + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) + { + return new CONTAINER_BronzeWorkbench(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) + { + return new GUI_BronzeWorkbench(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public ITexture[][][] getTextureSet(ITexture[] aTextures) { + return new ITexture[0][0][0]; + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return aSide == 1 ? new ITexture[]{ new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CRAFTING)} : new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.MACHINE_BRONZE_SIDE), new GT_RenderedTexture(Textures.BlockIcons.VOID)}; + } +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java index 35fc715a6f..6d84abe37b 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java @@ -1,8 +1,10 @@ package gtPlusPlus.xmod.gregtech.loaders; +import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.Utils; import net.minecraft.item.ItemStack; @@ -20,47 +22,79 @@ public class RecipeGen_Plates { ItemStack plate_SingleTwo = material.getPlate(2); ItemStack plate_Double = material.getPlateDouble(1); + Utils.LOG_INFO("Generating Plate recipes for "+material.getLocalizedName()); + //Forge Hammer - GT_Values.RA.addForgeHammerRecipe( + if (addForgeHammerRecipe( ingotStackTwo, plate_Single, (int) Math.max(material.getMass(), 1L), - 16); + 16)){ + Utils.LOG_INFO("Forge Hammer Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Utils.LOG_INFO("Forge Hammer Recipe: "+material.getLocalizedName()+" - Failed"); + } //Bender - GT_Values.RA.addBenderRecipe( + if (addBenderRecipe( ingotStackOne, plate_Single, (int) Math.max(material.getMass() * 1L, 1L), - 24); + 24)){ + Utils.LOG_INFO("Bender Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Utils.LOG_INFO("Bender Recipe: "+material.getLocalizedName()+" - Failed"); + } //Extruder - GT_Values.RA.addExtruderRecipe( + if (addExtruderRecipe( ingotStackOne, shape_Extruder, plate_Single, - 10, 4 * tVoltageMultiplier); + 10, 4 * tVoltageMultiplier)){ + Utils.LOG_INFO("Extruder Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Utils.LOG_INFO("Extruder Recipe: "+material.getLocalizedName()+" - Failed"); + } //Alloy Smelter - GT_Values.RA.addAlloySmelterRecipe( + if (GT_Values.RA.addAlloySmelterRecipe( ingotStackTwo, shape_Mold, plate_Single, (int) Math.max(material.getMass() * 2L, 1L), - 2 * tVoltageMultiplier); + 2 * tVoltageMultiplier)){ + Utils.LOG_INFO("Alloy Smelter Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Utils.LOG_INFO("Alloy Smelter Recipe: "+material.getLocalizedName()+" - Failed"); + } //Making Double Plates - GT_Values.RA.addBenderRecipe( + if (addBenderRecipe( ingotStackTwo, plate_Double, (int) Math.max(material.getMass() * 2L, 1L), - 96); - GT_Values.RA.addBenderRecipe( + 96)){ + Utils.LOG_INFO("Bender Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Utils.LOG_INFO("Bender Recipe: "+material.getLocalizedName()+" - Failed"); + } + if (addBenderRecipe( plate_SingleTwo, plate_Double, (int) Math.max(material.getMass() * 2L, 1L), - 96); + 96)){ + Utils.LOG_INFO("Bender Recipe: "+material.getLocalizedName()+" - Success"); + } + else { + Utils.LOG_INFO("Bender Recipe: "+material.getLocalizedName()+" - Failed"); + } - Utils.LOG_WARNING("Adding crafting recipes for "+material.getLocalizedName()+" Plates - Single & Double"); + Utils.LOG_INFO("Adding crafting recipes for "+material.getLocalizedName()+" Plates - Single & Double"); //Single Plate Shaped/Shapeless GT_ModHandler.addCraftingRecipe( @@ -94,6 +128,39 @@ public class RecipeGen_Plates { plate_Single}); } + public static boolean addBenderRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("bender", aInput1, aDuration)) <= 0) { + return false; + } + new GT_Recipe(aEUt, aDuration, aInput1, aOutput1); + return true; + } + + public static boolean addExtruderRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt) { + if ((aInput == null) || (aShape == null) || (aOutput == null)) { + return false; + } + if ((aDuration = GregTech_API.sRecipeFile.get("extruder", aOutput, aDuration)) <= 0) { + return false; + } + GT_Recipe.GT_Recipe_Map.sExtruderRecipes.addRecipe(true, new ItemStack[]{aInput, aShape}, new ItemStack[]{aOutput}, null, null, null, aDuration, aEUt, 0); + return true; + } + + public static boolean addForgeHammerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) { + if ((aInput1 == null) || (aOutput1 == null)) { + return false; + } + if (!GregTech_API.sRecipeFile.get("forgehammer", aOutput1, true)) { + return false; + } + GT_Recipe.GT_Recipe_Map.sHammerRecipes.addRecipe(true, new ItemStack[]{aInput1}, new ItemStack[]{aOutput1}, null, null, null, aDuration, aEUt, 0); + return true; + } + } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechTieredFluidTanks.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechTieredFluidTanks.java index e1af53a627..1475a8140a 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechTieredFluidTanks.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechTieredFluidTanks.java @@ -3,6 +3,8 @@ package gtPlusPlus.xmod.gregtech.registration.gregtech; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.Utils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GT_MetaTileEntity_AdvancedCraftingTable; +import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GT_MetaTileEntity_BronzeCraftingTable; import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GT_MetaTileEntity_TieredTank; import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GT_NBT_Tank; @@ -31,8 +33,11 @@ public class GregtechTieredFluidTanks GregtechItemList.GT_FluidTank_ZPM.set(new GT_MetaTileEntity_TieredTank(ID++, "fluidtank.tier.07", "ZPM Voltage Fluid Tank", 7).getStackForm(1L)); GregtechItemList.GT_FluidTank_UV.set(new GT_MetaTileEntity_TieredTank(ID++, "fluidtank.tier.08", "Ultimate Voltage Fluid Tank", 8).getStackForm(1L)); GregtechItemList.GT_FluidTank_MAX.set(new GT_MetaTileEntity_TieredTank(ID++, "fluidtank.tier.09", "MAX Voltage Fluid Tank", 9).getStackForm(1L)); - - + ID = 900; + GregtechItemList.GT4_Workbench_Bronze.set(new GT_MetaTileEntity_BronzeCraftingTable(ID++, "workbench.bronze", "Bronze Workbench", 0).getStackForm(1L)); + GregtechItemList.GT4_Workbench_Advanced.set(new GT_MetaTileEntity_AdvancedCraftingTable(ID++, "workbench.advanced", "Advanced Workbench", 1).getStackForm(1L)); + + } private static void run2() diff --git a/src/resources/assets/miscutils/textures/gui/AdvancedCraftingTable.png b/src/resources/assets/miscutils/textures/gui/AdvancedCraftingTable.png Binary files differnew file mode 100644 index 0000000000..3d5cc1591e --- /dev/null +++ b/src/resources/assets/miscutils/textures/gui/AdvancedCraftingTable.png diff --git a/src/resources/assets/miscutils/textures/gui/BronzeCraftingTable.png b/src/resources/assets/miscutils/textures/gui/BronzeCraftingTable.png Binary files differnew file mode 100644 index 0000000000..fa432b2805 --- /dev/null +++ b/src/resources/assets/miscutils/textures/gui/BronzeCraftingTable.png |