From 8046e10b0918bd48f88ae21b7a2e8c91a0b44532 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sat, 23 Feb 2019 16:37:46 +0100 Subject: [PATCH] arc furnace, new press texture, amGen --- assets/hbm/lang/de_DE.lang | 8 ++ assets/hbm/lang/en_US.lang | 8 ++ .../textures/blocks/machine_amgen_side.png | Bin 0 -> 346 bytes .../hbm/textures/blocks/machine_amgen_top.png | Bin 0 -> 386 bytes ...l.png => machine_arc_furnace_top_rods.png} | Bin .../blocks/machine_gas_furnace_off.png | Bin 0 -> 447 bytes .../blocks/machine_gas_furnace_on.png | Bin 0 -> 736 bytes .../blocks/machine_gas_furnace_side.png | Bin 0 -> 435 bytes .../blocks/machine_gas_furnace_top.png | Bin 0 -> 427 bytes assets/hbm/textures/gui/gui_arc.png | Bin 0 -> 2595 bytes .../{blocks/arc => items}/arc_electrode.png | Bin .../arc => items}/arc_electrode_burnt.png | Bin .../hbm/textures/items/arc_electrode_desh.png | Bin 0 -> 250 bytes assets/hbm/textures/models/epress_body.png | Bin 1607 -> 4673 bytes com/hbm/blocks/ModBlocks.java | 4 + com/hbm/blocks/machine/MachineAmgen.java | 44 ++++++++ com/hbm/blocks/machine/MachineArcFurnace.java | 16 ++- com/hbm/entity/logic/EntityEMP.java | 28 +++++ .../missile/EntityMissileEMPStrong.java | 48 ++++++++ com/hbm/handler/GUIHandler.java | 18 +++ .../container/ContainerMachineArcFurnace.java | 88 +++++++++++++++ .../inventory/gui/GUIMachineArcFurnace.java | 73 ++++++++++++ com/hbm/items/ModItems.java | 9 ++ com/hbm/main/CraftingManager.java | 2 + com/hbm/main/MainRegistry.java | 10 ++ com/hbm/main/ResourceManager.java | 1 + com/hbm/packet/AuxGaugePacket.java | 7 ++ .../machine/TileEntityMachineAmgen.java | 83 ++++++++++++++ .../machine/TileEntityMachineArcFurnace.java | 104 ++++++++++++++---- 29 files changed, 525 insertions(+), 26 deletions(-) create mode 100644 assets/hbm/textures/blocks/machine_amgen_side.png create mode 100644 assets/hbm/textures/blocks/machine_amgen_top.png rename assets/hbm/textures/blocks/{machine_arc_furnace_top_el.png => machine_arc_furnace_top_rods.png} (100%) create mode 100644 assets/hbm/textures/blocks/machine_gas_furnace_off.png create mode 100644 assets/hbm/textures/blocks/machine_gas_furnace_on.png create mode 100644 assets/hbm/textures/blocks/machine_gas_furnace_side.png create mode 100644 assets/hbm/textures/blocks/machine_gas_furnace_top.png create mode 100644 assets/hbm/textures/gui/gui_arc.png rename assets/hbm/textures/{blocks/arc => items}/arc_electrode.png (100%) rename assets/hbm/textures/{blocks/arc => items}/arc_electrode_burnt.png (100%) create mode 100644 assets/hbm/textures/items/arc_electrode_desh.png create mode 100644 com/hbm/blocks/machine/MachineAmgen.java create mode 100644 com/hbm/entity/logic/EntityEMP.java create mode 100644 com/hbm/entity/missile/EntityMissileEMPStrong.java create mode 100644 com/hbm/inventory/container/ContainerMachineArcFurnace.java create mode 100644 com/hbm/inventory/gui/GUIMachineArcFurnace.java create mode 100644 com/hbm/tileentity/machine/TileEntityMachineAmgen.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index fb417cb48..2920ad664 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -335,6 +335,9 @@ container.rtgFurnace=RTG-Ofen tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_on.name=Elektrischer Ofen container.electricFurnace=Elektrischer Ofen +tile.machine_arc_furnace_off.name=Lichtbogenofen +tile.machine_arc_furnace_on.name=Lichtbogenofen +container.arcFurnace=Lichtbogenofen tile.machine_generator.name=Atomreaktor (Alt) container.generator=Atomreaktor tile.red_wire_coated.name=Geschirmtes rotes Kupferkabel @@ -518,6 +521,9 @@ item.chemistry_template.name=Chemievorlage: item.siren_track.name=Sirenentrack item.fuse.name=Sicherung +item.arc_electrode.name=Graphitelektrode +item.arc_electrode_burnt.name=Geschmolzene Elektrode +item.arc_electrode_desh.name=Desh-Elektrode tile.test_nuke.name=Test Atombombe @@ -1085,6 +1091,8 @@ item.rod_dual_waste.name=Doppelter Atommüllstab item.rod_quad_waste.name=Vierfacher Atommüllstab item.gun_rpg.name=Carl Gustav Reaktive Panzerbüchse +item.gun_karl.name=Karl +item.gun_panzerschreck.name=Panzerschreck item.gun_rpg_ammo.name=Rakete item.gun_stinger.name=FIM-92 Stinger item.gun_skystinger.name=The One Sky Stinger diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 12a3f7601..e8408f4f3 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -335,6 +335,9 @@ container.rtgFurnace=RTG Furnace tile.machine_electric_furnace_off.name=Electric Furnace tile.machine_electric_furnace_on.name=Electric Furnace container.electricFurnace=Electric Furnace +tile.machine_arc_furnace_off.name=Arc Furnace +tile.machine_arc_furnace_on.name=Arc Furnace +container.arcFurnace=Arc Furnace tile.machine_generator.name=Nuclear Reactor (Old) container.generator=Nuclear Reactor tile.red_wire_coated.name=Coated Red Copper Cable @@ -518,6 +521,9 @@ item.chemistry_template.name=Chemistry Template: item.siren_track.name=Siren Track item.fuse.name=Fuse +item.arc_electrode.name=Graphite Electrode +item.arc_electrode_burnt.name=Molten Electrode +item.arc_electrode_desh.name=Desh Electrode tile.test_nuke.name=Test Nuke @@ -1085,6 +1091,8 @@ item.rod_dual_waste.name=Nuclear Waste Dual Rod item.rod_quad_waste.name=Nuclear Waste Quad Rod item.gun_rpg.name=Carl Gustav Recoilless Rifle +item.gun_karl.name=Karl +item.gun_panzerschreck.name=Panzerschreck item.gun_rpg_ammo.name=Rocket item.gun_stinger.name=FIM-92 Stinger item.gun_skystinger.name=The One Sky Stinger diff --git a/assets/hbm/textures/blocks/machine_amgen_side.png b/assets/hbm/textures/blocks/machine_amgen_side.png new file mode 100644 index 0000000000000000000000000000000000000000..374d34705f5fa20bacff0ac77e51dfa172fa2536 GIT binary patch literal 346 zcmV-g0j2(lP)l>K6;$&>0YFNL@p!yf zSXI?7-P*OCg6(+w`eeNZGsrUdcz6atMNbR1CyhohpI;LZESIa@oX5UE%yL8z1t~#9 zyJ^#ayZ0BkJ9Q0<#frLauh1pve1rG3sH4j$qSLO?|L3tf_=e2!v7g^Ahsv_S8W&wcH?lou2^+H<6Z_QH7Y?^_p0MOptr_wm2 z-6_wc-dv(8#RhS8hxgm7LjE+EWbkcJ9^7$0dMKod&Nujf8APq-aW)(d$yT07`|GGE z7Hlq~$}?_M$9q3*qAR6XrN>L>mnt_BmP&?wPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00We8KK~y+Tjgd=ggg_KUvz08wrDWQmOUOhJ z#Q$F#0-~VwEF)(D2buK(GU+vB6P;7_#BNO*aw&>i);;f4l}{g9^E^+}^sa>w$#T^& z46f@cpl#bXt-kNaaXj6LknA>1Q^S^*BQGh|3h<`1Cjx}6aq%d!Osf`C)40QcS*0nh?ao;z?e{3C4u(zFv5 zMUm&Z7!sUT!~^h{w+_0>O>_ez_kBLA@%h5vpu_^O!OTrC%<#N7-Y|^o<)X&dfdR7t zSYSi~P+KuNeLegFs2zqO-t#;GUbSGv+yG8&+cu$l2`o`Wnu>f^fa5qYY;$_%IF7j= p55+5y6Y(7>fGCZ0(SOJ^e*gjTlFs{}J|h4C002ovPDHLkV1kYlunzzL literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/machine_gas_furnace_on.png b/assets/hbm/textures/blocks/machine_gas_furnace_on.png new file mode 100644 index 0000000000000000000000000000000000000000..2addbfbe7f5cb4512ebf7d34b5c5901cf01936a7 GIT binary patch literal 736 zcmV<60w4W}P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00#QjsK~y+TjgD(m5@8g__e<3{nN7WDtVuC7 zEeF91BrSMN%A`>)O6&z(cG*>Exiup$xJWJ%yGtO5TCWOx(VM;j-@&XSj85^Y|NQ67 z|2gOUp65Xd%0V%oK2mlH8BR%Js<2)b-DPpDEUp&>CmiJ@@hL@Tci$&IggkC1Qp}42 zzb=MeNg-5?JU@(0R^k(t_;}M3rRb#08}~z&olR?)am-H}k#a7U;%2j)F235CaCGcA zZwh}Ij@yoojIT%9G9=i=*RwjLnq|}UXg;8U@$a8@aB1^lTd3`hDO*D#JGHVff}BX+ zy^TScd60D8XpJkOp0-d=jjEhR^lP0jhXEin)PT%%UjxUyrY*F945M={4#Ssdk$Nfz z9$f>c(f+njOO46gV45|qE<8gjIX*!dBxWeP(G7!oO4s!0RnXUV$G?fDeO8wU%)gn_ zA*FmW;fNIT1fN!5=VGjVVa9+IWGUdamvhl- zmN}8|FZ*j>KRUKatr#$D`}B>1zflY})Sd*7Z_=I_iwRMcJc+G+mNR~0g~69Oaw+Ir zdOJVD5!S|0`n-O4epdbUU4Q@Htq319n^6E140{LIw8aD@iMhO(Yt~|f+Bhv={HR}? z8SdWcyqGeEdAt_0gSjzj+vaJgK-z?dXSs9vv^rfG_z7>0qpmY@&11Yi{&YF_#uLeW1m^tF~y SDvEdj0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00VGL8K~y+Tt&-bngfI|>`?~rVf}n_p^>86r z6_I+NAShHSiVA|-_M!Tl#Ladu%3kbuF-*w+XOfw`d=mP;uj~4qfP_MqSCS-=W%)1! zLE!uT7vcNl=LGq-ZJy`Zwk?X{VQ^iSim2y~ec#7%tg6a!96=BcgRbk?z%lbYPt$}* z6X+0!VQ88rO;cV$QIvIEmu2a??&F5GZ4vR9EX%?$)HID7pf1bu?F5QE&x@i!#MyBi zk%&}MDqt`fEwi}&{>v66Q&}dML3RE z0JMp;zkp5QoC7I&;g6;w>bc`O2bARoY&?Gs=p-}XOFc3Nbf0|I1G@Y d5VD65gkNJ2?B#ek)o}m-002ovPDHLkV1m)mwN?NC literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/machine_gas_furnace_top.png b/assets/hbm/textures/blocks/machine_gas_furnace_top.png new file mode 100644 index 0000000000000000000000000000000000000000..aa647253511fc7baa29f5c2c0419dc7287090a0e GIT binary patch literal 427 zcmV;c0aX5pP)N2bZe?^J zG%hhNHDpIvQUCw}DM>^@R5(wKl1XlaKnz85T{s33-OTe8(hU+QyR6tn>cizxzXa(d zi~NP$*G8 zG)-OCl-`W)_d6s$aw127uIunPj>y=@BtL=QilPVxlcZ5k0KGAhT(8&5 zh&OS1+$@Hiv~vjbQeMD{N^&KC#U Vum>IxCG!9P002ovPDHLkV1oZLr~Lo` literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/gui/gui_arc.png b/assets/hbm/textures/gui/gui_arc.png new file mode 100644 index 0000000000000000000000000000000000000000..521fbb4dca8b60b6809b8064371fd9593a6ad970 GIT binary patch literal 2595 zcmc&$c{mhm7k_66pJd$PUXdl{mMErDn9tfJ*&4g3j0rK8VQkrk=_<+tQ*>;K*nwNrJ7B;vIr6n&3$5Vs{al>!P$#Ce>!=4M{Hv+Gi-vB(C0uV-tc#XJv}MV)S+%M z9W5Rccp3RU)Z5z|TQy)S8OtG{>5IkIWD&H6)Pu9LK}ebTxw)xHA` z@-{X$Y>kh;^LkO;*jO6UKzO#1wAkNhMaZgr#``C*W>xw0H19(>N`fy8^e3 z)U?9_FthBT? zetllV#gHJep+GW40<{yPQ@=}xlQX`=j@nzm;0}xfEQeMjPHM;DTs|?N^cbP-v#vBF zw_~APKcO^&(+kO0jal%TF2w1f#NJ^^_ZX zv9GR}j)}M8V-IxMeST&rRnVKFjN?aNPD}hY60EkH2c*>2WtN^ zjv^g4bNn*aD?(HsJXJ>y^U2()pgpCOMde*0(>AH%ZGsg0;+c!q4d`A2Yln2(#~n6a z+lKNGqP5V^85vzD%5Zw`$nIYC4{;PEDtB#*V`r7}I({6hC&HLsW1t8HoL`}CI>5y? z`?9ftSkW-9xHsJ@zc<-N0d-%SpuypAY%5 zz}P`R)_IH#*Gdze+>B%Gm!<2{(8LqK(z7R5uXeaqu?_)pbO}g~^hs4!FAN4VhGbc- zEVBcorKMT)R6iVU;r$kRVsg?#yOb@3JmapZWnhH5rFQc^<{QR974hzVj0Tv zWu~d2bFMCaYKhAiAtSz4pqa_A=9-y9h)2D<)V>2mc;=sKU?NRZz|xalH?(}ly-E6g z0N0FP|I>r;TDJR}NR8*K6KUztX2fil+T%!=3m$L9BkBm_JEXo=yYVn;WXCPSqTE`r z`PHin*jwn^co*U1hpVfrC2=4%0;Zo5a_bhu=e$I0UgT)n;ughLxrO!MBK!AT-Ul5V z80c+`SUYyUhKIM7!x-;A)&)+bPiksw8Ms=M`W_yCL?!;&r(6#Y4?8OBMSZrHSkNoRAK-JTTx?9vM-3j?vNbvmxLSSg+d<=wjQq5dobe-PSnVVX}rCA={wa@2u0 zSW4|}BxB>*SLlndCQ)ZI>r(rz0d5H>FTWe0v&h}K6&5?EouU&lp#%bT1gWnXgwf|JsuaM8mr42Z zLjAZ}hNrr!wtzqF)74U@daN;5(T3+NEj{Jy>q{P*H~nqXo*+fy!$!H4u0WP{)f6gK`b-3);nR$Zr3s!A8EtN3i z1o7YIQ^hLFeRvG2`Wq*1o@fk_PH#&^W0LQoE@%rrWQ5plnX)`hH%YVVCuM#mTudGxsak_r} z@oRAx@p|3;z@<_MG$Wt@kpO^*A^e>=4gFAqsHI2rYWu56aX?V?9)6+}UapJ?4nW7n^gU`3|2xn8Kd!wZk&djV z#&lxrT*O6-p-C{C|MW~hPb6gTw5)_lw^ka?$7kv7zJ$YbkUHKvVlD`c+%F0e+o#bk n8J$W*KVvQ*Z_E1si|N#!?S#2T&`z%WS289>mkrA&5INPB-{=C#Fx?;*sf)DYU>*L9k=Pk@ZQ8&dG}vk8GN|^3I&}pP4+& z$C`e8&fwU`)XHtR^9QF)gLT1a&I>yj&K;0BW5K##Ca+OwMZ?nFHn$p&ySHbzE@s@u zu5WdouPnjw9@qNn0s{wev0auD4?gnUaQP7L!2GFT$FuEkGaQ&Nm3`1k^yfKn@8Q}* wp^qlb6ne7ggC=u*I-3#e%oXv|Y@I){TNDK=9pUA40Xm++)78&qol`;+0Jn2qivR!s literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/epress_body.png b/assets/hbm/textures/models/epress_body.png index 91eeaa1c4419517d23ce6b59b4759ba9cb7a9efd..68cb7185e64ab0503c3d86366dfa5576244f23ba 100644 GIT binary patch literal 4673 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 5) { + return iconRods; + } + } + + if(metadata > 5) + metadata -= 4; + if(side == 0) return this.iconBottom; if(side == 1) @@ -147,7 +159,7 @@ public class MachineArcFurnace extends BlockContainer { TileEntityMachineArcFurnace entity = (TileEntityMachineArcFurnace) world.getTileEntity(x, y, z); if(entity != null) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_electric_furnace, world, x, y, z); + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_arc, world, x, y, z); } return true; } else { diff --git a/com/hbm/entity/logic/EntityEMP.java b/com/hbm/entity/logic/EntityEMP.java new file mode 100644 index 000000000..117e5aa7f --- /dev/null +++ b/com/hbm/entity/logic/EntityEMP.java @@ -0,0 +1,28 @@ +package com.hbm.entity.logic; + +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class EntityEMP extends Entity { + + public EntityEMP(World p_i1582_1_) { + super(p_i1582_1_); + } + + @Override + protected void entityInit() { } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + // TODO Auto-generated method stub + + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + // TODO Auto-generated method stub + + } + +} diff --git a/com/hbm/entity/missile/EntityMissileEMPStrong.java b/com/hbm/entity/missile/EntityMissileEMPStrong.java new file mode 100644 index 000000000..a65f531d7 --- /dev/null +++ b/com/hbm/entity/missile/EntityMissileEMPStrong.java @@ -0,0 +1,48 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMissileEMPStrong extends EntityMissileBaseAdvanced { + + public EntityMissileEMPStrong(World p_i1582_1_) { + super(p_i1582_1_); + } + + public EntityMissileEMPStrong(World world, float x, float y, float z, int a, int b) { + super(world, x, y, z, a, b); + } + + @Override + public void onImpact() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 25.0F, true, true, true); + } + + @Override + public List getDebris() { + List list = new ArrayList(); + + list.add(new ItemStack(ModItems.plate_steel, 10)); + list.add(new ItemStack(ModItems.plate_titanium, 6)); + list.add(new ItemStack(ModItems.thruster_medium, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); + + return list; + } + + @Override + public ItemStack getDebrisRareDrop() { + return new ItemStack(ModItems.warhead_generic_medium); + } + + @Override + public int getMissileType() { + return 1; + } +} diff --git a/com/hbm/handler/GUIHandler.java b/com/hbm/handler/GUIHandler.java index f458fbef3..5213df71c 100644 --- a/com/hbm/handler/GUIHandler.java +++ b/com/hbm/handler/GUIHandler.java @@ -731,6 +731,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_machine_arc: + { + if(entity instanceof TileEntityMachineArcFurnace) + { + return new ContainerMachineArcFurnace(player.inventory, (TileEntityMachineArcFurnace) entity); + } + return null; + } } } else { //CLIENTONLY CONTAINERS @@ -1462,6 +1471,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_machine_arc: + { + if(entity instanceof TileEntityMachineArcFurnace) + { + return new GUIMachineArcFurnace(player.inventory, (TileEntityMachineArcFurnace) entity); + } + return null; + } } } else { //CLIENTONLY GUIS diff --git a/com/hbm/inventory/container/ContainerMachineArcFurnace.java b/com/hbm/inventory/container/ContainerMachineArcFurnace.java new file mode 100644 index 000000000..72a31760d --- /dev/null +++ b/com/hbm/inventory/container/ContainerMachineArcFurnace.java @@ -0,0 +1,88 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotMachineOutput; +import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; +import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineArcFurnace extends Container { + + private TileEntityMachineArcFurnace diFurnace; + + public ContainerMachineArcFurnace(InventoryPlayer invPlayer, TileEntityMachineArcFurnace tedf) { + + diFurnace = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 56, 17)); + this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 1, 116, 35)); + this.addSlotToContainer(new Slot(tedf, 2, 38, 53)); + this.addSlotToContainer(new Slot(tedf, 3, 56, 53)); + this.addSlotToContainer(new Slot(tedf, 4, 74, 53)); + this.addSlotToContainer(new Slot(tedf, 5, 8, 53)); + + for(int i = 0; i < 3; i++) + { + for(int j = 0; j < 9; j++) + { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) + { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public void addCraftingToCrafters(ICrafting crafting) { + super.addCraftingToCrafters(crafting); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) + { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if (var4 != null && var4.getHasStack()) + { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if (par2 <= 5) { + if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) + { + return null; + } + } + else if (!this.mergeItemStack(var5, 0, 1, false)) + { + if (!this.mergeItemStack(var5, 2, 6, false)) + return null; + } + + if (var5.stackSize == 0) + { + var4.putStack((ItemStack) null); + } + else + { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return diFurnace.isUseableByPlayer(player); + } +} diff --git a/com/hbm/inventory/gui/GUIMachineArcFurnace.java b/com/hbm/inventory/gui/GUIMachineArcFurnace.java new file mode 100644 index 000000000..e1dd01046 --- /dev/null +++ b/com/hbm/inventory/gui/GUIMachineArcFurnace.java @@ -0,0 +1,73 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineArcFurnace; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineArcFurnace extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_arc.png"); + private TileEntityMachineArcFurnace diFurnace; + + public GUIMachineArcFurnace(InventoryPlayer invPlayer, TileEntityMachineArcFurnace tedf) { + super(new ContainerMachineArcFurnace(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 166; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 51 - 34, 16, 34, diFurnace.power, diFurnace.maxPower); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + //failsafe TE clone + //if initial TE invalidates, new TE is fetched + //if initial ZE is still present, it'll be used instead + //works so that container packets can still be used + //efficiency! + TileEntityMachineArcFurnace fs = null; + + if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineArcFurnace) + fs = (TileEntityMachineArcFurnace) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); + else + fs = diFurnace; + + if(fs.hasPower()) { + int i = (int)diFurnace.getPowerRemainingScaled(34); + drawTexturedModalRect(guiLeft + 8, guiTop + 51 - i, 176, 67 - i, 16, i); + } + + if(diFurnace.canProcess() && diFurnace.hasPower()) + { + drawTexturedModalRect(guiLeft + 55, guiTop + 35, 176, 0, 15, 16); + } + + int j1 = fs.getDiFurnaceProgressScaled(24); + drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 16, j1 + 1, 17); + } +} diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index b896deaad..3c9509e20 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -1118,6 +1118,9 @@ public class ModItems { public static Item titanium_filter; public static Item screwdriver; public static Item overfuse; + public static Item arc_electrode; + public static Item arc_electrode_burnt; + public static Item arc_electrode_desh; public static Item dynosphere_base; public static Item dynosphere_desh; public static Item dynosphere_desh_charged; @@ -2573,6 +2576,9 @@ public class ModItems { titanium_filter = new ItemCapacitor(72000).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); screwdriver = new ItemCustomLore().setUnlocalizedName("screwdriver").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":screwdriver"); overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse"); + arc_electrode = new ItemCustomLore().setUnlocalizedName("arc_electrode").setMaxDamage(250).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode"); + arc_electrode_burnt = new Item().setUnlocalizedName("arc_electrode_burnt").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_burnt"); + arc_electrode_desh = new ItemCustomLore().setUnlocalizedName("arc_electrode_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_desh"); dynosphere_base = new Item().setUnlocalizedName("dynosphere_base").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_base"); dynosphere_desh = new ItemBattery(10000L, 100, 0).setUnlocalizedName("dynosphere_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_desh"); @@ -3641,6 +3647,9 @@ public class ModItems { GameRegistry.registerItem(titanium_filter, titanium_filter.getUnlocalizedName()); GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName()); GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName()); + GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName()); + GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName()); + GameRegistry.registerItem(arc_electrode_desh, arc_electrode_desh.getUnlocalizedName()); //Particle Collider Items GameRegistry.registerItem(crystal_energy, crystal_energy.getUnlocalizedName()); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index b7f769c72..40ced53ee 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -626,6 +626,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.factory_core_advanced), new Object[] { "BSB", "LHL", "BSB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced), 'S', "blockSulfur", 'L', "blockLead", 'H', Item.getItemFromBlock(ModBlocks.factory_advanced_hull) })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.fuse, 1), new Object[] { " S ", "GAG", " S ", 'S', "plateSteel", 'G', Item.getItemFromBlock(Blocks.glass_pane), 'A', ModItems.wire_aluminium })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', "dustCoal", 'T', ModItems.bolt_tungsten })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.arc_electrode_desh, 1), new Object[] { "C", "T", "C", 'C', "dustDesh", 'T', ModItems.arc_electrode })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.redcoil_capacitor, 1), new Object[] { "PFP", "CBC", "CBC", 'P', "plateGold", 'B', Item.getItemFromBlock(Blocks.redstone_block), 'C', ModItems.coil_advanced_alloy, 'F', ModItems.fuse })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.titanium_filter, 1), new Object[] { "PFP", "CBC", "CBC", 'P', "plateLead", 'B', "U238", 'C', "plateTitanium", 'F', ModItems.fuse })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', "plateSteel", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'E', "ingotSteel" })); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index eb8dea227..5fd6ab7a5 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -109,6 +109,7 @@ import com.hbm.entity.grenade.EntityGrenadeZOMG; import com.hbm.entity.item.EntityMinecartTest; import com.hbm.entity.logic.EntityBomber; import com.hbm.entity.logic.EntityDeathBlast; +import com.hbm.entity.logic.EntityEMP; import com.hbm.entity.logic.EntityMissileTest; import com.hbm.entity.logic.EntityNukeExplosion; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; @@ -132,6 +133,7 @@ import com.hbm.entity.missile.EntityMissileClusterStrong; import com.hbm.entity.missile.EntityMissileDoomsday; import com.hbm.entity.missile.EntityMissileDrill; import com.hbm.entity.missile.EntityMissileEMP; +import com.hbm.entity.missile.EntityMissileEMPStrong; import com.hbm.entity.missile.EntityMissileEndo; import com.hbm.entity.missile.EntityMissileExo; import com.hbm.entity.missile.EntityMissileGeneric; @@ -287,6 +289,7 @@ import com.hbm.tileentity.machine.TileEntityFWatzCore; import com.hbm.tileentity.machine.TileEntityForceField; import com.hbm.tileentity.machine.TileEntityFusionMultiblock; import com.hbm.tileentity.machine.TileEntityHatch; +import com.hbm.tileentity.machine.TileEntityMachineAmgen; import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; import com.hbm.tileentity.machine.TileEntityMachineAssembler; import com.hbm.tileentity.machine.TileEntityMachineBattery; @@ -784,6 +787,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityCoreReceiver.class, "tileentity_v0_receiver"); GameRegistry.registerTileEntity(TileEntityCoreInjector.class, "tileentity_v0_injector"); GameRegistry.registerTileEntity(TileEntityMachineArcFurnace.class, "tileentity_arc_furnace"); + GameRegistry.registerTileEntity(TileEntityMachineAmgen.class, "tileentity_amgen"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); @@ -920,6 +924,8 @@ public class MainRegistry EntityRegistry.registerModEntity(EntityMinerRocket.class, "entity_miner_lander", 132, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityFogFX.class, "entity_nuclear_fog", 133, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityDuchessGambit.class, "entity_duchessgambit", 134, this, 1000, 1, true); + EntityRegistry.registerModEntity(EntityMissileEMPStrong.class, "entity_missile_emp_strong", 135, this, 1000, 1, true); + EntityRegistry.registerModEntity(EntityEMP.class, "entity_emp_logic", 136, this, 1000, 1, true); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); @@ -1509,6 +1515,8 @@ public class MainRegistry recipes.overridePreSetRecipe(new ItemStack(Blocks.stone), new ItemStack(Blocks.gravel, 1)); recipes.overridePreSetRecipe(new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.gravel, 1)); recipes.overridePreSetRecipe(new ItemStack(Blocks.stonebrick), new ItemStack(Blocks.gravel, 1)); + recipes.overridePreSetRecipe(new ItemStack(Blocks.gravel), new ItemStack(Blocks.sand, 1)); + recipes.overridePreSetRecipe(new ItemStack(Blocks.sand), new ItemStack(ModItems.dust, 2)); recipes.overridePreSetRecipe(new ItemStack(Blocks.brick_block), new ItemStack(Items.clay_ball, 4)); recipes.overridePreSetRecipe(new ItemStack(Blocks.brick_stairs), new ItemStack(Items.clay_ball, 3)); recipes.overridePreSetRecipe(new ItemStack(Items.flower_pot), new ItemStack(Items.clay_ball, 3)); @@ -1529,6 +1537,8 @@ public class MainRegistry recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_meteorite), new ItemStack(ModItems.powder_meteorite_tiny, 1)); recipes.overridePreSetRecipe(new ItemStack(ModBlocks.block_meteor), new ItemStack(ModItems.powder_meteorite, 10)); recipes.overridePreSetRecipe(new ItemStack(Items.enchanted_book), new ItemStack(ModItems.powder_magic, 1)); + recipes.overridePreSetRecipe(new ItemStack(ModItems.arc_electrode_burnt), new ItemStack(ModItems.powder_coal, 1)); + recipes.overridePreSetRecipe(new ItemStack(ModItems.arc_electrode_desh), new ItemStack(ModItems.powder_desh, 2)); for(int i = 0; i < 16; i++) { recipes.overridePreSetRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, i), new ItemStack(Items.clay_ball, 4)); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 52efcef58..4da3c1a97 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -336,6 +336,7 @@ public class ResourceManager { public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_BU.png"); public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileAA.png"); public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png"); + public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png"); public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_IN.png"); public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_CL.png"); public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_BU.png"); diff --git a/com/hbm/packet/AuxGaugePacket.java b/com/hbm/packet/AuxGaugePacket.java index 8d07e029a..58c824988 100644 --- a/com/hbm/packet/AuxGaugePacket.java +++ b/com/hbm/packet/AuxGaugePacket.java @@ -10,6 +10,7 @@ import com.hbm.tileentity.deco.TileEntityBomber; import com.hbm.tileentity.machine.TileEntityAMSBase; import com.hbm.tileentity.machine.TileEntityAMSEmitter; import com.hbm.tileentity.machine.TileEntityAMSLimiter; +import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; import com.hbm.tileentity.machine.TileEntityMachineBoiler; import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric; import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; @@ -195,6 +196,12 @@ public class AuxGaugePacket implements IMessage { if(m.id == 0) furn.dualCookTime = m.value; } + if (te instanceof TileEntityMachineArcFurnace) { + TileEntityMachineArcFurnace furn = (TileEntityMachineArcFurnace)te; + + if(m.id == 0) + furn.dualCookTime = m.value; + } if (te instanceof TileEntityMachineBoilerElectric) { TileEntityMachineBoilerElectric boiler = (TileEntityMachineBoilerElectric)te; diff --git a/com/hbm/tileentity/machine/TileEntityMachineAmgen.java b/com/hbm/tileentity/machine/TileEntityMachineAmgen.java new file mode 100644 index 000000000..5387dd45b --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityMachineAmgen.java @@ -0,0 +1,83 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.ISource; +import com.hbm.lib.Library; +import com.hbm.saveddata.RadiationSavedData; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.chunk.Chunk; + +public class TileEntityMachineAmgen extends TileEntity implements ISource { + + public List list = new ArrayList(); + public long power; + public long maxPower = 50; + boolean tact = false; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + RadiationSavedData data = RadiationSavedData.getData(worldObj); + Chunk c = worldObj.getChunkFromBlockCoords(xCoord, zCoord); + float rad = data.getRadNumFromCoord(c.xPosition, c.zPosition); + + power += rad; + + data.decrementRad(worldObj, xCoord, zCoord, 5F); + + tact = false; + ffgeuaInit(); + tact = true; + ffgeuaInit(); + } + } + + @Override + public void ffgeuaInit() { + ffgeua(this.xCoord, this.yCoord + 1, this.zCoord, getTact()); + ffgeua(this.xCoord, this.yCoord - 1, this.zCoord, getTact()); + ffgeua(this.xCoord - 1, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord + 1, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord - 1, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord + 1, getTact()); + } + + @Override + public void ffgeua(int x, int y, int z, boolean newTact) { + + Library.ffgeua(x, y, z, newTact, this, worldObj); + } + + @Override + public boolean getTact() { + return tact; + } + + @Override + public long getSPower() { + return power; + } + + @Override + public void setSPower(long i) { + power = i; + } + + @Override + public List getList() { + return list; + } + + @Override + public void clearList() { + list.clear(); + } + +} diff --git a/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 22dcc8e44..15c606d23 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -1,7 +1,9 @@ package com.hbm.tileentity.machine; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineArcFurnace; import com.hbm.interfaces.IConsumer; +import com.hbm.items.ModItems; import com.hbm.items.special.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; @@ -23,16 +25,22 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv public int dualCookTime; public long power; public static final long maxPower = 100000; - public static final int processingSpeed = 100; + public static final int processingSpeed = 20; - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {2, 0}; + //0: i + //1: o + //2: 1 + //3: 2 + //4: 3 + //5: b + private static final int[] slots_top = new int[] {0, 2, 3, 4, 5}; + private static final int[] slots_bottom = new int[] {1, 2, 3, 4, 5}; private static final int[] slots_side = new int[] {0}; private String customName; public TileEntityMachineArcFurnace() { - slots = new ItemStack[3]; + slots = new ItemStack[6]; } @Override @@ -68,7 +76,7 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv @Override public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.electricFurnace"; + return this.hasCustomInventoryName() ? this.customName : "container.arcFurnace"; } @Override @@ -103,11 +111,18 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) + + if(i == 1) + return false; + + if(i == 5) if(itemStack.getItem() instanceof ItemBattery) return true; - if(i == 1) + if(i == 2 || i == 3 || i == 4) + return itemStack.getItem() == ModItems.arc_electrode || itemStack.getItem() == ModItems.arc_electrode_desh; + + if(i == 0) return true; return false; @@ -188,12 +203,16 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 0) + if(i == 5) if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == 0) return true; - if(i == 2) + + if(i == 1) return true; + if(i == 2 || i == 3 || i == 4) + return itemStack.getItem() == ModItems.arc_electrode_burnt; + return false; } @@ -213,46 +232,62 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv return this.dualCookTime > 0; } + private boolean hasElectrodes() { + + if(slots[2] != null && slots[3] != null && slots[4] != null) { + if((slots[2].getItem() == ModItems.arc_electrode || slots[2].getItem() == ModItems.arc_electrode_desh) && + (slots[3].getItem() == ModItems.arc_electrode || slots[3].getItem() == ModItems.arc_electrode_desh) && + (slots[4].getItem() == ModItems.arc_electrode || slots[4].getItem() == ModItems.arc_electrode_desh)) + return true; + } + + return false; + } + public boolean canProcess() { - if(slots[1] == null) + + if(!hasElectrodes()) + return false; + + if(slots[0] == null) { return false; } - ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]); + ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); if(itemStack == null) { return false; } - if(slots[2] == null) + if(slots[1] == null) { return true; } - if(!slots[2].isItemEqual(itemStack)) { + if(!slots[1].isItemEqual(itemStack)) { return false; } - if(slots[2].stackSize < getInventoryStackLimit() && slots[2].stackSize < slots[2].getMaxStackSize()) { + if(slots[1].stackSize < getInventoryStackLimit() && slots[1].stackSize < slots[1].getMaxStackSize()) { return true; }else{ - return slots[2].stackSize < itemStack.getMaxStackSize(); + return slots[1].stackSize < itemStack.getMaxStackSize(); } } private void processItem() { if(canProcess()) { - ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]); + ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); - if(slots[2] == null) + if(slots[1] == null) { - slots[2] = itemStack.copy(); - }else if(slots[2].isItemEqual(itemStack)) { - slots[2].stackSize += itemStack.stackSize; + slots[1] = itemStack.copy(); + }else if(slots[1].isItemEqual(itemStack)) { + slots[1].stackSize += itemStack.stackSize; } - for(int i = 1; i < 2; i++) + for(int i = 0; i < 1; i++) { if(slots[i].stackSize <= 0) { @@ -265,6 +300,15 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv slots[i] = null; } } + + for(int i = 2; i < 5; i++) { + if(slots[i] != null && slots[i].getItem() == ModItems.arc_electrode) { + if(slots[i].getItemDamage() < slots[i].getMaxDamage()) + slots[i].setItemDamage(slots[i].getItemDamage() + 1); + else + slots[i] = new ItemStack(ModItems.arc_electrode_burnt); + } + } } } @@ -279,9 +323,9 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv { dualCookTime++; - power -= 50; + power -= 1000; - if(this.dualCookTime == TileEntityMachineElectricFurnace.processingSpeed) + if(this.dualCookTime == processingSpeed) { this.dualCookTime = 0; this.processItem(); @@ -304,7 +348,19 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv MachineArcFurnace.updateBlockState(this.dualCookTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } - power = Library.chargeTEFromItems(slots, 0, power, maxPower); + if(worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_arc_furnace_off) { + + int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); + + if(hasElectrodes() && meta <= 5) { + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, meta + 4, 2); + } + if(!hasElectrodes() && meta > 5) { + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, meta - 4, 2); + } + } + + power = Library.chargeTEFromItems(slots, 5, power, maxPower); PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power)); PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, dualCookTime, 0));