From 79a08930d9867d04afe123c2fe8db9e46e63f397 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Thu, 9 Apr 2020 19:57:09 +0200 Subject: [PATCH] finished dynamic barrels, more textues --- assets/hbm/lang/de_DE.lang | 7 + assets/hbm/lang/en_US.lang | 7 + assets/hbm/models/blocks/antenna_top.obj | 147 ++++++++++++++++++ assets/hbm/models/{ => blocks}/barrel.obj | 0 assets/hbm/models/{ => blocks}/beam.obj | 0 assets/hbm/models/{ => blocks}/pole.obj | 0 assets/hbm/models/{ => blocks}/scaffold.obj | 0 .../hbm/models/{ => blocks}/taperecorder.obj | 0 .../{barrel_Iron.png => barrel_iron.png} | Bin assets/hbm/textures/blocks/block_waste.png | Bin 324 -> 447 bytes .../textures/blocks/block_waste_painted.png | Bin 0 -> 549 bytes assets/hbm/textures/blocks/deco_pole_top.png | Bin 373 -> 548 bytes assets/hbm/textures/blocks/waste_log_side.png | Bin 595 -> 779 bytes assets/hbm/textures/blocks/waste_log_top.png | Bin 571 -> 815 bytes assets/hbm/textures/items/ammo_rocket.png | Bin 327 -> 317 bytes assets/hbm/textures/items/ammo_rocket_emp.png | Bin 265 -> 325 bytes .../hbm/textures/items/ammo_rocket_glare.png | Bin 328 -> 319 bytes assets/hbm/textures/items/ammo_rocket_he.png | Bin 275 -> 333 bytes .../textures/items/ammo_rocket_incendiary.png | Bin 292 -> 331 bytes .../textures/items/ammo_rocket_nuclear.png | Bin 324 -> 346 bytes .../textures/items/ammo_rocket_shrapnel.png | Bin 283 -> 327 bytes .../hbm/textures/items/ammo_rocket_sleek.png | Bin 244 -> 286 bytes .../hbm/textures/items/ammo_rocket_toxic.png | Bin 308 -> 340 bytes ...plate_aluminum.png => plate_aluminium.png} | Bin .../textures/models/misc/danger_diamond.png | Bin 0 -> 7168 bytes com/hbm/blocks/ModBlocks.java | 2 +- com/hbm/blocks/generic/DecoPoleTop.java | 40 +---- com/hbm/blocks/machine/BlockFluidBarrel.java | 16 ++ .../entity/grenade/EntityGrenadePulse.java | 2 - com/hbm/explosion/ExplosionChaos.java | 4 +- com/hbm/handler/FluidTypeHandler.java | 97 +++++++----- com/hbm/handler/GUIHandler.java | 18 +++ .../inventory/container/ContainerBarrel.java | 87 +++++++++++ .../container/ContainerCoreEmitter.java | 15 ++ .../container/ContainerCoreReceiver.java | 15 ++ com/hbm/inventory/gui/GUIBarrel.java | 70 +++++++++ com/hbm/items/special/ItemBlockLore.java | 27 +++- com/hbm/main/ClientProxy.java | 3 +- com/hbm/main/ResourceManager.java | 11 +- com/hbm/packet/AuxButtonPacket.java | 8 + com/hbm/render/block/RenderAntennaTop.java | 70 +++++++++ com/hbm/render/block/RenderFence.java | 8 +- .../render/tileentity/RenderFluidBarrel.java | 46 ++++++ .../render/tileentity/RendererObjTester.java | 15 +- com/hbm/render/util/DiamondPronter.java | 115 ++++++++++++++ com/hbm/render/util/EnumSymbol.java | 20 +++ .../tileentity/machine/TileEntityBarrel.java | 87 ++++++++++- .../TileEntityMachineReactorSmall.java | 4 +- 48 files changed, 830 insertions(+), 111 deletions(-) create mode 100644 assets/hbm/models/blocks/antenna_top.obj rename assets/hbm/models/{ => blocks}/barrel.obj (100%) rename assets/hbm/models/{ => blocks}/beam.obj (100%) rename assets/hbm/models/{ => blocks}/pole.obj (100%) rename assets/hbm/models/{ => blocks}/scaffold.obj (100%) rename assets/hbm/models/{ => blocks}/taperecorder.obj (100%) rename assets/hbm/textures/blocks/{barrel_Iron.png => barrel_iron.png} (100%) create mode 100644 assets/hbm/textures/blocks/block_waste_painted.png rename assets/hbm/textures/items/{plate_aluminum.png => plate_aluminium.png} (100%) create mode 100644 assets/hbm/textures/models/misc/danger_diamond.png create mode 100644 com/hbm/inventory/container/ContainerBarrel.java create mode 100644 com/hbm/inventory/gui/GUIBarrel.java create mode 100644 com/hbm/render/block/RenderAntennaTop.java create mode 100644 com/hbm/render/tileentity/RenderFluidBarrel.java create mode 100644 com/hbm/render/util/DiamondPronter.java create mode 100644 com/hbm/render/util/EnumSymbol.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 225e7b11e..00eb695da 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -469,6 +469,13 @@ container.reactorSmall=Atomreaktor tile.machine_controller.name=Reaktorfernsteuerung container.reactorControl=Reaktorfernsteuerung +tile.barrel_plastic.name=Sicheres Fass™ +tile.barrel_corroded.name=Verrostetes Fass +tile.barrel_iron.name=Eisenfass +tile.barrel_steel.name=Stahlfass +tile.barrel_antimatter.name=Magnetischer Antimaterie-Behälter +container.barrel=Fass + tile.broadcaster_pc.name=Korrupter Sender tile.radiobox.name=Rosenberg Ungeziefervernichter diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index bc2caba4d..526fb71f9 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -469,6 +469,13 @@ container.reactorSmall=Nuclear Reactor tile.machine_controller.name=Reactor Remote Control Block container.reactorControl=Reactor Remote Control Block +tile.barrel_plastic.name=Safe Barrel™ +tile.barrel_corroded.name=Corroded Barrel +tile.barrel_iron.name=Iron Barrel +tile.barrel_steel.name=Steel Barrel +tile.barrel_antimatter.name=Magnetic Antimatter Container +container.barrel=Barrel + tile.broadcaster_pc.name=Corrupted Broadcaster tile.radiobox.name=Rosenberg Pest Control Box diff --git a/assets/hbm/models/blocks/antenna_top.obj b/assets/hbm/models/blocks/antenna_top.obj new file mode 100644 index 000000000..893224b1f --- /dev/null +++ b/assets/hbm/models/blocks/antenna_top.obj @@ -0,0 +1,147 @@ +# Blender v2.76 (sub 0) OBJ File: 'antenna_top.blend' +# www.blender.org +o Cube_Cube.001 +v -0.375000 0.000000 0.375000 +v -0.375000 0.500000 0.375000 +v -0.375000 0.000000 -0.375000 +v -0.375000 0.500000 -0.375000 +v 0.375000 0.000000 0.375000 +v 0.375000 0.500000 0.375000 +v 0.375000 0.000000 -0.375000 +v 0.375000 0.500000 -0.375000 +v -0.250000 1.250000 -0.250000 +v -0.250000 1.250000 -0.500000 +v -0.500000 1.250000 -0.500000 +v -0.500000 1.250000 -0.250000 +v -0.500000 0.250000 -0.250000 +v -0.500000 0.250000 -0.500000 +v -0.250000 0.250000 -0.250000 +v -0.250000 0.250000 -0.500000 +v -0.125000 0.500000 -0.125000 +v 0.125000 0.500000 -0.125000 +v -0.125000 0.500000 0.125000 +v 0.125000 0.500000 0.125000 +v 0.125000 0.625000 -0.125000 +v 0.125000 0.625000 0.125000 +v -0.125000 0.625000 -0.125000 +v -0.125000 0.625000 0.125000 +v -0.250000 1.250000 0.500000 +v -0.250000 1.250000 0.250000 +v -0.500000 1.250000 0.250000 +v -0.500000 1.250000 0.500000 +v -0.500000 0.250000 0.500000 +v -0.500000 0.250000 0.250000 +v -0.250000 0.250000 0.500000 +v -0.250000 0.250000 0.250000 +v 0.500000 1.250000 -0.250000 +v 0.500000 1.250000 -0.500000 +v 0.250000 1.250000 -0.500000 +v 0.250000 1.250000 -0.250000 +v 0.250000 0.250000 -0.250000 +v 0.250000 0.250000 -0.500000 +v 0.500000 0.250000 -0.250000 +v 0.500000 0.250000 -0.500000 +v 0.500000 1.250000 0.500000 +v 0.500000 1.250000 0.250000 +v 0.250000 1.250000 0.250000 +v 0.250000 1.250000 0.500000 +v 0.250000 0.250000 0.500000 +v 0.250000 0.250000 0.250000 +v 0.500000 0.250000 0.500000 +v 0.500000 0.250000 0.250000 +vt 0.600000 0.000000 +vt 0.600000 0.400000 +vt -0.000000 0.400000 +vt 0.000122 0.000122 +vt 0.600000 1.000000 +vt 0.000000 1.000000 +vt 0.800000 0.000000 +vt 0.800000 0.800000 +vt 0.600000 0.800000 +vt 0.600000 0.600000 +vt 0.800000 0.100000 +vt 0.999906 0.000094 +vt 1.000000 0.000000 +vt 0.800000 0.600000 +vt 1.000000 0.300000 +vt 0.800000 0.300000 +vt -0.000000 -0.000000 +vt 0.000100 0.999900 +vt 1.000000 0.100000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 4/1/1 3/2/1 1/3/1 +f 8/1/2 7/2/2 3/3/2 +f 6/3/3 5/4/3 7/1/3 +f 2/3/4 1/4/4 5/1/4 +f 3/3/5 7/2/5 5/5/5 +f 8/5/6 4/6/6 2/3/6 +f 13/7/1 12/8/1 11/9/1 +f 16/7/3 10/8/3 9/9/3 +f 14/7/2 11/8/2 10/9/2 +f 15/7/4 9/8/4 12/9/4 +f 10/8/6 11/9/6 12/10/6 +f 22/11/3 20/7/3 18/12/3 +f 23/11/1 17/7/1 19/13/1 +f 24/11/4 19/7/4 20/12/4 +f 21/11/2 18/7/2 17/13/2 +f 13/10/5 14/14/5 16/8/5 +f 21/15/6 23/16/6 24/11/6 +f 29/7/1 28/8/1 27/9/1 +f 32/7/3 26/8/3 25/9/3 +f 30/7/2 27/8/2 26/9/2 +f 31/7/4 25/8/4 28/9/4 +f 26/8/6 27/9/6 28/10/6 +f 29/10/5 30/14/5 32/8/5 +f 37/7/1 36/8/1 35/9/1 +f 40/7/3 34/8/3 33/9/3 +f 38/7/2 35/8/2 34/9/2 +f 39/7/4 33/8/4 36/9/4 +f 34/8/6 35/9/6 36/10/6 +f 37/10/5 38/14/5 40/8/5 +f 45/7/1 44/8/1 43/9/1 +f 48/7/3 42/8/3 41/9/3 +f 46/7/2 43/8/2 42/9/2 +f 47/7/4 41/8/4 44/9/4 +f 42/8/6 43/9/6 44/10/6 +f 45/10/5 46/14/5 48/8/5 +f 2/17/1 4/1/1 1/3/1 +f 4/17/2 8/1/2 3/3/2 +f 8/2/3 6/3/3 7/1/3 +f 6/2/4 2/3/4 5/1/4 +f 1/18/5 3/3/5 5/5/5 +f 6/2/6 8/5/6 2/3/6 +f 14/1/1 13/7/1 11/9/1 +f 15/1/3 16/7/3 9/9/3 +f 16/1/2 14/7/2 10/9/2 +f 13/1/4 15/7/4 12/9/4 +f 9/14/6 10/8/6 12/10/6 +f 21/19/3 22/11/3 18/12/3 +f 24/19/1 23/11/1 19/13/1 +f 22/19/4 24/11/4 20/12/4 +f 23/19/2 21/11/2 17/13/2 +f 15/9/5 13/10/5 16/8/5 +f 22/19/6 21/15/6 24/11/6 +f 30/1/1 29/7/1 27/9/1 +f 31/1/3 32/7/3 25/9/3 +f 32/1/2 30/7/2 26/9/2 +f 29/1/4 31/7/4 28/9/4 +f 25/14/6 26/8/6 28/10/6 +f 31/9/5 29/10/5 32/8/5 +f 38/1/1 37/7/1 35/9/1 +f 39/1/3 40/7/3 33/9/3 +f 40/1/2 38/7/2 34/9/2 +f 37/1/4 39/7/4 36/9/4 +f 33/14/6 34/8/6 36/10/6 +f 39/9/5 37/10/5 40/8/5 +f 46/1/1 45/7/1 43/9/1 +f 47/1/3 48/7/3 41/9/3 +f 48/1/2 46/7/2 42/9/2 +f 45/1/4 47/7/4 44/9/4 +f 41/14/6 42/8/6 44/10/6 +f 47/9/5 45/10/5 48/8/5 diff --git a/assets/hbm/models/barrel.obj b/assets/hbm/models/blocks/barrel.obj similarity index 100% rename from assets/hbm/models/barrel.obj rename to assets/hbm/models/blocks/barrel.obj diff --git a/assets/hbm/models/beam.obj b/assets/hbm/models/blocks/beam.obj similarity index 100% rename from assets/hbm/models/beam.obj rename to assets/hbm/models/blocks/beam.obj diff --git a/assets/hbm/models/pole.obj b/assets/hbm/models/blocks/pole.obj similarity index 100% rename from assets/hbm/models/pole.obj rename to assets/hbm/models/blocks/pole.obj diff --git a/assets/hbm/models/scaffold.obj b/assets/hbm/models/blocks/scaffold.obj similarity index 100% rename from assets/hbm/models/scaffold.obj rename to assets/hbm/models/blocks/scaffold.obj diff --git a/assets/hbm/models/taperecorder.obj b/assets/hbm/models/blocks/taperecorder.obj similarity index 100% rename from assets/hbm/models/taperecorder.obj rename to assets/hbm/models/blocks/taperecorder.obj diff --git a/assets/hbm/textures/blocks/barrel_Iron.png b/assets/hbm/textures/blocks/barrel_iron.png similarity index 100% rename from assets/hbm/textures/blocks/barrel_Iron.png rename to assets/hbm/textures/blocks/barrel_iron.png diff --git a/assets/hbm/textures/blocks/block_waste.png b/assets/hbm/textures/blocks/block_waste.png index 8c9c10d4f9f0a33cb0f4f362165ba59934e019f3..ba7a9d711fd8d8ce2ffc333ae9593e191358c27b 100644 GIT binary patch delta 397 zcmV;80doGt0>1;0Bnkm@Qb$4nuFf3kks%v@zyJUazyWI3i3tDz0aQsuK~y+TJ<>_8 z!axiJ(4>I?f(_zIEOY+@ut!LI=JCHyA-r(Pc6scyeczu>r^#e8olcL(W7l<`&!=r$ z9{O^*G)*&~&*|s$x!rEt&1SRP?bzh?dLaRFMx#;i?RHB(d^jA60N(rkzFx17$K!r~ zzhg5w{{{&r5|9h=!DADqG~H>1*XwosL?&Hg5F|SF0D8Gxp3i4ERcOu2cs#E3rpcgT zOVifI=FEiHLUklN$wpc%7Fl3OuN{K3dgei>3)J{vIN#4Cp%S+yLgYIfFW?=3n3(~f zO_4%M6jd`)Y^~Fs$Wa*J$qQEJ@1W^;7)+2-8_uhddZjFv{bsY-YPI?XhWDv6lv*?d zRjM}unReLk_hMNwvk5sp4HNl=p{eo!HjSENNaG=ZigbOrjELuH0cYSzTVOb8m%23v r$t0FjmF6ODB8=qE_sb+yU#*mXQlcp=HFY2R00000NkvXXu0mjf_}{yj delta 276 zcmV+v0qg$11H=N5B#|)~f589%4#5Gqk!$S$000CL_t(IPkoU=4#OY}1oMj`^-zfuhyMS49W%y3sO?Ch_Iejc zbB#$~*uE#$g<=HK+xu%Hr6pQtKs diff --git a/assets/hbm/textures/blocks/block_waste_painted.png b/assets/hbm/textures/blocks/block_waste_painted.png new file mode 100644 index 0000000000000000000000000000000000000000..b128bc2e7449e3af06d13a2e81d76ee21e43359a GIT binary patch literal 549 zcmV+=0^0qFP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0lG;K1-ofek|t^5cQWWtn9Q8{ z=X#FO@Ao&Gjcwbm>qb%JI8IrXhGB4mjN`agtNFf<%=0`9L!;O0EtgAdu-ok*p%7!5 zrs&)4R^riDtChk5uPBNnNwO?U(-bx)hwBQW0|Fo`zz-hw`05LjFsdU--05^U#07{% zDlx$D{1bULT}U!yqtO^$gy@r-AL7YHab;PSrW2}^IbIaq z5;GA^-Mw}@jv}b94_)GMKi%%5KtfU(N#}Y1G!Vscv)Od3f)wGCEdehG_+SD{ntQ%G z(53Y@yQ-SYu6mGa5bE_h+a`rE7z}2!8K<~4@eh!YOehN^x953Wu@YO3favsdaycgj z6JpA(0lg*Z1Ynb+)oRI>XlZi&O$(Hg+l0Wm9va{vlDBj`eCIR>0?T!?qL9&P3|ZCC zttt$Pk{;#d{*V(E&$FY*+vAbcCn*_qYKETAb-S>!c|0rx2HPXwfA;_aEtuRtKZc_d nB$0shxGBY2cvs@mx2DuD6}UTqg#?K}00000NkvXXu0mjfLY?hZ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/deco_pole_top.png b/assets/hbm/textures/blocks/deco_pole_top.png index f0ea8ef39a8cdf90a6577968608c22c0c32ca9b1..e3fb41bfb61d08ec258ec75a906d02db436ecb98 100644 GIT binary patch literal 548 zcmV+<0^9wGP)o_?uw4iO>GbMidLT8oI#wk;yUr9_11=RfZccgogv&33y5 zAj>k0F^CA>`$_Zhc>D2$(-KZ1@Q))GQMRmZ=!Z9fNG zEEcTSYf?&x2&zh!WjN<3isGhuu~@L%?KFe{Kv|aT_xqchS^($Vmnnr1SglsHZOi$5 zo^B{2)O9_osj2|P7>P07G+$VF?=i;Q70zDl@s(0lthG4jP*v)>o&vtSyxgUHt#(QY zV+_tY=JOvcmrK0&bX_+EY?_A6Wt-uoNF-vFxWLzJtk8tqh; zktu!VVD9wn&m7j z==&ZKp{lC;lpo3RFbp(JL)UdU=lJ~-bq?|zM81*bqA2LP4r2_~TIw3M+lG`9$K&ZW zdjEm}6UrBnX0zFt6k`nM^ZR_?f5V3%1lH>{ZQH)Z6Ap(HF}_iL)Q8vG8)Hy~7_V;l ms1K{E#Cty)TLg-Nal^kjCr>tHw##4u00000#LT=By}Z;C1rt33 zJ+nVO$@hV3o_V@BhFJJ7ooLI~hV|6~u{7_ljIJ5~n;ktgp2k=h<^#=&K>a`Vi|K~y-6C6ZZh z^F#muXV>=;+qvBKOG{e>2#NpyGf)vo@Ck|#qD_l==3BWw%Tc35w=tZuF`298BR9EL3NE4r>FOD6oc-hUu(Z*z<>9F8SPnt~Jn zTrH>AmW3b2ydOT$+TaHP>-C!L_MP8;|C6#jBMR8_@%He;G4D5cr&j~HV}CKHzP8GYX~j3e7a z!M`tS+UCMMi+_=EoM2fNi^YPXEa>_H-}C4Og%E6a$}hG8U(Bg(2F@@-B{kF2T+Fl1SZ=Xq4;8l^P8 zYvb9H&D$F{*ZHSZN*vo}62}Z$VzfaXjt7+12w~B89e0lPE->u%yN1QuD{xub(g25+MYR6#Vq#4~$y#*YiK@w>#u~KBMb;vN)!y zFASpwz<($O80Klrs6Lq%4rvl&OX!Dzo0}Z@vfePNk=M-zfHa9PM)UA^kMFx|_XTBD zBZa{8Jbr%qm9Fo3T;+U}XXL}fJ$?}2xgPUrN>QB1^PIpB5JIBVKp1!!V~C@WvF}jh z$l>G6Y&u1LoNC&pCG>riRs_C_=X&gRJDR4$b$4C1y8_qsXxj#W&<~hoDM=h6+skL3 zuq3YQQPmBvZyUnEMH`Jkvs}y>)kt+|NYaFlbIpFYW3gN!?rvA6Yg^(dLI^=OjNDu; wS#P$eQIRAuUE6-XB5jP(xUK_Q(GHsb0bhq}bWw#6#sB~S07*qoM6N<$f-qQfmH+?% delta 581 zcmV-L0=oT+2GazP8Gix*005AYXf^-<00DDSM?wIu&K&6g000DMK}|sb0I`n?{9y$E z000SaNLh0L01m?d01m?e$8V@)0000ObVXQnQ*UN;cVTj60B~VxZgehgWpp4kE-)@N zWrZ?j0005RNkl)buheN;L$C*l{GMP*|oil>oStxKt|PCkiD1@AuobZJmxVlsLmM z#0x7L;9WkS2Y?=(PN!b4^Arjs)kP^3iA47M{p0aiE|*|<+U<5Z2`v^2%d!9fJ06c} zx7$&a7#C5NI+&u8bWCwgMk&n`btQH_pRd;|TH(Qj41Z^@*MmC6Nhf#>ka56|0f9jc zdf>x}@R+>5-EKbsT=h?>?RE?1e!o{L6~=-GG3N6*y%K`0;1#V1fY+zfi3Uh1T>+TQ zW^@Im;c$p&GMT7qwJKrMq%;6_gp_z#8FZru%vdajN2aNuE~7wD)Ib*GV*?mJWvKwb zb=}|Q@jl^|ic}B)JRQejMC>9If*=suY=9<8VzGVSM>I?tm7OOSQ{%*hp=p|b=Xafr T(3m1900000NkvXXu0mjfRzUZ2 diff --git a/assets/hbm/textures/blocks/waste_log_top.png b/assets/hbm/textures/blocks/waste_log_top.png index 7fa742c905551c8816a74c36e9f48976e8e7d6f7..9cccd4e413f065c83bc70f55421668899a67f82c 100644 GIT binary patch delta 803 zcmV+;1Kj+(1g{2=8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0_I6XK~y-6CDGec z8&v?n;omuX_L|KNQXoKxP_6jF4Ek8q@sD?$;k`%_okJ zXSytFmdgc2Q4obY78eT~%cAc)imD>d3$k=i*K0;&AJ_3ffPa(*>U4g}{AAAI;S|F# zc>462#rYZ0E+I`*hNB5}-C$oj3_OoGNw~OJ@bvV=`gx7&yB5<@JU+f) z^m&D4+33C}2msj*%?1vUlRraQhy4ns$#R*AQ4!Wg)5(POW{WZms=8w6``rC}M;s>% zJeMNRnSV~Fv|Yn!JZ3obnT$s$twBghy3cUE0j6oP*#^Y%J_=7KR~6vmD295K=Nfol{j6N-44|v6onh_pot1GG4})}qBKELrGKcui?K(Lh-jN=48)b9 zSG=n4*d@7ZaI*H^XYIdpw0u5q7>1^4oS@h1RVo!s;JWT$Fu)v-$Ak)nLa|s>_lCn^ zzu)Hszi&Xg-R|jh67zPu&1N&4*=$y2@;tB6Xf&Hm%d$3`jqm&Qdfm2d2p&PJ)f$aP zWKS!!+imLpynpfc!S#B@oKB~U#R3i2RQhVQdOn}2KnxdQX#>P@jAt^L5JG^5sWfJS z?RGm-5+*>k!{PAlN3zi5KLO$U{Vu~W-+VrQKA(~p0ljenqFMq>LtwpLql8Fr@FYpX zFgzZQ6c=T=Tuz6k7WclTAUL_V-|yiN(=-_--4gr3#(&H7+wB%594wbh^avi02d$Dq z2^`1afe6S>C=D=ya3)58Ni>(ssi8@XO=3O*bCVK}bOjI)VsCI=*OdT9rqyc215t-r zr6nM{VsB);TrONzTS8E))zEZ0oo^=$69fS!&%!q$q#gleG8t9)^X;fWn4c$R6h)kJ v0i;_hl_pB^8sy;H!uj)XLLg22hG7^l0^}Fso7E*b00000NkvXXu0mjf$@B5c diff --git a/assets/hbm/textures/items/ammo_rocket.png b/assets/hbm/textures/items/ammo_rocket.png index 21192e91d268a9af5290dd79e1cd959b8112f980..7fec643532ca3f27fe10eb2a05d06f55b3a0ee98 100644 GIT binary patch delta 274 zcmV+t0qy?B0=)u|G=KC-L_t(Ijm45Nio!q?hQBOR*jogI#S<*rrC7le$W*4=W7G=Kg{L_t(Ijm?p*a>76qM$h69nU#G31Q}v76=W(XRUICnZxGXW zh}gHlM8qSIOckkNKrk32G9t`ic2*F#Rm)IH_)+CkyR&o8o_jC+cZ55P`hEMy>^1j(H3qz!obn={!JQo)YT%Ol!0KQtSgUKumZ#MuKMv+|x0nWtz iepiN3WL-Otl@%WbyI#^$Ezm#!0000uK5G=Ka_L_t(Ijm43%O2beThQC{cZU&?zh9dL^e?a3O>E5Dvb8 zOV-YgcIgXr=;jL)w>&_GLU70ngalWI(uU)p7JHjW)5SC0d*J{0&N=YkrG6gc=|bv@ z0RY*G6Bf*9BVCrv_X1J&2I>v=TQ{JpW_@D zG?@T9ll9}%-kBQ>T$8dadA+{HT1$U6>2zk`Yq3!jiJmVdj$<*#NGHg6x{xMFCkq$S gDeOW{3b)lKIuo~bHfW*@(*OVf07*qoM6N<$f1)~G=KIp|@ zrLsEC)cV^zjYf2OJ#u5@Cct68=c}rCXt!BRr;Q;;Wm-$s?SIPKaw+fItu%q0OfaZx z75Dpm6a{5b5QL%AI!8t0v8>}*a$~MeVof{KT0UnpI=+wbeKxBVlllDLdu;;@>RLs+ zoeY2aAPiZ6yd=rVH(LP!uW70P83JAu5u_;_AWsr;xs{8VIE9;OEiS<}f;gGaAvc+A a`UXWAeK^D9?F}mc0000}c8G=Kj|L_t(Ijm?p}Y63wRM$bCaEewK?#(-f8n^Yp~BP48Lsg0%N z6|7RGvaqsEX`vRDVjf{ZtkR^4pp78N!WIk4q?(|+td~l^YA(!~^YO#2X2*$MwgB|p-=!oOUYZWcd}0E z(n88Yu+8UjmEyhA$%N#R2cM&n^BBkc?Dqg?>tvFXbzG%*>Gx9;N*NrQ0IW9~Dw7FO z81mI@5)_L^HfQH;O}p>Y87i@ jf4?eSt&Od7Ul#cTlTubH`l*+#00000NkvXXu0mjf%H@Y1 diff --git a/assets/hbm/textures/items/ammo_rocket_he.png b/assets/hbm/textures/items/ammo_rocket_he.png index cfe3181ef16db8d9171fc452fc433bdb6ccd222e..be341237de25244e76e2706b314023fde0b7e1a9 100644 GIT binary patch delta 291 zcmV+;0o?wR0?h)DGk*aDNkl07lOj@5E%3jGgp=H0M}Gjlr%w20Tmaqbgb(-x*2|T?n%y<|NiH|e=Dep;Q+7p zXZ7{XZ~rg#79aioF-M2HJU-yJ0(^ZIe3w&{f+&hQLFRzbJ%7RL+my0|@#G2-=>%!~ zRcq~yF({=7!w_pNNs_c?va{UCvMhjE25FiiA^^S((f}+%j4|YSz810)uq-hF3p68ThnM~xSfgzG*8ExBQjG?Nkmtn}{MNt&$y?<=-4tXh$ zpJR++zpY5-&zado7J#N{5`eDj*lmu45Lm7qvEPh{sEDYqQERO_=hW8`$mxKN5o>MS i7GoqTJVw3>|FrIRTV5a2W#M)J0000T7|xf+R^=K{kNlJAaX#FIauUH1yG0w}R~b zRZ1C@QV1c4;}~NM*4oBQ&UPDlo=33GAj>ke)&QXivIp3PD5WTh;vl3Ju*bWp0_&2i2#U8WT$M`_R_ nNGU^_rs0@Ntr~@#G~A>gqcCO%+Pg}%00000NkvXXu0mjfLTZLc delta 249 zcmV}QF0XFoWmGHp69)gyM;7O zwJghXCqs~4^7S~z7}lEK{Ltu*7l5KD0)VQjSdG8%-t!q)bWZ1SdjV~T-AM=HW*5jH z0ALvwTtgOzwv)0|TEGazj000000NkvXXu0mjfPw#U# diff --git a/assets/hbm/textures/items/ammo_rocket_nuclear.png b/assets/hbm/textures/items/ammo_rocket_nuclear.png index e6c2e328462e291679257e763b26446ea0279ca1..7a8112095503caa68fadcdb7123a790f3b5d3147 100644 GIT binary patch delta 304 zcmV-00nh%#0@?zQGk*aQNklPR%yDzgr~o(s0000>wwOb#=^&oQ`*kU*BO97O~u!_5C5O8YSMH3=#>32 z#*K}Q4Jxj8O{-^%^KTFkLqN1MFf}^UPbGE|b3gtVhJUjyL&)kS< zGHu%+)$nevz|ECB@^Q84Gb(qtFy0ktS{QS8_MiEUjg5+d<$8x_9lr^7iryPr9<4lq zy%wRmtB_)91S-fA{?v%5Sa~{PWIKbekEG@5Ud?1Et^IQ#a0|SRk9A{Kd%wlI} aU`Q6;o}j87ddZ3b2s~Z=T-G@yGywpRsC4fD diff --git a/assets/hbm/textures/items/ammo_rocket_shrapnel.png b/assets/hbm/textures/items/ammo_rocket_shrapnel.png index 6909b1b752109cc721f434d131f9c46f608a9cd7..7f9cd9a1514fdf3a1f0bb04297c9a39227cb734b 100644 GIT binary patch delta 284 zcmV+%0ptFg0>=W7G=Kg{L_t(Ijm46^N&`U@M$d%BLP#2sFr}~%WGaj8rQ_Cr~g3J`!i&;Nup0GkkF3`J4wh3o`uI|$vj@i^D3!A4KPnmZkg)>@1)%-^qha3yJ)^5bN$gSC^v9o~D~*(`K&kVa$CT8nc| i4!P8wkmHJ5^c4;NHD#W$Dlydn0000gNFeC delta 239 zcmV4FJQ}9vHa>{oo1IGl(lmV=c>tFR zE)}!!oTh2sM!fDsL<~R>1OUWwOqOMyqvr;?NEAiXb&XPrJZR4c5$8gZBt~m}Kgly> zP`0n5lp;TDq4atk-_Zr2C<+gtZCm!I&Fx{M1@<=&0$oH#%RUkw@5oaCpwMeWmMnJdkXRW`VNh%f*E002ovPDHLkV1nS`XSe_W diff --git a/assets/hbm/textures/items/ammo_rocket_sleek.png b/assets/hbm/textures/items/ammo_rocket_sleek.png index 748fb0a4fb32018df87414c4a906e5c0700e01cb..8eff0d768e190bb55558c0b8343fca2101a70d1a 100644 GIT binary patch delta 242 zcmVa)!g=&Y%#0{cuSNv-;|?)GB#$?&SuW7E+U zv?UO3BozW2c6%JoK(hh3uA2*T2MoqBTdjfP9_SCNP)g;7JZp(_PQLGx)|!klWOL3N zB-}_c#?ZG-c-AmYQ#PBHX*4-Oh%J;-06FLgr7p0HH@@W?@K@RR91007*qoM6N<$f{Z0pF delta 200 zcmV;(05|`h0`vipG=Hl}L_t(Ijm?oU4#F@DMSnVG<_@0Cgk&zl#K6J043VHDr_cr}F?+-DfQ640rSq zRwHpp99e}%?L&}&8iT8V45kmTO)GG0LYm#d&<*Xjo9-GuHFJ}Da%S#@|Bk2*!*OW$ z4`%>8To}>W(a7NM#Xt5r@b|cW3hYLJY5B=?_QlT8oG6NVL4Ov2$E!Cnc`soun2bV{ zQoSHcZ7tiz1T9YJ6=bvmf3q?@~V~hnz(-fr?fbD_|+KRsr9LFKcvX#$S zGH5da7AB{6-?cHf8Z=GvJf}Q+Mk&SX?QU(%y%whW*pr)r?U!@3)>I}d4XRv@Jd81X w+{>EDS{aT*DPARlo>1wa#$)$ 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 x && guiTop + 35 < y && guiTop + 35 + 18 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(tank.xCoord, tank.yCoord, tank.zCoord, 0, 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); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = tank.mode; + drawTexturedModalRect(guiLeft + 151, guiTop + 34, 176, i * 18, 18, 18); + + Minecraft.getMinecraft().getTextureManager().bindTexture(tank.tank.getSheet()); + tank.tank.renderTank(this, guiLeft + 71, guiTop + 69, tank.tank.getTankType().textureX() * FluidTank.x, tank.tank.getTankType().textureY() * FluidTank.y, 16, 52); + tank.tank.renderTank(this, guiLeft + 71 + 16, guiTop + 69, tank.tank.getTankType().textureX() * FluidTank.x, tank.tank.getTankType().textureY() * FluidTank.y, 16, 52); + tank.tank.renderTank(this, guiLeft + 71 + 32, guiTop + 69, tank.tank.getTankType().textureX() * FluidTank.x, tank.tank.getTankType().textureY() * FluidTank.y, 2, 52); + } +} diff --git a/com/hbm/items/special/ItemBlockLore.java b/com/hbm/items/special/ItemBlockLore.java index 2c00fa200..0af718785 100644 --- a/com/hbm/items/special/ItemBlockLore.java +++ b/com/hbm/items/special/ItemBlockLore.java @@ -19,20 +19,33 @@ public class ItemBlockLore extends ItemBlock { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - if(this.field_150939_a instanceof RedBarrel) + if(this.field_150939_a instanceof RedBarrel) { list.add("Static fluid barrel"); + } - if(this.field_150939_a == ModBlocks.barrel_plastic) + if(this.field_150939_a == ModBlocks.barrel_plastic) { list.add("Cannot store hot fluids"); + list.add("Cannot store corrosive fluids"); + list.add("Cannot store antimatter"); + } - if(this.field_150939_a == ModBlocks.barrel_iron) - list.add("Will leak when corrosive fluids are stored"); + if(this.field_150939_a == ModBlocks.barrel_iron) { + list.add("Can store hot fluids"); + list.add("Cannot store corrosive fluids properly"); + list.add("Cannot store antimatter"); + } - if(this.field_150939_a == ModBlocks.barrel_steel) - list.add("Can hold corrosive fluids"); + if(this.field_150939_a == ModBlocks.barrel_steel) { + list.add("Can store hot fluids"); + list.add("Can store corrosive fluids"); + list.add("Cannot store antimatter"); + } - if(this.field_150939_a == ModBlocks.barrel_antimatter) + if(this.field_150939_a == ModBlocks.barrel_antimatter) { + list.add("Can store hot fluids"); + list.add("Can store corrosive fluids"); list.add("Can store antimatter"); + } } } diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index c00d9b61b..63044a586 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -60,6 +60,7 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerBlockHandler(new RenderBarrel()); RenderingRegistry.registerBlockHandler(new RenderFence()); RenderingRegistry.registerBlockHandler(new RenderBarbedWire()); + RenderingRegistry.registerBlockHandler(new RenderAntennaTop()); MinecraftForgeClient.registerItemRenderer(ModItems.assembly_template, new ItemRenderTemplate()); MinecraftForgeClient.registerItemRenderer(ModItems.chemistry_template, new ItemRenderTemplate()); @@ -79,7 +80,6 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityObjTester.class, new RendererObjTester()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeGadget.class, new RenderNukeGadget()); - //MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.nuke_gadget), new ItemRenderNukeGadget()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeBoy.class, new RenderNukeBoy()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeCustom.class, new RenderNukeCustom()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeSolinium.class, new RenderNukeSolinium()); @@ -131,6 +131,7 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorSmall.class, new RenderSmallReactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineShredderLarge.class, new RenderMachineShredder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTesla.class, new RenderTesla()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBarrel.class, new RenderFluidBarrel()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityVaultDoor.class, new RenderVaultDoor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBlastDoor.class, new RenderBlastDoor()); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 77a84a278..d0cd6b28b 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -612,11 +612,12 @@ public class ResourceManager { public static final ResourceLocation mp_w_15_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_balefire.png"); //ISBRHs - public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/scaffold.obj")); - public static final IModelCustom taperecorder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/taperecorder.obj")); - public static final IModelCustom beam = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/beam.obj")); - public static final IModelCustom barrel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/barrel.obj")); - public static final IModelCustom pole = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/pole.obj")); + public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); + public static final IModelCustom taperecorder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/taperecorder.obj")); + public static final IModelCustom beam = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/beam.obj")); + public static final IModelCustom barrel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/barrel.obj")); + public static final IModelCustom pole = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pole.obj")); public static final IModelCustom barbed_wire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/barbed_wire.obj")); + public static final IModelCustom antenna_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/antenna_top.obj")); } diff --git a/com/hbm/packet/AuxButtonPacket.java b/com/hbm/packet/AuxButtonPacket.java index a74183925..0bda5426c 100644 --- a/com/hbm/packet/AuxButtonPacket.java +++ b/com/hbm/packet/AuxButtonPacket.java @@ -3,6 +3,7 @@ package com.hbm.packet; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.items.weapon.ItemMissile.PartSize; import com.hbm.tileentity.bomb.TileEntityLaunchTable; +import com.hbm.tileentity.machine.TileEntityBarrel; import com.hbm.tileentity.machine.TileEntityCoreEmitter; import com.hbm.tileentity.machine.TileEntityCoreStabilizer; import com.hbm.tileentity.machine.TileEntityForceField; @@ -226,6 +227,13 @@ public class AuxButtonPacket implements IMessage { } } + if (te instanceof TileEntityBarrel) { + TileEntityBarrel barrel = (TileEntityBarrel)te; + + barrel.mode = (short) ((barrel.mode + 1) % barrel.modes); + barrel.markDirty(); + } + //} catch (Exception x) { } return null; diff --git a/com/hbm/render/block/RenderAntennaTop.java b/com/hbm/render/block/RenderAntennaTop.java new file mode 100644 index 000000000..2f7322e8e --- /dev/null +++ b/com/hbm/render/block/RenderAntennaTop.java @@ -0,0 +1,70 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderAntennaTop implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, 0); + tessellator.setColorOpaque_F(1, 1, 1); + + if (renderer.hasOverrideBlockTexture()) + { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + GL11.glScalef(0.75F, 0.75F, 0.75F); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.antenna_top, iicon, tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z)); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + if (renderer.hasOverrideBlockTexture()) + { + iicon = renderer.overrideBlockTexture; + } + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.antenna_top, iicon, tessellator, 0, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return 334084; + } + +} diff --git a/com/hbm/render/block/RenderFence.java b/com/hbm/render/block/RenderFence.java index c3dfa1384..cb42f1d72 100644 --- a/com/hbm/render/block/RenderFence.java +++ b/com/hbm/render/block/RenderFence.java @@ -20,12 +20,10 @@ public class RenderFence implements ISimpleBlockRenderingHandler { BlockFence fence = (BlockFence) ModBlocks.fence_metal; - boolean flag = false; float f = 0.375F; float f1 = 0.625F; renderer.setRenderBounds((double)f, 0.0D, (double)f, (double)f1, 1.0D, (double)f1); renderer.renderStandardBlock(fence, x, y, z); - flag = true; boolean flag1 = false; boolean flag2 = false; @@ -61,24 +59,22 @@ public class RenderFence implements ISimpleBlockRenderingHandler { { renderer.setRenderBounds((double)f4, (double)0, (double)0.5, (double)f5, (double)1, (double)0.5); renderer.renderStandardBlock(fence, x, y, z); - flag = true; } if (flag2) { renderer.setRenderBounds((double)0.5, (double)0, (double)f6, (double)0.5, (double)1, (double)f7); renderer.renderStandardBlock(fence, x, y, z); - flag = true; } renderer.field_152631_f = false; fence.setBlockBoundsBasedOnState(world, x, y, z); - return flag; + return true; } @Override public boolean shouldRender3DInInventory(int modelId) { - return false; + return true; } @Override diff --git a/com/hbm/render/tileentity/RenderFluidBarrel.java b/com/hbm/render/tileentity/RenderFluidBarrel.java new file mode 100644 index 000000000..9ae93cf83 --- /dev/null +++ b/com/hbm/render/tileentity/RenderFluidBarrel.java @@ -0,0 +1,46 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.render.util.DiamondPronter; +import com.hbm.render.util.EnumSymbol; +import com.hbm.tileentity.machine.TileEntityBarrel; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderFluidBarrel extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float i) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + + if(te instanceof TileEntityBarrel) { + + TileEntityBarrel barrel = (TileEntityBarrel)te; + FluidType type = barrel.tank.getTankType(); + int poison = type.poison; + int flammability = type.flammability; + int reactivity = type.reactivity; + EnumSymbol symbol = type.symbol; + + for(int j = 0; j < 4; j++) { + + GL11.glPushMatrix(); + GL11.glTranslated(0.4, 0.25, -0.15); + GL11.glScalef(1.0F, 0.35F, 0.35F); + DiamondPronter.pront(poison, flammability, reactivity, symbol); + GL11.glPopMatrix(); + GL11.glRotatef(90, 0, 1, 0); + } + + } + + GL11.glPopMatrix(); + } + +} diff --git a/com/hbm/render/tileentity/RendererObjTester.java b/com/hbm/render/tileentity/RendererObjTester.java index a063d6926..05f6d6356 100644 --- a/com/hbm/render/tileentity/RendererObjTester.java +++ b/com/hbm/render/tileentity/RendererObjTester.java @@ -3,14 +3,12 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.render.util.BeamPronter; -import com.hbm.render.util.BeamPronter.EnumBeamType; -import com.hbm.render.util.BeamPronter.EnumWaveType; +import com.hbm.render.util.DiamondPronter; +import com.hbm.render.util.EnumSymbol; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; @@ -32,7 +30,8 @@ public class RendererObjTester extends TileEntitySpecialRenderer { public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); /*switch(tileEntity.getBlockMetadata()) { case 5: @@ -108,10 +107,12 @@ public class RendererObjTester extends TileEntitySpecialRenderer { //SoyuzPronter.prontSoyuz(); //TomPronter.prontTom(); - BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xff8000, 0xff8000, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 25, 0.1F, 4, 0.05F); - BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xffff00, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 1, 0F, 4, 0.05F); + //BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xff8000, 0xff8000, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 25, 0.1F, 4, 0.05F); + //BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xffff00, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 1, 0F, 4, 0.05F); //BeamPronter.prontHelix(Vec3.createVectorHelper(0, 5, 0), 0.5, 0.5, 0.5, EnumWaveType.SPIRAL, EnumBeamType.LINE, 0x0000ff, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25 + 180, 25, 0.25F); + DiamondPronter.pront(1, 2, 3, EnumSymbol.OXIDIZER); + GL11.glPopMatrix(); } diff --git a/com/hbm/render/util/DiamondPronter.java b/com/hbm/render/util/DiamondPronter.java new file mode 100644 index 000000000..bd4c3950b --- /dev/null +++ b/com/hbm/render/util/DiamondPronter.java @@ -0,0 +1,115 @@ +package com.hbm.render.util; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.ResourceLocation; + +public class DiamondPronter { + + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/models/misc/danger_diamond.png"); + + public static void pront(int poison, int flammability, int reactivity, EnumSymbol symbol) { + + GL11.glPushMatrix(); + + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + + float p = 1F/256F; + float s = 1F/139F; + Tessellator tess = Tessellator.instance; + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + + tess.startDrawingQuads(); + tess.addVertexWithUV(0.0, 0.5, -0.5, p * 144, p * 45); + tess.addVertexWithUV(0.0, 0.5, 0.5, p * 5, p * 45); + tess.addVertexWithUV(0.0, -0.5, 0.5, p * 5, p * 184); + tess.addVertexWithUV(0.0, -0.5, -0.5, p * 144, p * 184); + tess.draw(); + + float width = 10F * s; + float height = 14F * s; + + if(poison >= 0 && poison < 6) { + + float oY = 0; + float oZ = 33 * s; + + int x = 5 + (poison - 1) * 24; + int y = 5; + + if(poison == 0) x = 125; + + tess.startDrawingQuads(); + tess.addVertexWithUV(0.01, height + oY, -width + oZ, (x + 20) * p, y * p); + tess.addVertexWithUV(0.01, height + oY, width + oZ, x * p, y * p); + tess.addVertexWithUV(0.01, -height + oY, width + oZ, x * p, (y + 28) * p); + tess.addVertexWithUV(0.01, -height + oY, -width + oZ, (x + 20) * p, (y + 28) * p); + tess.draw(); + } + + if(flammability >= 0 && flammability < 6) { + + float oY = 33 * s; + float oZ = 0; + + int x = 5 + (flammability - 1) * 24; + int y = 5; + + if(flammability == 0) x = 125; + + tess.startDrawingQuads(); + tess.addVertexWithUV(0.01, height + oY, -width + oZ, (x + 20) * p, y * p); + tess.addVertexWithUV(0.01, height + oY, width + oZ, x * p, y * p); + tess.addVertexWithUV(0.01, -height + oY, width + oZ, x * p, (y + 28) * p); + tess.addVertexWithUV(0.01, -height + oY, -width + oZ, (x + 20) * p, (y + 28) * p); + tess.draw(); + } + + if(reactivity >= 0 && reactivity < 6) { + + float oY = 0; + float oZ = -33 * s; + + int x = 5 + (reactivity - 1) * 24; + int y = 5; + + if(reactivity == 0) x = 125; + + tess.startDrawingQuads(); + tess.addVertexWithUV(0.01, height + oY, -width + oZ, (x + 20) * p, y * p); + tess.addVertexWithUV(0.01, height + oY, width + oZ, x * p, y * p); + tess.addVertexWithUV(0.01, -height + oY, width + oZ, x * p, (y + 28) * p); + tess.addVertexWithUV(0.01, -height + oY, -width + oZ, (x + 20) * p, (y + 28) * p); + tess.draw(); + } + + + float symSize = 59F/2F * s; + + if(symbol != EnumSymbol.NONE) { + + float oY = -33 * s; + float oZ = 0; + + int x = symbol.x; + int y = symbol.y; + + tess.startDrawingQuads(); + tess.addVertexWithUV(0.01, symSize + oY, -symSize + oZ, (x + 59) * p, y * p); + tess.addVertexWithUV(0.01, symSize + oY, symSize + oZ, x * p, y * p); + tess.addVertexWithUV(0.01, -symSize + oY, symSize + oZ, x * p, (y + 59) * p); + tess.addVertexWithUV(0.01, -symSize + oY, -symSize + oZ, (x + 59) * p, (y + 59) * p); + tess.draw(); + } + + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } + +} diff --git a/com/hbm/render/util/EnumSymbol.java b/com/hbm/render/util/EnumSymbol.java new file mode 100644 index 000000000..7b73294ef --- /dev/null +++ b/com/hbm/render/util/EnumSymbol.java @@ -0,0 +1,20 @@ +package com.hbm.render.util; + +public enum EnumSymbol { + NONE(0, 0), + RADIATION(195, 2), + NOWATER(195, 63), + ACID(195, 124), + ASPHYXIANT(195, 185), + CROYGENIC(134, 185), + ANTIMATTER(73, 185), + OXIDIZER(12, 185); + + public int x; + public int y; + + private EnumSymbol(int x, int y) { + this.x = x; + this.y = y; + } +} diff --git a/com/hbm/tileentity/machine/TileEntityBarrel.java b/com/hbm/tileentity/machine/TileEntityBarrel.java index ed1046218..e00c473f9 100644 --- a/com/hbm/tileentity/machine/TileEntityBarrel.java +++ b/com/hbm/tileentity/machine/TileEntityBarrel.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.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; @@ -10,13 +11,23 @@ import com.hbm.inventory.FluidTank; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource { public FluidTank tank; - public int mode = 0; + public short mode = 0; + public static final short modes = 4; public int age = 0; public List list = new ArrayList(); + public TileEntityBarrel() { + super(6); + tank = new FluidTank(FluidType.NONE, 0, 0); + } + public TileEntityBarrel(int capacity) { super(6); tank = new FluidTank(FluidType.NONE, capacity, 0); @@ -33,9 +44,62 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc if(!worldObj.isRemote) { tank.setType(0, 1, slots); + tank.loadTank(2, 3, slots); + tank.unloadTank(4, 5, slots); tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + + age++; + if(age >= 20) + age = 0; + + if((mode == 1 || mode == 2) && (age == 9 || age == 19)) + fillFluidInit(tank.getTankType()); + + if(tank.getFill() > 0) { + + Block b = this.getBlockType(); + + if(b != ModBlocks.barrel_antimatter && tank.getTankType().isAntimatter()) { + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true); + } + + if(b == ModBlocks.barrel_plastic && (tank.getTankType().isCorrosive() || tank.getTankType().isHot())) { + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F); + } + + //TODO: rip off furnace code and make transition more seamless + if(b == ModBlocks.barrel_iron && tank.getTankType().isCorrosive()) { + ItemStack[] copy = this.slots.clone(); + this.slots = new ItemStack[6]; + worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.barrel_corroded); + TileEntityBarrel barrel = (TileEntityBarrel)worldObj.getTileEntity(xCoord, yCoord, zCoord); + + if(barrel != null) { + barrel.tank.setTankType(tank.getTankType()); + barrel.tank.setFill(Math.min(barrel.tank.getMaxFill(), tank.getFill())); + barrel.slots = copy; + } + + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F); + } + + if(b == ModBlocks.barrel_corroded && worldObj.rand.nextInt(3) == 0) { + tank.setFill(tank.getFill() - 1); + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setShort("mode", mode); + this.networkPack(data, 50); } } + + public void networkUnpack(NBTTagCompound data) { + + mode = data.getShort("mode"); + } @Override public void setFillstate(int fill, int index) { @@ -49,6 +113,10 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Override public int getMaxFluidFill(FluidType type) { + + if(mode == 2 || mode == 3) + return 0; + return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; } @@ -74,6 +142,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Override public int getFluidFill(FluidType type) { + return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; } @@ -100,4 +169,20 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return list; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + mode = nbt.getShort("mode"); + tank.readFromNBT(nbt, "tank"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setShort("mode", mode); + tank.writeToNBT(nbt, "tank"); + } } diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java index 1e834620d..3682fc7f5 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java @@ -48,8 +48,8 @@ public class TileEntityMachineReactorSmall extends TileEntity public FluidTank[] tanks; 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 static final int[] slots_bottom = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15 }; + private static final int[] slots_side = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }; private String customName;