From dc6d186f67723f7327647d3526ac7695d3e3ce64 Mon Sep 17 00:00:00 2001 From: Gig Date: Fri, 17 Apr 2015 01:09:12 +0100 Subject: [PATCH] Start on Blast furnace will get @modmuss50 to finish --- .../techreborn/blocks/BlockBlastFurnace.java | 63 ++++++++++++++++++ .../java/techreborn/client/GuiHandler.java | 6 ++ .../container/ContainerBlastFurnace.java | 48 +++++++++++++ .../client/gui/GuiBlastFurnace.java | 37 ++++++++++ src/main/java/techreborn/init/ModBlocks.java | 4 ++ .../techreborn/tiles/TileBlastFurnace.java | 46 +++++++++++++ .../techreborn/textures/gui/alloy_furnace.png | Bin 0 -> 1757 bytes .../techreborn/textures/gui/centrifuge.png | Bin 1202 -> 2200 bytes .../textures/gui/electric_alloy_furnace.png | Bin 0 -> 1796 bytes .../textures/gui/industrial_blast_furnace.png | Bin 0 -> 1816 bytes .../textures/gui/industrial_electrolyzer.png | Bin 0 -> 2182 bytes .../textures/gui/industrial_grinder.png | Bin 0 -> 2427 bytes 12 files changed, 204 insertions(+) create mode 100644 src/main/java/techreborn/blocks/BlockBlastFurnace.java create mode 100644 src/main/java/techreborn/client/container/ContainerBlastFurnace.java create mode 100644 src/main/java/techreborn/client/gui/GuiBlastFurnace.java create mode 100644 src/main/java/techreborn/tiles/TileBlastFurnace.java create mode 100644 src/main/resources/assets/techreborn/textures/gui/alloy_furnace.png create mode 100644 src/main/resources/assets/techreborn/textures/gui/electric_alloy_furnace.png create mode 100644 src/main/resources/assets/techreborn/textures/gui/industrial_blast_furnace.png create mode 100644 src/main/resources/assets/techreborn/textures/gui/industrial_electrolyzer.png create mode 100644 src/main/resources/assets/techreborn/textures/gui/industrial_grinder.png diff --git a/src/main/java/techreborn/blocks/BlockBlastFurnace.java b/src/main/java/techreborn/blocks/BlockBlastFurnace.java new file mode 100644 index 000000000..e56fa9666 --- /dev/null +++ b/src/main/java/techreborn/blocks/BlockBlastFurnace.java @@ -0,0 +1,63 @@ +package techreborn.blocks; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileBlastFurnace; +import techreborn.tiles.TileCentrifuge; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockBlastFurnace extends BlockContainer{ + + @SideOnly(Side.CLIENT) + private IIcon front; + @SideOnly(Side.CLIENT) + private IIcon other; + + public BlockBlastFurnace(Material material) + { + super(material); + setCreativeTab(TechRebornCreativeTab.instance); + setBlockName("techreborn.blastfurnace"); + setHardness(2F); + } + + @Override + public TileEntity createNewTileEntity(World world, int p_149915_2_) { + return new TileBlastFurnace(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.blastFurnaceID, world, x, y, z); + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister icon) { + front = icon.registerIcon("techreborn:machine/industrial_blast_furnace_front_off"); + other = icon.registerIcon("techreborn:machine/machine_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int currentSide, int meta) { + if (currentSide == 2) { + return front; + } else { + return other; + } + } + +} diff --git a/src/main/java/techreborn/client/GuiHandler.java b/src/main/java/techreborn/client/GuiHandler.java index 9acd52956..cc88b5bee 100644 --- a/src/main/java/techreborn/client/GuiHandler.java +++ b/src/main/java/techreborn/client/GuiHandler.java @@ -15,6 +15,7 @@ public class GuiHandler implements IGuiHandler { public static final int quantumChestID = 2; public static final int centrifugeID = 3; public static final int rollingMachineID = 4; + public static final int blastFurnaceID = 5; @Override @@ -29,7 +30,10 @@ public class GuiHandler implements IGuiHandler { return new ContainerCentrifuge((TileCentrifuge) world.getTileEntity(x, y, z), player); } else if (ID == rollingMachineID) { return new ContainerRollingMachine((TileRollingMachine) world.getTileEntity(x, y, z), player); + } else if (ID == blastFurnaceID) { + return new ContainerBlastFurnace((TileBlastFurnace) world.getTileEntity(x, y, z), player); } + return null; } @@ -46,6 +50,8 @@ public class GuiHandler implements IGuiHandler { return new GuiCentrifuge(player, (TileCentrifuge) world.getTileEntity(x, y, z)); } else if (ID == rollingMachineID) { return new GuiRollingMachine(player, (TileRollingMachine) world.getTileEntity(x, y, z)); + } else if (ID == blastFurnaceID) { + return new GuiBlastFurnace(player, (TileBlastFurnace) world.getTileEntity(x, y, z)); } return null; } diff --git a/src/main/java/techreborn/client/container/ContainerBlastFurnace.java b/src/main/java/techreborn/client/container/ContainerBlastFurnace.java new file mode 100644 index 000000000..eed205809 --- /dev/null +++ b/src/main/java/techreborn/client/container/ContainerBlastFurnace.java @@ -0,0 +1,48 @@ +package techreborn.client.container; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import techreborn.client.SlotOutput; +import techreborn.tiles.TileBlastFurnace; +import techreborn.tiles.TileCentrifuge; + +public class ContainerBlastFurnace extends TechRebornContainer { + + EntityPlayer player; + + TileBlastFurnace tile; + + @Override + public boolean canInteractWith(EntityPlayer player) + { + return true; + } + + public int tickTime; + + public ContainerBlastFurnace(TileBlastFurnace tileblastfurnace, EntityPlayer player) { + tile = tileblastfurnace; + this.player = player; + + //input + this.addSlotToContainer(new Slot(tileblastfurnace.inventory, 0, 56, 25)); + this.addSlotToContainer(new Slot(tileblastfurnace.inventory, 1, 56, 43)); + //outputs + this.addSlotToContainer(new SlotOutput(tileblastfurnace.inventory, 2, 116, 35)); + + + int i; + + for (i = 0; i < 3; ++i) { + for (int j = 0; j < 9; ++j) { + this.addSlotToContainer(new Slot(player.inventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for (i = 0; i < 9; ++i) { + this.addSlotToContainer(new Slot(player.inventory, i, 8 + i * 18, 142)); + } + } + +} diff --git a/src/main/java/techreborn/client/gui/GuiBlastFurnace.java b/src/main/java/techreborn/client/gui/GuiBlastFurnace.java new file mode 100644 index 000000000..05a9bd5e0 --- /dev/null +++ b/src/main/java/techreborn/client/gui/GuiBlastFurnace.java @@ -0,0 +1,37 @@ +package techreborn.client.gui; + +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ResourceLocation; +import techreborn.client.container.ContainerBlastFurnace; +import techreborn.client.container.ContainerCentrifuge; +import techreborn.tiles.TileBlastFurnace; +import techreborn.tiles.TileCentrifuge; + +public class GuiBlastFurnace extends GuiContainer { + + private static final ResourceLocation texture = new ResourceLocation("techreborn", "textures/gui/industrial_blast_furnace.png"); + + TileBlastFurnace blastfurnace; + + public GuiBlastFurnace(EntityPlayer player, TileBlastFurnace tileblastfurnace) { + super(new ContainerBlastFurnace(tileblastfurnace, player)); + this.xSize = 176; + this.ySize = 167; + blastfurnace = tileblastfurnace; + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + this.mc.getTextureManager().bindTexture(texture); + int k = (this.width - this.xSize) / 2; + int l = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); + } + + protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_) { + this.fontRendererObj.drawString("Blastfurnace", 60, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 4210752); + } +} diff --git a/src/main/java/techreborn/init/ModBlocks.java b/src/main/java/techreborn/init/ModBlocks.java index fab4cce15..23bd5cdc5 100644 --- a/src/main/java/techreborn/init/ModBlocks.java +++ b/src/main/java/techreborn/init/ModBlocks.java @@ -23,6 +23,7 @@ public class ModBlocks { public static Block centrifuge; public static Block RollingMachine; public static Block MachineCasing; + public static Block BlastFurnace; public static Block ore; public static Block storage; @@ -48,6 +49,9 @@ public class ModBlocks { GameRegistry.registerBlock(RollingMachine, "rollingmachine"); GameRegistry.registerTileEntity(TileRollingMachine.class, "TileRollingMachine"); + BlastFurnace = new BlockBlastFurnace(Material.piston); + GameRegistry.registerBlock(BlastFurnace, "blastFurnace"); + MachineCasing = new BlockMachineCasing(Material.piston); GameRegistry.registerBlock(MachineCasing, ItemBlockMachineCasing.class, "machinecasing"); diff --git a/src/main/java/techreborn/tiles/TileBlastFurnace.java b/src/main/java/techreborn/tiles/TileBlastFurnace.java new file mode 100644 index 000000000..a3adbc690 --- /dev/null +++ b/src/main/java/techreborn/tiles/TileBlastFurnace.java @@ -0,0 +1,46 @@ +package techreborn.tiles; + +import techreborn.init.ModBlocks; +import techreborn.util.Inventory; +import ic2.api.energy.prefab.BasicSink; +import ic2.api.tile.IWrenchable; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +public class TileBlastFurnace extends TileMachineBase implements IWrenchable { + + public int tickTime; + public BasicSink energy; + public Inventory inventory = new Inventory(3, "TileBlastFurnace", 64); + + @Override + public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) { + return false; + } + + @Override + public short getFacing() { + return 0; + } + + @Override + public void setFacing(short facing) { + } + + @Override + public boolean wrenchCanRemove(EntityPlayer entityPlayer) { + return true; + } + + @Override + public float getWrenchDropRate() { + return 1.0F; + } + + @Override + public ItemStack getWrenchDrop(EntityPlayer entityPlayer) { + return new ItemStack(ModBlocks.BlastFurnace, 1); + } + +} diff --git a/src/main/resources/assets/techreborn/textures/gui/alloy_furnace.png b/src/main/resources/assets/techreborn/textures/gui/alloy_furnace.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef7b9c51afe635fd3dd56180ee6cd038ed0f665 GIT binary patch literal 1757 zcmaJ>3pCVe6#wSm41)+YDtSz8sU?pxWjtqUhcU^ZWRi(d#FFQ>!-g>)Mc!7aRvu9% zd6q~;quL#d%~X=tF@u@HdL*wC#>|dWXHR>!eBb%b{hj-}_kQR8?m72@BblfuuPzS& zP$bzB4gmm@LKr~GNDVdg)+woxIbla60Lk(#XkcYYJ#xXeu0H{w^kn(L>N5SurB2y1 zBztRFo{Tce;JZZ3X@oSXvXUst+6 zG2Ui;gXHO;Zt`KZz0TSAb;XCT|6XxucxE;EW<6e~A=xelkF078E_l@YKIi4Z_(_h{ zkI`dV!7YQwR2n{>({IjBOCYyEN3DIvW( zzcVqh=(4t8pw~npD@r`Qj71`<)ez)}X$ZyGsF^m@mx=qX7tE6 z3R!R7X^%JITG^FUl+k){>n6{WKsB(G4Q?1>rwnVF$)W+KdB%(1{XA=d$cpCI3pzT} zB@6upa^U$fu?L66XIx2s`nIEmc6#b(E*uF`-NeLeRug0gkXAH#JkpGTY3Tjv)&G14 z8ocI(zsG$PH=XNs&<`>`L7Rb=Fho3YoFKX@tTpW8 zRs#rsa;Mv?%7^;g>B0`b^69@j%bJ_o)R_0~E0<@Z@R|*0XZ=QZEi5roY>EzXLQa(M zRBUIXjB0q$%;HkHSVS{QeCg}lg5}w6gK7cI91YM?>)1-lc|~uO2deIJNU-z6;2#QZ zz<0{a($sW*Fr1r@lL{EOd%OREEWR30%@aXD&Vd1A#&2f>+SGQ7c?8J94K!;HxH6CF z2{bcHG4r`;CDI6AW&ppr?m!2Bq|2}7%|jY7JAi&X-I-yDr6C+EiI1Pq9IuAp!Q8F( zk&AaR`u-YK2wK1*HbxdgLufE6w&{uzzw2VK4Iw1Hg#ch(ab#BYK7R)V2==O{Wswx*+ z9#%xJuB@!=rlnj9u1A`^;p{nma1@4_*QRh<&*VfNq56u{XuX$5%$ySR0S$qlbup>% zO#xe5P^oti01lJ^et98$0hS?JKb2ve5!SlzDQq&(wCan%|AZ=o0#aa$0cLF+mX25EhxDBZ`oLy}kK{%16572-K00fX<0Z8T#QfBM$n^D-s+0mNR zlNz_bPfje{k(8KtPQkElOGe0Tqc#yL=KM2H0--)y!k99yH_m#HDU_#8DR!OL<8AQi z4WX+1Y5KorzGzPwBuLw|&Cr83vZe%8<`qbZK}7!gESQ*s->93OrUf)Ee#f>F>Rvqa-{9v6qbETxIJTMM#&$rYc2B z!=AQU0oF7?;j8_BmImrqmP#ZSdW0r$W@ylxj>ME`QV_MD)c@5@d^jyaCDYs0Mfl4^ z|NcTfW?5gLx%z946&V!M#6V3+ZqHJ8--TkFLdKpYZDbh_`i9&qOkzc9Me>`&T`_A# e@^eYYU6NH7^5pGy-$PJ<^pLE{go^#N*na@>oSKFJ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/gui/centrifuge.png b/src/main/resources/assets/techreborn/textures/gui/centrifuge.png index 8a9834e83eee67417de0570262f48034a5ada7b5..c3bb9bbad4f501490a46ef55235f323adf3c85f7 100644 GIT binary patch literal 2200 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 LDdfWMy^sA3PF<$$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/gui/industrial_blast_furnace.png b/src/main/resources/assets/techreborn/textures/gui/industrial_blast_furnace.png new file mode 100644 index 0000000000000000000000000000000000000000..3d6b145e0e76a126482682e461508f2cdbf79826 GIT binary patch literal 1816 zcmbVL3p5m17``)x8IOu2qlAWy%@A#i5L3qMlpz@+n@1io!XROm@i;Obq2@HTd9EI$ zJn~+I>M#aH9@}_M#&eH6W5f)zqun~4vz<<7?|=UDfA_!V{`dPIH_--XzD;b87yw|K zr3Ka&0EhrW0767yoP!Fy1V+UDq&XJww*a8Xl!X2izhfJ2mg_M zQ8=(O!ZhCPG|f}~Xpl-7`q98F$AsK4&m3je4J6`d&1K$vdNDW^W!BcvhpVqFlQ&if z>u+YB0=aV>c?0=?Vl;i_$s&@=R+sfCKL-lRhw(Cw*msTZtqrd%$1#uUC{!C{)kIC! zCtnb5Dlq0M)>rP7x)K1zh3GG?clVvW>;sE_UA@#sAQI@q3Ck1nhnjCXuqZPIbQlI$ z9Os0~HP&z7(9R$B=M}Qo)Ek>i>Q-B<+Q|^5ZCTdd^HGZo`XalVrAYzlcb+OnBH`p( zd6I*{V)tyu6aKWDtSPXVJl}N7g`P83=k7CgHUyPC!y14hfTg2Ruu&ANQZ>p*cgo$b zi3Hj_cWptAShRHz`(s_Fc==j2ybB^ zS^|TC%`>}9gZ4`T3dJO0yQw3MQ6w@Xl*^H>mQ7AhPRryy9F~;?zD4Nv%Pe?lzxO6Q zOOJ?3RW$Y&2S1{@XEJ%pjZn3uym{>wi&!CkiIZ33oOEx#K8gbbE*r_T9eM^NsYj52-aixRJz=R!*Saj9#jju9(i+& zcy$Axt{OS$UlOou&x%VXK^%xm14)3{`UWsprKCJco*J9&9N8H#KY?3RI{!S*=`j!x z=|7WyqwWI=(+yEeLM<6ubEL0?XD5Tfw!JY`YmW7MW6UFU_L=E`xG>IqsxieoND2cY z7Wx@fqED0&3N@0Iox1Afl|8^LvR8L1vS(3)CFkQi-y2R&O)l^zcFfV zm`9rI_pbK%+2)pXOr{|=NIiNkZnK-mqmc_dA9ZweELXg|ot1ShF;SG7vkbMNc{*oi za9ME;#Z=db2z|l4J}|zdqpN#sSzSpY;Sx!%wC)W#&>(#eHOE7!G;}G)C{q8S3!|c@ z=He1H6ttD4+$X&8<@+()-J}l~Ge(5Y*2!3`t(Kc~Ll*p6a~)hH7`s0eNTh`xL-4c7 z3B>~BiECyr)YX_!00m4aQ#lR@R0Al1Xdv()1o9bv185!5G2C6RmejzHG3>nC=PO6o zJC@dS@kmGSECRC%?@IG3mn*Vw*K7GJT)uJe*=HiKPmI0*u%;gbJ=|F_8VwiAbCy)(($1#Ttez#7f7c{3J2<_?T1yx}8GNBXRszwd*}=gOwRFTd(a<9YN-^ zh?$6Sg>SJ(M4uF-sM4B_v1#<01UoFE}&uo1|Dj!Y6Xr%~t;vZ{=vDT>y4#GN%`FA9~IQjzq i_wfIDz9*!X$ENV2n7FjYVJ|fxSeB+ZZ1D-#*uMeGa>8B! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/gui/industrial_electrolyzer.png b/src/main/resources/assets/techreborn/textures/gui/industrial_electrolyzer.png new file mode 100644 index 0000000000000000000000000000000000000000..bb88d9fb7c46a8703d11a18314b60dd28b24cca3 GIT binary patch literal 2182 zcmbtUdo&*6z2V01%eE5#fJl+-m<))y6hmn z0#uH0JM64Hh|pf|u(mQB-wA+GkB z3GB;au?Wn}@b_KPCQ(8u+vUMj^+bDDkmFE%>4adAHA*$67(Sg#4yd&4o#9VSowMoW zrn(9Zph>9=dR7%i>%s4DINn(eUzZR?aAp_8h)WU#D zU3`A=lDl~3UX`$iQR+M%q85n=`FOW%-?0b=w=Qh#;2He!PjO7SSYFvsWjImt=}zgd z!e*vCoDB{o>W}4_OBV#sl!X(VCIKNs8#V(;|C(mQ1L_AqMLp{?P+)kX4w-sn?9wq3^_9QxP9~4`b*zJPh=J!b2 zXrnA$^~8IQGU-*}E88ZNh;4}^fvhXjy4<>X=JA20VNWe*t;&Qs(L%rb#Hi|hISi-2 z{>qm$+^F?YkYkCWp0yX;qI$F{C*@@b4VtYN~sw&jg5v324nMKS+^O#I+&;d zwubdNb}|=s1y8J@7}wU;ni+0p&-?oMxra62>ERPyzNOK^(HCjv^77oMKAH|`cgOst zGWJY_J-cY|p3R`8n!_!37K^ptYEz~Rg)kpS2Z=+2IX6^%VYpT}fCEinw53EDXFAQS zjb0FjS(4|dcm@~yWp&FP!BpkLhnD{I2x`-lCt6y{g^ACw7z=>DoagCNA{%L)E#+LK zUE}llfe8j=TN|4kdQP1wP$ZV}r>8SM$L3=1?*kO$1I3-i9_GK*r96g%BB13iq*ngE1EMNAeW|mwP}WwT4~EweFk>w5p@vJl6K8w{6_RR|NP85o1ycZyJ*lm==~2076R_^k>M4pSjnU$F}fCRHm+xGa(-%LD!hBP1knHGZpr%30z!R#W1W z?>HA~PSn)f4h;?2vZnO^dbhvNT#GiTqi1@Eq>`Dqv`DSGW!Q>xiO zff-EZ9_78jwdc#1+GGM!!H^LWpa1Kl(v9a02zSv`WdRnjD?iaGP@F!iFp65o>g~a#h4W_^=-i)~i z;Fh~Q9B31Dvc~P{;!{sISpbvPGqi7i1P4f|kCCpc8`k51>rJ=dGvypV$ zwp$TJ|EW}o7*M$2gXV^9z{|i)^zuCH$~R@Q5QU^&r5u0V4HTPkNqN zwu9#Pa(@iU?S0@oJ;vJq73IM+);ya1PZ%Ed)hp=yBeszLy7zX+^oX+$nmf0EF%5!t zMO;vkTlMZ6!Y m`Mb#fo#4lZ{GF7P(=z1%a`$-PH69))hMTj8Q^h{QmHz>72bAOh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/gui/industrial_grinder.png b/src/main/resources/assets/techreborn/textures/gui/industrial_grinder.png new file mode 100644 index 0000000000000000000000000000000000000000..eac89f2b275f8c5f998e9ef9b8e8a727d21022ea GIT binary patch literal 2427 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