From bdcb9b3d88fe0b112658d52316c67de6904b5cc5 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Thu, 8 Nov 2018 14:39:05 +0100 Subject: [PATCH] bomber sounds, small reactor upgrade, new steam variants --- assets/hbm/lang/de_DE.lang | 5 +- assets/hbm/lang/en_US.lang | 5 +- assets/hbm/sounds.json | 2 + assets/hbm/sounds/entity/bombDet1.ogg | Bin 0 -> 14428 bytes assets/hbm/sounds/entity/bombDet2.ogg | Bin 0 -> 12505 bytes assets/hbm/sounds/entity/bombDet3.ogg | Bin 0 -> 19813 bytes assets/hbm/sounds/entity/bombWhistle.ogg | Bin 0 -> 11880 bytes assets/hbm/sounds/entity/bomber1.ogg | Bin 0 -> 11790 bytes assets/hbm/sounds/weapon/laserBang4.ogg | Bin 0 -> 19813 bytes .../textures/gui/gui_reactor_experimental.png | Bin 3334 -> 3273 bytes .../gui/gui_reactor_overlay_experimental.png | Bin 0 -> 3719 bytes assets/hbm/textures/models/tank_HOTSTEAM.png | Bin 0 -> 4641 bytes .../textures/models/tank_SUPERHOTSTEAM.png | Bin 0 -> 5232 bytes com/hbm/entity/logic/EntityBomber.java | 14 +- .../entity/projectile/EntityBombletZeta.java | 10 +- com/hbm/handler/FluidTypeHandler.java | 8 +- com/hbm/inventory/MachineRecipes.java | 7 +- .../ContainerMachineReactorSmall.java | 3 - .../ContainerMachineReactorSmallOld.java | 97 +++ com/hbm/inventory/gui/GUICoreAdvanced.java | 18 +- com/hbm/inventory/gui/GUICoreTitanium.java | 17 +- com/hbm/inventory/gui/GUIMachineBoiler.java | 4 +- .../gui/GUIMachineBoilerElectric.java | 4 +- .../inventory/gui/GUIMachineReactorSmall.java | 40 +- .../gui/GUIMachineReactorSmallOld.java | 172 +++++ com/hbm/lib/HbmWorldGen.java | 2 +- com/hbm/main/CraftingManager.java | 1 + com/hbm/main/MainRegistry.java | 1 + com/hbm/packet/AuxButtonPacket.java | 21 +- .../machine/TileEntityMachineBoiler.java | 11 +- .../TileEntityMachineBoilerElectric.java | 14 +- .../TileEntityMachineReactorSmall.java | 128 ++-- .../TileEntityMachineReactorSmallOld.java | 660 ++++++++++++++++++ 33 files changed, 1128 insertions(+), 116 deletions(-) create mode 100644 assets/hbm/sounds/entity/bombDet1.ogg create mode 100644 assets/hbm/sounds/entity/bombDet2.ogg create mode 100644 assets/hbm/sounds/entity/bombDet3.ogg create mode 100644 assets/hbm/sounds/entity/bombWhistle.ogg create mode 100644 assets/hbm/sounds/entity/bomber1.ogg create mode 100644 assets/hbm/sounds/weapon/laserBang4.ogg create mode 100644 assets/hbm/textures/gui/gui_reactor_overlay_experimental.png create mode 100644 assets/hbm/textures/models/tank_HOTSTEAM.png create mode 100644 assets/hbm/textures/models/tank_SUPERHOTSTEAM.png create mode 100644 com/hbm/inventory/container/ContainerMachineReactorSmallOld.java create mode 100644 com/hbm/inventory/gui/GUIMachineReactorSmallOld.java create mode 100644 com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index e74764d85..1b8cb1295 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -43,6 +43,7 @@ hbmfluid.none=Nichts hbmfluid.water=Wasser hbmfluid.steam=Dampf hbmfluid.hotsteam=Dichter Dampf +hbmfluid.superhotsteam=Superverdichteter Steam hbmfluid.lava=Lava hbmfluid.uf6=Uranhexafluorid hbmfluid.puf6=Plutoniumhexafluorid @@ -339,7 +340,9 @@ tile.machine_boiler_on.name=Dampfkessel container.machineBoiler=Dampfkessel tile.machine_boiler_electric_off.name=Elektrischer Boiler tile.machine_boiler_electric_on.name=Elektrischer Boiler -container.machineBoilerElectric=Elektrischer Boiler +container.machineElectricBoiler=Elektrischer Boiler +tile.machine_turbine.name=Dampfturbine +container.machineTurbine=Dampfturbine tile.launch_pad.name=Raketenabschussrampe container.launchPad=Raketenabschussrampe tile.book_guide.name=Hbm's Nuclear Tech Mod Handbuch [LEGACY] diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 2a89f28a7..b1c01e6cb 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -43,6 +43,7 @@ hbmfluid.none=None hbmfluid.water=Water hbmfluid.steam=Steam hbmfluid.hotsteam=Dense Steam +hbmfluid.superhotsteam=Super Dense Steam hbmfluid.lava=Lava hbmfluid.uf6=Uranium Hexafluoride hbmfluid.puf6=Plutonium Hexafluoride @@ -339,7 +340,9 @@ tile.machine_boiler_on.name=Boiler container.machineBoiler=Boiler tile.machine_boiler_electric_off.name=Electric Boiler tile.machine_boiler_electric_on.name=Electric Boiler -container.machineBoilerElectric=Electric Boiler +container.machineElectricBoiler=Electric Boiler +tile.machine_turbine.name=Steam Turbine +container.machineTurbine=Steam Turbine tile.launch_pad.name=Missile Launch Pad container.launchPad=Missile Launch Pad tile.book_guide.name=Hbm's Nuclear Tech Mod Manual [LEGACY] diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index af0324738..7c1321b22 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -102,6 +102,8 @@ "entity.chopperCrashingLoop": {"category": "hostile", "sounds": [{"name": "entity/chopperCrashingLoop", "stream": true}]}, "entity.oldExplosion": {"category": "ambient", "sounds": [{"name": "entity/oldExplosion", "stream": false}]}, "entity.rocketTakeoff": {"category": "player", "sounds": [{"name": "entity/rocketTakeoff", "stream": false}]}, + "entity.bombDet": {"category": "player", "sounds": ["entity/bombDet1", "entity/bombDet2", "entity/bombDet3"]}, + "entity.bombWhistle": {"category": "player", "sounds": [{"name": "entity/bombWhistle", "stream": false}]}, "potatos.random": {"category": "player", "sounds": ["potatos/randResponse0", "potatos/randResponse1", "potatos/randResponse2", "potatos/randResponse3", "potatos/randResponse4", "potatos/randResponse5", "potatos/randResponse6", "potatos/randResponse7"]}, diff --git a/assets/hbm/sounds/entity/bombDet1.ogg b/assets/hbm/sounds/entity/bombDet1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a1f944617c107f2d2c6a3199fb04ad6ddde3cc6b GIT binary patch literal 14428 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%0Dk)vh{B$?#s#o?1F+(~5L>@a;IKOt~Z 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 literal 0 HcmV?d00001 diff --git a/assets/hbm/sounds/entity/bombDet2.ogg b/assets/hbm/sounds/entity/bombDet2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5e2db692180da0e957626a275cc39400e6315e31 GIT binary patch literal 12505 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 literal 0 HcmV?d00001 diff --git a/assets/hbm/sounds/entity/bombDet3.ogg b/assets/hbm/sounds/entity/bombDet3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e66541ab413f22f009236ea7b104fb2169befa5a GIT binary patch literal 19813 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 W4Q60N`>MW&>HlCW@zZuk1^y2m0hcrY literal 0 HcmV?d00001 diff --git a/assets/hbm/sounds/weapon/laserBang4.ogg b/assets/hbm/sounds/weapon/laserBang4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d6301179d77fea90cedb4dabfacb22c5b4682ae0 GIT binary patch literal 19813 zcmagFWmua{&@dXbc=6&+A-ET(I0TpA!QHi3ks`(2ic_56?oh$CxI=M=0>$lwKJO>z z$GOh3*?U%Ic6N5=p2@ONv9i(tzytm#;dBg&zkqw_GCpt=a37ppO>Nv>8sMZVULF8| zGY;IpXA7Ll3+De$FPJYqX?L$~u!NuguY`l}9~l-{ua1qgHJgg76_ve>sn$Q@RPt0@ z9GtuyoE*GVj2oFD|2qR;NW&rhhf5aVhE#)4Rn}7v@QX>ob1(6%PiyAcTo~;fF+uqfm#?i|8ZdWFgW5I@qwbJ*tq`5-l0Q6#}rqbi8t^!N>x8WFbFT z7$bvvI9dop5P2D+gSI#Zri0NX!ZU*9d2dKUti-(t|C@tOTrNHsS$u#fL`EFO0kS{~ ze#o$RDM<*E019OY6^}UqARYk7%V&(tXGFs$sY3${007wU)$sdW$OaS025ZUCQ80Cp zV8Q^Pz{bf%7RtqL$tBY1Cer`QI}uQp;ktjB>mRxt0HCUdA?K~pt0DzLmA6cXm zS!5l#8y<@i^0@*Y5C{Mu!lvPo)DV_UmKxUt&owzL{a;x>)q?mRI!uPxlQx!R$l)9a z#K`~l0meokP9#T9;QtbGAQ1>FAGK0oEo(DR7b^o)D?pwl*XW&?8QChZo8>k(xRb>> z27~gmbTKku<94%p@^sPugBWVPe`PSew7HD!8)xD4!JxO5-tieRjW7tQ(k3=Tp%w(D!jD0y^#7>9Q5v!W#PS4OFLUrGk^8MAeFxT)hz7)J>=iGe?o?>_dWLK7?Win z%H*y!l?;w43D>^(^&ST*NpP0L!Ni_*VX`0!eTs`Zh~Ynh!vo%

15H%l)syG@SY~ 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 literal 3334 zcmbVPc|6ox8$V;4N!H3uAud@iVpji-Qbv460QpU3&RNYRu?+=j426 zjCiKKeUX0t?kwE*Hv&D5Y)-a!P*%dwaz&2pC&4$D*FBi??Q4Pi?Zd%3Qt+uR8eKUP z#$6mQm8$&6nRX0b;W$x$JF8t8w0=>H&t_dF+>F|-l5||Gto=n^kd)8ncx@@`*C)s~ zl+d87&l0ns?{~kC?~SQt?W~&*>K4smjE%VluYI8x_0OK?4<~KDSEe^U{ql)~nrZIK zoZ=Ng=d>0d2F@xHg&3?HDDuu`%BG> z7su4L-?bG7MwE7wOJW%PlG&DqhK6=m$R%cNh`jtEN;^xFne7s^7&S7d=tRn1x*AC$k)DoaEsA=AsaoIBQky~w$&^}ncuo$%l1gh#Xlc&BJ{g?mQ%TP> z_kxo-Q?kU1E~6qpbB1iNE=}uIq|J@uz>-;k*m>?km9)g1Yd^X?%DR=@o%7l=r5WpH zFhaaxlDTnV5q_>Hok!@s(C9?_0r`gmOx#4f2LZ`kH{ZVq5BB0GGw?nxdyzEhdU-#o zpLJ>n&U9t>dMSE(deSFdT7$Dg<>lo!#@#0Z^IM}8D+(W?DZT<^L!3tUJM~saQIlkL zeY}Q@!DWtI*b36UrkY!RdK@I_oNYx#C|7QGO1*8?b|p+x<>*^&7aYk}yC_&-^r*$y z1M`3~<)K-Bqo(DsLG{$%+CAtxON9v&mFcS~HR?gZ!Lzr1bkIjs{^V$2Hdr#Z;cXQn zcuEU_O&slJ-)HYnT&UHXF+G}~0Cx?EJ&vC_Irq?^1JmYcpiXz}T_3zp00?-|*wM-e z%plDENEcU+L-lU;=#hPJP@7+6FTMu3MzC`PJ zF&rOXIrTX7E*(wz;JpW_1{Yi3V;Xkkc9nXNzNGQ~rLau)((>~7yP6<^pI>rqsBIbA zK7b&D>8tP48+Gh&Z&#U5_gSZ#FES(RT7^Nb>Wlp+OJ^!v?a9b)zR$?R<9 zQ`=M_o|q%9=F{0{Qbl(TDVBznH5|uA$RV(-rJJt;^lm#5mmM$gW^1I<8_^ve^u|we zNs*Df3haTvpxywzM+Jn0I~!Nk5VN1{STp+Z>4JHnIsDx6=iIk2XNzBS$rOdlFRC8o z2ZG@~JAk~zH)#g&i622yMoqsyf#Ld6N&>=WyVv*5p z@RZ24A&$_ZX1ohn3NB8hE|D!!1q9IZGLNxud6Y^aYeQm^lyo^MojVaZy>kBG^tnj% z%HAGB=R;{P_XX+8=Aw^NRpCj}Ecb|GGQWql0o}IAqw2#4f8i<7heCRAF`3byO}~t_ zwo>}<>TQpytx}K`c)u0m`{vgy{ia11XicyH`Hwi{rwdo;#-ybCNHDCoL)lIE4Qu$F z6$-Q++-Sy}8%p!a+wG02?v{0v3=qk|Cpg_wpuPB8bV3PZH4fgktSak5u{Q=$kjBU` zlwblR8O)-(+`Lxq;L^1%lYi4A`;z^CK#J*1Nn>{K?u)U!%?reI9!u9#dMsB~*+VAW zVXYz6$$>suhUaBna!N|3#HX@iLPrueGLY5+V?6u)m6ISqq#Q&5Ciq1w45-}rcbEuk z!%qcB*ewc{mtnPbXJ9CXlVG95XnQF#t}id!Oo5@C3^3^2>nmMarzclJc4JXT}*=l+z@}Q*125b3J19Ld8p*J<=a(PZ}VGJ@^6EcVsTj%RL zp}4XjP?jGUYqb)J8si+U0Cvb5hc)fn5NzX_dvp zddIXMr}-4ffX}@xup|!eHA7=#xuL4h`+w9ndO`39B0c9c3E1A(~1~F*TU}=Sc}tW1Ezzq81tcn2Qmt<%jm0dH_7U^ zRe2N&`{wdrzUAfilk*i%l7ao|u#IAP` z5n6Pbo&_ygH&crdZx}M5Jzr%z^Sk~_D%e5EJQl07iG zq5y5YRK?Uh-aTq(bK(BUX9!wsEav+9+Y0q zIfn>tk2rE5>3wik@YDwVvneyw=@G?Z{dz(MRBZnUIx6LgGrj?TFMl05sT-n0DtQu>ZXM6I_Ho7**b*b> Gh<^e`(BQTJ diff --git a/assets/hbm/textures/gui/gui_reactor_overlay_experimental.png b/assets/hbm/textures/gui/gui_reactor_overlay_experimental.png new file mode 100644 index 0000000000000000000000000000000000000000..adbebae9c0827bf50e48f2386e9fde5fd579428e GIT binary patch literal 3719 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 cMnvBC@KFD9wxFVB!5_E=9p%TN(*OVf literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/tank_HOTSTEAM.png b/assets/hbm/textures/models/tank_HOTSTEAM.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5305bcc256c85e86c163241e0767d683dfaefe GIT binary patch literal 4641 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 x && guiTop + 107 < y && guiTop + 107 + 18 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + int c = 0; + + switch(diFurnace.tanks[2].getTankType()) { + case STEAM: c = 0; break; + case HOTSTEAM: c = 1; break; + case SUPERHOTSTEAM: c = 2; break; + } + + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, c, 1)); + } } @Override @@ -100,14 +116,6 @@ public class GUIMachineReactorSmall extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(88); - - i = (int) Math.min(i, 88); - - drawTexturedModalRect(guiLeft + 80, guiTop + 108, 0, 222, i, 4); - } if(diFurnace.hasHullHeat()) { int i = diFurnace.getHullHeatScaled(88); @@ -144,6 +152,12 @@ public class GUIMachineReactorSmall extends GuiInfoContainer { } } + switch(diFurnace.tanks[2].getTankType()) { + case STEAM: drawTexturedModalRect(guiLeft + 63, guiTop + 107, 176, 18, 14, 18); break; + case HOTSTEAM: drawTexturedModalRect(guiLeft + 63, guiTop + 107, 190, 18, 14, 18); break; + case SUPERHOTSTEAM: drawTexturedModalRect(guiLeft + 63, guiTop + 107, 204, 18, 14, 18); break; + } + this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); diff --git a/com/hbm/inventory/gui/GUIMachineReactorSmallOld.java b/com/hbm/inventory/gui/GUIMachineReactorSmallOld.java new file mode 100644 index 000000000..3a7aeb77f --- /dev/null +++ b/com/hbm/inventory/gui/GUIMachineReactorSmallOld.java @@ -0,0 +1,172 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.FluidTank; +import com.hbm.inventory.container.ContainerMachineReactorSmallOld; +import com.hbm.inventory.container.ContainerMachineSelenium; +import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxButtonPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.TileEntityMachineReactorSmallOld; +import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineReactorSmallOld extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_reactor_small.png"); + private static ResourceLocation overlay = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_reactor_small_overlay.png"); + private TileEntityMachineReactorSmallOld diFurnace; + private boolean toggleOverlay = false; + + public GUIMachineReactorSmallOld(InventoryPlayer invPlayer, TileEntityMachineReactorSmallOld tedf) { + super(new ContainerMachineReactorSmallOld(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 222; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + diFurnace.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 36, 16, 52); + diFurnace.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 36, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 108, 88, 4, diFurnace.power, diFurnace.powerMax); + this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 114, 88, 4, new String[] { "Hull Temperature:", " " + Math.round((diFurnace.hullHeat) * 0.00001 * 980 + 20) + "°C" }); + this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 120, 88, 4, new String[] { "Core Temperature:", " " + Math.round((diFurnace.coreHeat) * 0.00002 * 980 + 20) + "°C" }); + + String[] text = new String[] { "Coolant will move heat from the core to", + "the hull. Water will use that heat and", + "generate power.", + "Water consumption rate:", + " 100 mB/t", + " 2000 mB/s", + "Coolant consumption rate:", + " 10 mB/t", + " 200 mB/s", + "Water next to the reactor's open", + "sides will pour into the tank." }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); + + String[] text1 = new String[] { "Raise/lower the control rods", + "using the button next to the", + "fluid gauges." }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); + + if(diFurnace.tanks[0].getFill() <= 0) { + String[] text2 = new String[] { "Error: Water is required for", + "the reactor to function properly!" }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 32 + 16, text2); + } + + if(diFurnace.tanks[1].getFill() <= 0) { + String[] text3 = new String[] { "Use of coolant is advised." }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 32 + 16, text3); + } + } + + @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); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 53 <= x && guiLeft + 53 + 16 > x && guiTop + 54 < y && guiTop + 54 + 16 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, diFurnace.retracting ? 0 : 1, 0)); + } + } + + @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); + + if(toggleOverlay) + Minecraft.getMinecraft().getTextureManager().bindTexture(overlay); + else + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(diFurnace.power > 0) { + int i = (int)diFurnace.getPowerScaled(88); + + i = (int) Math.min(i, 88); + + drawTexturedModalRect(guiLeft + 80, guiTop + 108, 0, 222, i, 4); + } + + if(diFurnace.hasHullHeat()) { + int i = diFurnace.getHullHeatScaled(88); + + i = (int) Math.min(i, 160); + + drawTexturedModalRect(guiLeft + 80, guiTop + 114, 0, 226, i, 4); + } + + if(diFurnace.hasCoreHeat()) { + int i = diFurnace.getCoreHeatScaled(88); + + i = (int) Math.min(i, 160); + + drawTexturedModalRect(guiLeft + 80, guiTop + 120, 0, 230, i, 4); + } + + if(!diFurnace.retracting) + drawTexturedModalRect(guiLeft + 52, guiTop + 53, 212, 0, 18, 18); + + if(!toggleOverlay) { + if(diFurnace.rods >= diFurnace.rodsMax) { + + for(int x = 0; x < 3; x++) + for(int y = 0; y < 3; y++) + drawTexturedModalRect(guiLeft + 79 + 36 * x, guiTop + 17 + 36 * y, 176, 0, 18, 18); + + } else if(diFurnace.rods > 0) { + + for(int x = 0; x < 3; x++) + for(int y = 0; y < 3; y++) + drawTexturedModalRect(guiLeft + 79 + 36 * x, guiTop + 17 + 36 * y, 194, 0, 18, 18); + + } + } + + this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); + this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); + + if(diFurnace.tanks[0].getFill() <= 0) + this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); + + if(diFurnace.tanks[1].getFill() <= 0) + this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32 + 16, 16, 16, 7); + + Minecraft.getMinecraft().getTextureManager().bindTexture(diFurnace.tanks[0].getSheet()); + diFurnace.tanks[0].renderTank(this, guiLeft + 8, guiTop + 88, diFurnace.tanks[0].getTankType().textureX() * FluidTank.x, diFurnace.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); + Minecraft.getMinecraft().getTextureManager().bindTexture(diFurnace.tanks[1].getSheet()); + diFurnace.tanks[1].renderTank(this, guiLeft + 26, guiTop + 88, diFurnace.tanks[1].getTankType().textureX() * FluidTank.x, diFurnace.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); + } + + protected void keyTyped(char p_73869_1_, int p_73869_2_) + { + super.keyTyped(p_73869_1_, p_73869_2_); + + if (p_73869_2_ == 56) + { + this.toggleOverlay = !this.toggleOverlay; + } + + } +} diff --git a/com/hbm/lib/HbmWorldGen.java b/com/hbm/lib/HbmWorldGen.java index a93607c17..12411a4fb 100644 --- a/com/hbm/lib/HbmWorldGen.java +++ b/com/hbm/lib/HbmWorldGen.java @@ -398,7 +398,7 @@ public class HbmWorldGen implements IWorldGenerator { } } - if (MainRegistry.enableVaults && rand.nextInt(/*MainRegistry.vaultfreq*/ 1) == 0) { + if (MainRegistry.enableVaults && rand.nextInt(MainRegistry.vaultfreq) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index d9b4d6c7c..2aa0361e0 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -560,6 +560,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', "ingotSteel", 'T', ModItems.tank_steel, 'C', "ingotRedstoneAlloy", 'F', Blocks.furnace })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', "ingotSteel", 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', "ingotDesh", 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "PTP", "BMB", "PTP", 'P', "plateTitanium", 'T', ModItems.turbine_titanium, 'B', ModItems.tank_steel, 'M', ModItems.motor })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "SSS", "CRB", "SSS", 'S', "ingotSteel", 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', "blockRedstone" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', ModItems.ingot_beryllium, 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', "blockRedstone" })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_schrabidium_transmutator), 1), new Object[] { "TST", "ARA", "BBB", 'S', ModItems.nugget_schrabidium , 'T', "ingotTitanium", 'A', Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 'R', Item.getItemFromBlock(ModBlocks.machine_reactor), 'B', Item.getItemFromBlock(ModBlocks.machine_battery) })); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index a209ecc16..93ff70491 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -1757,6 +1757,7 @@ public class MainRegistry broadcaster = setDef(broadcaster, 1000); minefreq = setDef(minefreq, 1000); radfreq = setDef(radfreq, 1000); + vaultfreq = setDef(vaultfreq, 1000); meteorStrikeChance = setDef(meteorStrikeChance, 1000); meteorShowerChance = setDef(meteorShowerChance, 1000); } diff --git a/com/hbm/packet/AuxButtonPacket.java b/com/hbm/packet/AuxButtonPacket.java index d0f8ae474..9f46117b1 100644 --- a/com/hbm/packet/AuxButtonPacket.java +++ b/com/hbm/packet/AuxButtonPacket.java @@ -1,6 +1,7 @@ package com.hbm.packet; import com.hbm.explosion.ExplosionLarge; +import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.saveddata.SatelliteSaveStructure; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.tileentity.bomb.TileEntityTurretCIWS; @@ -77,7 +78,25 @@ public class AuxButtonPacket implements IMessage { if (te instanceof TileEntityMachineReactorSmall) { TileEntityMachineReactorSmall reactor = (TileEntityMachineReactorSmall)te; - reactor.retracting = m.value == 1; + if(m.id == 0) + reactor.retracting = m.value == 1; + + if(m.id == 1) { + FluidType type = FluidType.STEAM; + int fill = reactor.tanks[2].getFill(); + + switch(m.value) { + case 0: type = FluidType.HOTSTEAM; fill = (int)Math.floor(fill / 10D); break; + case 1: type = FluidType.SUPERHOTSTEAM; fill = (int)Math.floor(fill / 10D); break; + case 2: type = FluidType.STEAM; fill = (int)Math.floor(fill * 100); break; + } + + if(fill > reactor.tanks[2].getMaxFill()) + fill = reactor.tanks[2].getMaxFill(); + + reactor.tanks[2].setTankType(type); + reactor.tanks[2].setFill(fill); + } } if (te instanceof TileEntityRadioRec) { diff --git a/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/com/hbm/tileentity/machine/TileEntityMachineBoiler.java index 68162af2c..8b6e551e6 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ b/com/hbm/tileentity/machine/TileEntityMachineBoiler.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineBoiler; import com.hbm.blocks.machine.MachineCoal; import com.hbm.handler.FluidTypeHandler.FluidType; @@ -260,10 +261,12 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento } if(burnTime == 0 && flag1) { - MachineBoiler.updateBlockState(false, worldObj, xCoord, yCoord, zCoord); mark = true; } + if(burnTime > 0 && worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_boiler_on) + MachineBoiler.updateBlockState(false, worldObj, xCoord, yCoord, zCoord); + if(heat > maxHeat) heat = maxHeat; @@ -275,11 +278,13 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento slots[4] = null; if(!flag1) { - MachineBoiler.updateBlockState(true, worldObj, xCoord, yCoord, zCoord); mark = true; } } + if(burnTime > 0 && worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_boiler_off) + MachineBoiler.updateBlockState(true, worldObj, xCoord, yCoord, zCoord); + if(outs != null) { for(int i = 0; i < (heat / ((Integer)outs[3]).intValue()); i++) { @@ -290,7 +295,7 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento if(i == 0) heat -= 25; else - heat -= 5; + heat -= 40; } } } diff --git a/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index b2e3ac2d0..98b41ea00 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -84,7 +84,7 @@ public class TileEntityMachineBoilerElectric extends TileEntity implements ISide @Override public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineElecricBoiler"; + return this.hasCustomInventoryName() ? this.customName : "container.machineElectricBoiler"; } @Override @@ -252,12 +252,14 @@ public class TileEntityMachineBoilerElectric extends TileEntity implements ISide tanks[i].updateTank(xCoord, yCoord, zCoord); if(heat > 2000) { - heat -= 15; + heat -= 30; } if(power > 0) { - power -= 100; - heat += 150; + power -= 150; + heat += Math.min(((double)power / (double)maxPower * 300), 150); + } else { + heat -= 100; } if(power <= 0 && worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_boiler_electric_on) { @@ -282,9 +284,9 @@ public class TileEntityMachineBoilerElectric extends TileEntity implements ISide tanks[1].setFill(tanks[1].getFill() + ((Integer)outs[1]).intValue()); if(i == 0) - heat -= 25; + heat -= 35; else - heat -= 15; + heat -= 50; } } } diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java index 3046620cc..694dbccbb 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java @@ -10,6 +10,7 @@ import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IConsumer; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; +import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.ISource; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; @@ -39,7 +40,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; public class TileEntityMachineReactorSmall extends TileEntity - implements ISidedInventory, ISource, IFluidContainer, IFluidAcceptor { + implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource { private ItemStack slots[]; @@ -47,26 +48,25 @@ public class TileEntityMachineReactorSmall extends TileEntity public final int maxHullHeat = 100000; public int coreHeat; public final int maxCoreHeat = 50000; - public long power; - public final long powerMax = 250000; public int rods; public final int rodsMax = 100; public boolean retracting = true; public int age = 0; - public List list = new ArrayList(); + public List list = new ArrayList(); public FluidTank[] tanks; - private static final int[] slots_top = new int[] { 16 }; + private static final int[] slots_top = new int[] { 0 }; private static final int[] slots_bottom = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16 }; private static final int[] slots_side = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 }; private String customName; public TileEntityMachineReactorSmall() { - slots = new ItemStack[17]; - tanks = new FluidTank[2]; + slots = new ItemStack[16]; + tanks = new FluidTank[3]; tanks[0] = new FluidTank(FluidType.WATER, 32000, 0); tanks[1] = new FluidTank(FluidType.COOLANT, 16000, 1); + tanks[2] = new FluidTank(FluidType.STEAM, 16000, 2); } @Override @@ -149,9 +149,6 @@ public class TileEntityMachineReactorSmall extends TileEntity if (itemStack.getItem() == ModItems.rod_coolant || itemStack.getItem() == ModItems.rod_dual_coolant || itemStack.getItem() == ModItems.rod_quad_coolant) return true; - if (i == 16) - if (itemStack.getItem() instanceof ItemBattery) - return true; return false; } @@ -179,7 +176,6 @@ public class TileEntityMachineReactorSmall extends TileEntity super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - power = nbt.getLong("power"); coreHeat = nbt.getInteger("heat"); hullHeat = nbt.getInteger("hullHeat"); slots = new ItemStack[getSizeInventory()]; @@ -198,7 +194,6 @@ public class TileEntityMachineReactorSmall extends TileEntity @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setLong("power", power); nbt.setInteger("heat", coreHeat); nbt.setInteger("hullHeat", hullHeat); NBTTagList list = new NBTTagList(); @@ -249,16 +244,9 @@ public class TileEntityMachineReactorSmall extends TileEntity || itemStack.getItem() == ModItems.fluid_tank_empty || itemStack.getItem() == ModItems.fluid_barrel_empty) return true; - if (i == 16) - if (itemStack.getItem() instanceof ItemBattery - && ItemBattery.getCharge(itemStack) == ItemBattery.getMaxChargeStatic(itemStack)) - return true; return false; - } - - public long getPowerScaled(long i) { - return (power * i) / powerMax; + } public int getCoreHeatScaled(int i) { @@ -269,10 +257,6 @@ public class TileEntityMachineReactorSmall extends TileEntity return (hullHeat * i) / maxHullHeat; } - public boolean hasPower() { - return power > 0; - } - public boolean hasCoreHeat() { return coreHeat > 0; } @@ -324,7 +308,7 @@ public class TileEntityMachineReactorSmall extends TileEntity } if (age == 9 || age == 19) - ffgeuaInit(); + fillFluidInit(tanks[2].getTankType()); if (tanks[0].getFill() < tanks[0].getMaxFill()) { @@ -376,12 +360,9 @@ public class TileEntityMachineReactorSmall extends TileEntity 1.0F); } - for (int i = 0; i < 2; i++) + for (int i = 0; i < 3; i++) tanks[i].updateTank(xCoord, yCoord, zCoord); - // Batteries - power = Library.chargeItemsFromTE(slots, 11, power, powerMax); - if (rods >= rodsMax) for (int i = 0; i < 12; i++) { if (slots[i] != null && slots[i].getItem() instanceof ItemFuelRod) @@ -403,7 +384,7 @@ public class TileEntityMachineReactorSmall extends TileEntity } if (this.hullHeat > 0 && this.tanks[0].getFill() > 0) { - this.power += this.hullHeat * 0.1; + generateSteam(); this.hullHeat -= this.hullHeat * 0.085; this.tanks[0].setFill(this.tanks[0].getFill() - 100); @@ -412,10 +393,6 @@ public class TileEntityMachineReactorSmall extends TileEntity this.tanks[0].setFill(0); } - if (this.power > powerMax) { - this.power = powerMax; - } - if (this.coreHeat > maxCoreHeat) { this.explode(); } @@ -440,13 +417,32 @@ public class TileEntityMachineReactorSmall extends TileEntity } } - PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power)); PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, rods, 0)); PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, retracting ? 1 : 0, 1)); PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, coreHeat, 2)); PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, hullHeat, 3)); } } + + private void generateSteam() { + + //function of SHS produced per tick + //maxes out at heat% * tank capacity / 20 + int producted = (int) + (((double)hullHeat / (double)maxHullHeat) * ((double)tanks[2].getMaxFill() / 20D)); + + switch(tanks[2].getTankType()) { + case STEAM: + break; + case HOTSTEAM: + break; + case SUPERHOTSTEAM: + break; + } + + if(tanks[2].getFill() > tanks[2].getMaxFill()) + tanks[2].setFill(tanks[2].getMaxFill()); + } private boolean hasFuelRod(int id) { if (id > 11) @@ -551,22 +547,21 @@ public class TileEntityMachineReactorSmall extends TileEntity } @Override - public void ffgeua(int x, int y, int z, boolean newTact) { - - Library.ffgeua(x, y, z, newTact, this, worldObj); + public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { + Library.transmitFluid(x, y, z, newTact, this, worldObj, type); } @Override - public void ffgeuaInit() { - 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()); + public void fillFluidInit(FluidType type) { + fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); + fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); + fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - ffgeua(this.xCoord - 1, this.yCoord + 2, this.zCoord, getTact()); - ffgeua(this.xCoord + 1, this.yCoord + 2, this.zCoord, getTact()); - ffgeua(this.xCoord, this.yCoord + 2, this.zCoord - 1, getTact()); - ffgeua(this.xCoord, this.yCoord + 2, this.zCoord + 1, getTact()); + fillFluid(this.xCoord - 1, this.yCoord + 2, this.zCoord, getTact(), type); + fillFluid(this.xCoord + 1, this.yCoord + 2, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord + 2, this.zCoord - 1, getTact(), type); + fillFluid(this.xCoord, this.yCoord + 2, this.zCoord + 1, getTact(), type); } @Override @@ -578,26 +573,6 @@ public class TileEntityMachineReactorSmall extends TileEntity return false; } - @Override - public long getSPower() { - return power; - } - - @Override - public void setSPower(long i) { - this.power = i; - } - - @Override - public List getList() { - return list; - } - - @Override - public void clearList() { - this.list.clear(); - } - @Override public int getMaxFluidFill(FluidType type) { if (type.name().equals(tanks[0].getTankType().name())) @@ -614,6 +589,8 @@ public class TileEntityMachineReactorSmall extends TileEntity tanks[0].setFill(i); else if (type.name().equals(tanks[1].getTankType().name())) tanks[1].setFill(i); + else if (type.name().equals(tanks[2].getTankType().name())) + tanks[2].setFill(i); } @Override @@ -622,19 +599,21 @@ public class TileEntityMachineReactorSmall extends TileEntity return tanks[0].getFill(); else if (type.name().equals(tanks[1].getTankType().name())) return tanks[1].getFill(); + else if (type.name().equals(tanks[2].getTankType().name())) + return tanks[2].getFill(); else return 0; } @Override public void setFillstate(int fill, int index) { - if (index < 2 && tanks[index] != null) + if (index < 3 && tanks[index] != null) tanks[index].setFill(fill); } @Override public void setType(FluidType type, int index) { - if (index < 2 && tanks[index] != null) + if (index < 3 && tanks[index] != null) tanks[index].setTankType(type); } @@ -643,10 +622,21 @@ public class TileEntityMachineReactorSmall extends TileEntity List list = new ArrayList(); list.add(tanks[0]); list.add(tanks[1]); + list.add(tanks[2]); return list; } + @Override + public List getFluidList(FluidType type) { + return list; + } + + @Override + public void clearFluidList(FluidType type) { + list.clear(); + } + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java new file mode 100644 index 000000000..aa23cc363 --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java @@ -0,0 +1,660 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.machine.MachineGenerator; +import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; +import com.hbm.interfaces.ISource; +import com.hbm.inventory.FluidTank; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBattery; +import com.hbm.items.special.ItemFuelRod; +import com.hbm.lib.Library; +import com.hbm.lib.ModDamageSource; +import com.hbm.packet.AuxElectricityPacket; +import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.potion.HbmPotion; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.PotionEffect; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityMachineReactorSmallOld extends TileEntity + implements ISidedInventory, ISource, IFluidContainer, IFluidAcceptor { + + private ItemStack slots[]; + + public int hullHeat; + public final int maxHullHeat = 100000; + public int coreHeat; + public final int maxCoreHeat = 50000; + public long power; + public final long powerMax = 250000; + public int rods; + public final int rodsMax = 100; + public boolean retracting = true; + public int age = 0; + public List list = new ArrayList(); + public FluidTank[] tanks; + + private static final int[] slots_top = new int[] { 16 }; + private static final int[] slots_bottom = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16 }; + private static final int[] slots_side = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 }; + + private String customName; + + public TileEntityMachineReactorSmallOld() { + slots = new ItemStack[17]; + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(FluidType.WATER, 32000, 0); + tanks[1] = new FluidTank(FluidType.COOLANT, 16000, 1); + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if (slots[i] != null) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.reactorSmall"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; + } + } + + // You scrubs aren't needed for anything (right now) + @Override + public void openInventory() { + } + + @Override + public void closeInventory() { + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + if (i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 5 || i == 6 || i == 7 || i == 8 || i == 9 || i == 10 + || i == 11) + if (itemStack.getItem() instanceof ItemFuelRod) + return true; + if (i == 12) + if (itemStack.getItem() == ModItems.rod_water || itemStack.getItem() == ModItems.rod_dual_water + || itemStack.getItem() == ModItems.rod_quad_water || itemStack.getItem() == Items.water_bucket) + return true; + if (i == 14) + if (itemStack.getItem() == ModItems.rod_coolant || itemStack.getItem() == ModItems.rod_dual_coolant + || itemStack.getItem() == ModItems.rod_quad_coolant) + return true; + if (i == 16) + if (itemStack.getItem() instanceof ItemBattery) + return true; + return false; + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if (slots[i] != null) { + if (slots[i].stackSize <= j) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) { + slots[i] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + power = nbt.getLong("power"); + coreHeat = nbt.getInteger("heat"); + hullHeat = nbt.getInteger("hullHeat"); + slots = new ItemStack[getSizeInventory()]; + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "coolant"); + + for (int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if (b0 >= 0 && b0 < slots.length) { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setInteger("heat", coreHeat); + nbt.setInteger("hullHeat", hullHeat); + NBTTagList list = new NBTTagList(); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "coolant"); + + for (int i = 0; i < slots.length; i++) { + if (slots[i] != null) { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte) i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + if (i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 5 || i == 6 || i == 7 || i == 8 || i == 9 || i == 10 + || i == 11) + if (itemStack.getItem() == ModItems.rod_uranium_fuel_depleted + || itemStack.getItem() == ModItems.rod_dual_uranium_fuel_depleted + || itemStack.getItem() == ModItems.rod_quad_uranium_fuel_depleted + || itemStack.getItem() == ModItems.rod_plutonium_fuel_depleted + || itemStack.getItem() == ModItems.rod_dual_plutonium_fuel_depleted + || itemStack.getItem() == ModItems.rod_quad_plutonium_fuel_depleted + || itemStack.getItem() == ModItems.rod_mox_fuel_depleted + || itemStack.getItem() == ModItems.rod_dual_mox_fuel_depleted + || itemStack.getItem() == ModItems.rod_quad_mox_fuel_depleted + || itemStack.getItem() == ModItems.rod_schrabidium_fuel_depleted + || itemStack.getItem() == ModItems.rod_dual_schrabidium_fuel_depleted + || itemStack.getItem() == ModItems.rod_quad_schrabidium_fuel_depleted) + return true; + if (i == 13 || i == 15) + if (itemStack.getItem() == Items.bucket || itemStack.getItem() == ModItems.rod_empty + || itemStack.getItem() == ModItems.rod_dual_empty || itemStack.getItem() == ModItems.rod_quad_empty + || itemStack.getItem() == ModItems.fluid_tank_empty + || itemStack.getItem() == ModItems.fluid_barrel_empty) + return true; + if (i == 16) + if (itemStack.getItem() instanceof ItemBattery + && ItemBattery.getCharge(itemStack) == ItemBattery.getMaxChargeStatic(itemStack)) + return true; + + return false; + } + + public long getPowerScaled(long i) { + return (power * i) / powerMax; + } + + public int getCoreHeatScaled(int i) { + return (coreHeat * i) / maxCoreHeat; + } + + public int getHullHeatScaled(int i) { + return (hullHeat * i) / maxHullHeat; + } + + public boolean hasPower() { + return power > 0; + } + + public boolean hasCoreHeat() { + return coreHeat > 0; + } + + public boolean hasHullHeat() { + return hullHeat > 0; + } + + private int[] getNeighbouringSlots(int id) { + + switch (id) { + case 0: + return new int[] { 1, 5 }; + case 1: + return new int[] { 0, 6 }; + case 2: + return new int[] { 3, 7 }; + case 3: + return new int[] { 2, 4, 8 }; + case 4: + return new int[] { 3, 9 }; + case 5: + return new int[] { 0, 6, 0xA }; + case 6: + return new int[] { 1, 5, 0xB }; + case 7: + return new int[] { 2, 8 }; + case 8: + return new int[] { 3, 7, 9 }; + case 9: + return new int[] { 4, 8 }; + case 10: + return new int[] { 5, 0xB }; + case 11: + return new int[] { 6, 0xA }; + } + + return null; + } + + @Override + public void updateEntity() { + + if (!worldObj.isRemote) { + + age++; + if (age >= 20) { + age = 0; + } + + if (age == 9 || age == 19) + ffgeuaInit(); + + if (tanks[0].getFill() < tanks[0].getMaxFill()) { + + if (worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord) == Blocks.water + || worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord) == Blocks.flowing_water) + tanks[0].setFill(tanks[0].getFill() + 25); + + if (worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord) == Blocks.water + || worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord) == Blocks.flowing_water) + tanks[0].setFill(tanks[0].getFill() + 25); + + if (worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1) == Blocks.water + || worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1) == Blocks.flowing_water) + tanks[0].setFill(tanks[0].getFill() + 25); + + if (worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1) == Blocks.water + || worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1) == Blocks.flowing_water) + tanks[0].setFill(tanks[0].getFill() + 25); + + if (tanks[0].getFill() > tanks[0].getMaxFill()) + tanks[0].setFill(tanks[0].getMaxFill()); + } + + tanks[0].loadTank(12, 13, slots); + tanks[1].loadTank(14, 15, slots); + + if (retracting && rods > 0) { + + if (rods == rodsMax) + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStart", 1.0F, + 0.75F); + + rods--; + + if (rods == 0) + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStop", 1.0F, + 1.0F); + } + if (!retracting && rods < rodsMax) { + + if (rods == 0) + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStart", 1.0F, + 0.75F); + + rods++; + + if (rods == rodsMax) + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStop", 1.0F, + 1.0F); + } + + for (int i = 0; i < 2; i++) + tanks[i].updateTank(xCoord, yCoord, zCoord); + + // Batteries + power = Library.chargeItemsFromTE(slots, 11, power, powerMax); + + if (rods >= rodsMax) + for (int i = 0; i < 12; i++) { + if (slots[i] != null && slots[i].getItem() instanceof ItemFuelRod) + decay(i); + } + + if (this.coreHeat > 0 && this.tanks[1].getFill() > 0 && this.hullHeat < this.maxHullHeat) { + this.hullHeat += this.coreHeat * 0.175; + this.coreHeat -= this.coreHeat * 0.1; + + this.tanks[1].setFill(this.tanks[1].getFill() - 10); + + if (this.tanks[1].getFill() < 0) + this.tanks[1].setFill(0); + } + + if (this.hullHeat > maxHullHeat) { + this.hullHeat = maxHullHeat; + } + + if (this.hullHeat > 0 && this.tanks[0].getFill() > 0) { + this.power += this.hullHeat * 0.1; + this.hullHeat -= this.hullHeat * 0.085; + + this.tanks[0].setFill(this.tanks[0].getFill() - 100); + + if (this.tanks[0].getFill() < 0) + this.tanks[0].setFill(0); + } + + if (this.power > powerMax) { + this.power = powerMax; + } + + if (this.coreHeat > maxCoreHeat) { + this.explode(); + } + + if (rods > 0 && coreHeat > 0 + && !(worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord).isNormalCube() + && worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord).isNormalCube() + && worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1).isNormalCube() + && worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1).isNormalCube() + && worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord) != Blocks.air + && worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord) != Blocks.air + && worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1) != Blocks.air + && worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1) != Blocks.air)) { + + List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, + AxisAlignedBB.getBoundingBox(xCoord + 0.5 - 5, yCoord + 1.5 - 5, zCoord + 0.5 - 5, + xCoord + 0.5 + 5, yCoord + 1.5 + 5, zCoord + 0.5 + 5)); + + for (Entity e : list) { + if (e instanceof EntityLivingBase) + Library.applyRadiation((EntityLivingBase)e, 80, 24, 60, 19); + } + } + + PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power)); + PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, rods, 0)); + PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, retracting ? 1 : 0, 1)); + PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, coreHeat, 2)); + PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, hullHeat, 3)); + } + } + + private boolean hasFuelRod(int id) { + if (id > 11) + return false; + + if (slots[id] != null) + return slots[id].getItem() instanceof ItemFuelRod; + + return false; + } + + private int getNeightbourCount(int id) { + + int[] neighbours = this.getNeighbouringSlots(id); + + if (neighbours == null) + return 0; + + int count = 0; + + for (int i = 0; i < neighbours.length; i++) + if (hasFuelRod(neighbours[i])) + count++; + + return count; + + } + + // itemstack in slots[id] has to contain ItemFuelRod item + private void decay(int id) { + if (id > 11) + return; + + int decay = getNeightbourCount(id) + 1; + + for (int i = 0; i < decay; i++) { + ItemFuelRod rod = ((ItemFuelRod) slots[id].getItem()); + this.coreHeat += rod.heat; + ItemFuelRod.setLifeTime(slots[id], ItemFuelRod.getLifeTime(slots[id]) + 1); + ItemFuelRod.updateDamage(slots[id]); + + if (ItemFuelRod.getLifeTime(slots[id]) > ((ItemFuelRod) slots[id].getItem()).lifeTime) { + onRunOut(id); + return; + } + } + } + + // itemstack in slots[id] has to contain ItemFuelRod item + private void onRunOut(int id) { + + System.out.println("aaa"); + + Item item = slots[id].getItem(); + + if (item == ModItems.rod_uranium_fuel) { + slots[id] = new ItemStack(ModItems.rod_uranium_fuel_depleted); + + } else if (item == ModItems.rod_plutonium_fuel) { + slots[id] = new ItemStack(ModItems.rod_plutonium_fuel_depleted); + + } else if (item == ModItems.rod_mox_fuel) { + slots[id] = new ItemStack(ModItems.rod_mox_fuel_depleted); + + } else if (item == ModItems.rod_schrabidium_fuel) { + slots[id] = new ItemStack(ModItems.rod_schrabidium_fuel_depleted); + + } else if (item == ModItems.rod_dual_uranium_fuel) { + slots[id] = new ItemStack(ModItems.rod_dual_uranium_fuel_depleted); + + } else if (item == ModItems.rod_dual_plutonium_fuel) { + slots[id] = new ItemStack(ModItems.rod_dual_plutonium_fuel_depleted); + + } else if (item == ModItems.rod_dual_mox_fuel) { + slots[id] = new ItemStack(ModItems.rod_dual_mox_fuel_depleted); + + } else if (item == ModItems.rod_dual_schrabidium_fuel) { + slots[id] = new ItemStack(ModItems.rod_dual_schrabidium_fuel_depleted); + + } else if (item == ModItems.rod_quad_uranium_fuel) { + slots[id] = new ItemStack(ModItems.rod_quad_uranium_fuel_depleted); + + } else if (item == ModItems.rod_quad_plutonium_fuel) { + slots[id] = new ItemStack(ModItems.rod_quad_plutonium_fuel_depleted); + + } else if (item == ModItems.rod_quad_mox_fuel) { + slots[id] = new ItemStack(ModItems.rod_quad_mox_fuel_depleted); + + } else if (item == ModItems.rod_quad_schrabidium_fuel) { + slots[id] = new ItemStack(ModItems.rod_quad_schrabidium_fuel_depleted); + } + } + + private void explode() { + for (int i = 0; i < slots.length; i++) { + this.slots[i] = null; + } + + worldObj.createExplosion(null, this.xCoord, this.yCoord, this.zCoord, 18.0F, true); + ExplosionNukeGeneric.waste(worldObj, this.xCoord, this.yCoord, this.zCoord, 35); + worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, Blocks.flowing_lava); + } + + @Override + public void ffgeua(int x, int y, int z, boolean newTact) { + + Library.ffgeua(x, y, z, newTact, this, worldObj); + } + + @Override + public void ffgeuaInit() { + 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()); + + ffgeua(this.xCoord - 1, this.yCoord + 2, this.zCoord, getTact()); + ffgeua(this.xCoord + 1, this.yCoord + 2, this.zCoord, getTact()); + ffgeua(this.xCoord, this.yCoord + 2, this.zCoord - 1, getTact()); + ffgeua(this.xCoord, this.yCoord + 2, this.zCoord + 1, getTact()); + } + + @Override + public boolean getTact() { + if (age >= 0 && age < 10) { + return true; + } + + return false; + } + + @Override + public long getSPower() { + return power; + } + + @Override + public void setSPower(long i) { + this.power = i; + } + + @Override + public List getList() { + return list; + } + + @Override + public void clearList() { + this.list.clear(); + } + + @Override + public int getMaxFluidFill(FluidType type) { + if (type.name().equals(tanks[0].getTankType().name())) + return tanks[0].getMaxFill(); + else if (type.name().equals(tanks[1].getTankType().name())) + return tanks[1].getMaxFill(); + else + return 0; + } + + @Override + public void setFluidFill(int i, FluidType type) { + if (type.name().equals(tanks[0].getTankType().name())) + tanks[0].setFill(i); + else if (type.name().equals(tanks[1].getTankType().name())) + tanks[1].setFill(i); + } + + @Override + public int getFluidFill(FluidType type) { + if (type.name().equals(tanks[0].getTankType().name())) + return tanks[0].getFill(); + else if (type.name().equals(tanks[1].getTankType().name())) + return tanks[1].getFill(); + else + return 0; + } + + @Override + public void setFillstate(int fill, int index) { + if (index < 2 && tanks[index] != null) + tanks[index].setFill(fill); + } + + @Override + public void setType(FluidType type, int index) { + if (index < 2 && tanks[index] != null) + tanks[index].setTankType(type); + } + + @Override + public List getTanks() { + List list = new ArrayList(); + list.add(tanks[0]); + list.add(tanks[1]); + + return list; + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} \ No newline at end of file