From ed767ef578b5fb6fb40e941425c42862cdc559b3 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 1 Jan 2019 02:35:42 +0100 Subject: [PATCH] miniguns, thorium rods, spent fuel pool, hot depleted fuel --- assets/hbm/lang/de_DE.lang | 5 + assets/hbm/lang/en_US.lang | 5 + assets/hbm/sounds.json | 3 + assets/hbm/sounds/weapon/lacunaeShoot.ogg | Bin 0 -> 4545 bytes assets/hbm/sounds/weapon/lacunaeSpindown.ogg | Bin 0 -> 16950 bytes assets/hbm/sounds/weapon/lacunaeSpinup.ogg | Bin 0 -> 12046 bytes assets/hbm/textures/gui/gui_waste_drum.png | Bin 0 -> 1711 bytes .../hbm/textures/items/assembly_lacunae.png | Bin 0 -> 271 bytes .../hbm/textures/items/chlorine_pinwheel.png | Bin 0 -> 420 bytes .../textures/items/clip_revolver_nopip.png | Bin 0 -> 267 bytes assets/hbm/textures/items/gun_avenger.png | Bin 0 -> 320 bytes assets/hbm/textures/items/gun_lacunae.png | Bin 0 -> 321 bytes .../hbm/textures/items/gun_lacunae_ammo.png | Bin 0 -> 192 bytes assets/hbm/textures/items/gun_minigun.png | Bin 0 -> 309 bytes .../items/rod_dual_mox_fuel_depleted.png | Bin 283 -> 225 bytes assets/hbm/textures/items/rod_dual_th232.png | Bin 0 -> 260 bytes .../textures/items/rod_dual_thorium_fuel.png | Bin 0 -> 261 bytes .../items/rod_dual_thorium_fuel_depleted.png | Bin 0 -> 292 bytes assets/hbm/textures/items/rod_quad_th232.png | Bin 0 -> 314 bytes .../textures/items/rod_quad_thorium_fuel.png | Bin 0 -> 304 bytes .../items/rod_quad_thorium_fuel_depleted.png | Bin 0 -> 273 bytes assets/hbm/textures/items/rod_th232.png | Bin 0 -> 216 bytes .../hbm/textures/items/rod_thorium_fuel.png | Bin 0 -> 213 bytes .../items/rod_thorium_fuel_depleted.png | Bin 0 -> 184 bytes assets/hbm/textures/models/ModelLacunae.png | Bin 0 -> 2856 bytes .../textures/models/ModelLacunaeAvenger.png | Bin 0 -> 2844 bytes .../hbm/textures/models/ModelLacunaeReal.png | Bin 0 -> 2854 bytes com/hbm/blocks/machine/WasteDrum.java | 85 ++- com/hbm/handler/BulletConfiguration.java | 9 + com/hbm/handler/GUIHandler.java | 18 + com/hbm/handler/GunConfiguration.java | 39 ++ com/hbm/interfaces/IHoldableWeapon.java | 3 + com/hbm/inventory/MachineRecipes.java | 99 +-- .../container/ContainerWasteDrum.java | 85 +++ com/hbm/inventory/gui/GUIWasteDrum.java | 44 ++ com/hbm/items/ModItems.java | 51 ++ com/hbm/items/special/ItemFuelRod.java | 73 +-- com/hbm/items/weapon/GunLacunae.java | 129 ++++ com/hbm/items/weapon/GunUZI.java | 5 +- com/hbm/items/weapon/ItemClip.java | 29 + com/hbm/items/weapon/ItemGunBase.java | 9 + com/hbm/main/ClientProxy.java | 3 + com/hbm/main/CraftingManager.java | 61 +- com/hbm/main/MainRegistry.java | 22 + com/hbm/main/ModEventHandlerClient.java | 13 +- com/hbm/render/item/ItemRenderOverkill.java | 325 +++++++--- com/hbm/render/model/ModelLacunae.java | 571 ++++++++++++++++++ .../machine/TileEntityMachineCentrifuge.java | 9 +- .../TileEntityMachineReactorLarge.java | 12 +- .../TileEntityMachineReactorSmall.java | 2 +- .../machine/TileEntityWasteDrum.java | 240 ++++++++ 51 files changed, 1713 insertions(+), 236 deletions(-) create mode 100644 assets/hbm/sounds/weapon/lacunaeShoot.ogg create mode 100644 assets/hbm/sounds/weapon/lacunaeSpindown.ogg create mode 100644 assets/hbm/sounds/weapon/lacunaeSpinup.ogg create mode 100644 assets/hbm/textures/gui/gui_waste_drum.png create mode 100644 assets/hbm/textures/items/assembly_lacunae.png create mode 100644 assets/hbm/textures/items/chlorine_pinwheel.png create mode 100644 assets/hbm/textures/items/clip_revolver_nopip.png create mode 100644 assets/hbm/textures/items/gun_avenger.png create mode 100644 assets/hbm/textures/items/gun_lacunae.png create mode 100644 assets/hbm/textures/items/gun_lacunae_ammo.png create mode 100644 assets/hbm/textures/items/gun_minigun.png create mode 100644 assets/hbm/textures/items/rod_dual_th232.png create mode 100644 assets/hbm/textures/items/rod_dual_thorium_fuel.png create mode 100644 assets/hbm/textures/items/rod_dual_thorium_fuel_depleted.png create mode 100644 assets/hbm/textures/items/rod_quad_th232.png create mode 100644 assets/hbm/textures/items/rod_quad_thorium_fuel.png create mode 100644 assets/hbm/textures/items/rod_quad_thorium_fuel_depleted.png create mode 100644 assets/hbm/textures/items/rod_th232.png create mode 100644 assets/hbm/textures/items/rod_thorium_fuel.png create mode 100644 assets/hbm/textures/items/rod_thorium_fuel_depleted.png create mode 100644 assets/hbm/textures/models/ModelLacunae.png create mode 100644 assets/hbm/textures/models/ModelLacunaeAvenger.png create mode 100644 assets/hbm/textures/models/ModelLacunaeReal.png create mode 100644 com/hbm/handler/BulletConfiguration.java create mode 100644 com/hbm/handler/GunConfiguration.java create mode 100644 com/hbm/interfaces/IHoldableWeapon.java create mode 100644 com/hbm/inventory/container/ContainerWasteDrum.java create mode 100644 com/hbm/inventory/gui/GUIWasteDrum.java create mode 100644 com/hbm/items/weapon/GunLacunae.java create mode 100644 com/hbm/items/weapon/ItemGunBase.java create mode 100644 com/hbm/render/model/ModelLacunae.java create mode 100644 com/hbm/tileentity/machine/TileEntityWasteDrum.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index b1b874466..cca1edc95 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -655,6 +655,7 @@ item.assembly_nopip.name=.44er Patronensatz item.assembly_smg.name=9mm Patronensatz item.assembly_uzi.name=.22LR Patronensatz item.assembly_calamity.name=.50 BMG Patronensatz +item.assembly_lacunae.name=5mm Patronensatz item.piston_selenium.name=Sternmotorenkolben @@ -1248,6 +1249,9 @@ item.gun_revolver_nopip.name=Novac item.gun_revolver_blackjack.name=Blackjack Five-Shooter item.gun_revolver_red.name=Roter Schlüssel-Revolver item.gun_calamity.name=Calamity +item.gun_minigun.name=CZ53 Persönliche Minigun +item.gun_avenger.name=CZ57 Avenger-Minigun +item.gun_lacunae.name=CZ33 Abaddon item.gun_calamity_dual.name=Sattelkanone item.gun_fatman.name=M42 Nukleares Katapult "Fat Man" item.gun_proto.name=M42 Nukleares Katapult "Proto MIRV" @@ -1296,6 +1300,7 @@ item.gun_revolver_nightmare2_ammo.name=Laserschrot item.gun_revolver_pip_ammo.name=Verdorbene Patrone item.gun_revolver_nopip_ammo.name=.44 Magnumpatrone item.gun_calamity_ammo.name=.50 BMG Patrone +item.gun_lacunae_ammo.name=5mm Patrone item.gun_fatman_ammo.name=Miniatombombe item.gun_mirv_ammo.name=Achtfaches MIRV item.gun_bf_ammo.name=Mk.V kompaktes AMAT-Artilleriegeschoss - Typ B.F. diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 6cde61941..fff2093f3 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -655,6 +655,7 @@ item.assembly_nopip.name=.44 Magnum Assembly item.assembly_smg.name=9mm Assembly item.assembly_uzi.name=.22LR Assembly item.assembly_calamity.name=.50 BMG Assembly +item.assembly_lacunae.name=.5mm Assembly item.piston_selenium.name=Radial Engine Piston @@ -1249,6 +1250,9 @@ item.gun_revolver_blackjack.name=Blackjack Five-Shooter item.gun_revolver_red.name=Red Key Revolver item.gun_calamity.name=Calamity item.gun_calamity_dual.name=Saddle Gun +item.gun_minigun.name=CZ53 Personal Minigun +item.gun_avenger.name=CZ57 Avenger Minigun +item.gun_lacunae.name=CZ33 Abaddon item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" @@ -1296,6 +1300,7 @@ item.gun_revolver_nightmare2_ammo.name=Laser Buckshot item.gun_revolver_pip_ammo.name=Tainted Bullet item.gun_revolver_nopip_ammo.name=.44 Magnum Bullet item.gun_calamity_ammo.name=.50 BMG Round +item.gun_lacunae_ammo.name=5mm Round item.gun_fatman_ammo.name=Mini Nuke item.gun_mirv_ammo.name=Eightfold MIRV item.gun_bf_ammo.name=Mk.V Compact AMAT-Artillery Shell - Type B.F. diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 7159cad42..fe222eda2 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -90,6 +90,9 @@ "weapon.silencerShoot": {"category": "player", "sounds": [{"name": "weapon/silencerShoot", "stream": false}]}, "weapon.gBounce": {"category": "player", "sounds": ["weapon/gBounce1", "weapon/gBounce2", "weapon/gBounce3"]}, "weapon.calShoot": {"category": "player", "sounds": ["weapon/cal1", "weapon/cal2", "weapon/cal3"]}, + "weapon.lacunaeSpinup": {"category": "player", "sounds": [{"name": "weapon/lacunaeSpinup", "stream": false}]}, + "weapon.lacunaeSpindown": {"category": "player", "sounds": [{"name": "weapon/lacunaeSpindown", "stream": false}]}, + "weapon.lacunaeShoot": {"category": "player", "sounds": [{"name": "weapon/lacunaeShoot", "stream": false}]}, "weapon.reloadTurret": {"category": "player", "sounds": [{"name": "weapon/reloadTurret", "stream": false}]}, "weapon.switchmode1": {"category": "player", "sounds": [{"name": "weapon/switchmode1", "stream": false}]}, diff --git a/assets/hbm/sounds/weapon/lacunaeShoot.ogg b/assets/hbm/sounds/weapon/lacunaeShoot.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5233c54d72fc07d8dc6c05c1d3b7b4ac070315c5 GIT binary patch literal 4545 zcmahseLR%e_YYB%q`{=2(RWy4L_6bsEE{TKMiXW{UYnGc&@|r0D9P@u8CIiYg~F^< zrV!c@LyB!nLugVON-x?~UVBk(*lhXTXYB58e}DWw-}AZ8ea=1So|k*>z0Wz1Z%hmm zQiuM6JF88Z2wFZJ@K$Y|T53XaL>w0(s6iRX3&6+4SBsi2BKZ#>l4@Xdey!_qoy3KI zf$ow;HP(O|9G4io(Kk5;zb`H#P^BDC#oH1|4nz{s0dM(Rned-RK%6oL4>Ms;%KqKS z(QeFy_%u8-ffpZz-r zxLB*L60U&|ZRF`^ID+$3uwNQ_Zqv=g*=`H#G3Vx+R91NAgjs&qmk&dT!1o>pFhY?B z%0y`H7F-~(a06Hl8PMVo8rt*kjzW$FTo077aD?crEqLKPhZ9oB!Dv7m#|u|^wv-BL z$zZaXgSVexDR~?xyl!nN%IqMv7zi~SERSS9CwAQztnkb!6;K`KjD#^B2MiW%n0a{T z3zm9xVTD^gfCo#-Ef`^sN0pJ#ij4Y?5N{u~8p?;DiZhm?GnQItqXsRg3xd$@{+P}r z+^rvQx1_igsFfj_$iAV#Ja18@ciwaF0<(|;b5$EXTw~qSplY@%ac>Cn^Vg;%VV0@n zq96!W;VhB_izKn4v79`VFuPVA;zN)IFk`=&>FQOu-^ETn0DrB(a0qs#}PaS>IjZt~^?POOg%tJ*FXm-XEQn6G@|sTlpw6xBRckimN0(b-3LKPI5= zjm6@(>P8sZPI%0Y6PFta#GaFP$73rCT~OvlNer6BV!+iQca%vMhT;8p7m;IraF z$k0;74-aDRxzsQ!-yhK&kwZ8yPS&!jS_~&1*%}D)eTTcNYy7|ME$)u4xxXH0HvP5^ z{Y(nXiykcIg*0b`J;-9sW;_9Hj<-9wI6CD2w8f=^`-caIeQ_ZKIhNZ?9ycpQ|GiAG zp->{mOLg9;4Q4*~%x>Sa_I+>ftMBHIq4e9scUQCgojCrE(ftlArXvduI0&x19{^)1+gW?Rn?^%y3f6At)KdDZH4N9n?X>D znOCxz7sHIg0EjBOd~GDUxEmxhO0sp&J^RHq-qm*l0S!u7{Am2O0T85p>nBXlT^wD{ zT*G~kB%aIFv4JTCCROM5b+nf|xc9@MbJeCp06~xSnSv|5q z+=(H3=F5wz!js6o(t!NIy&`pyI&jGf|4B27f^20hk(0fu&))Z^NzY;JXy&p2_J|k^ zCoLsLKDovcOr%H(grH^MS#i2Af3=!B27T)0$mhjO1=;e) z!fx{VACK!1B;rWG6&EU~FT}_1Q7yswxTXdkPfPnK3WT~awQ&|3RbO_L#8a*h3g9dnX3~P`{ zf4CZki{XdLXt(TeBVb47j_C zSWiyy9%18Ivqx{+a~`FzSWc{m-^lBSc~1gZ z;U_p@hVd*fmC}$odeBT(*x=ETfs7bK)`|M=hA(RyYPFl+tiADi{(8fZEU8zP$DZnz z&eNi2i=q#39tG`TS@gDYa91wceX|?nf@}OGkUM{QbcO18h#^Rj&&?sAeux0ckC26C zh_HfuvW0o%b{fIF$&a>IHxg~tSsA6EE|)Z7XmNzXd!Yn#nIA2;t|^qsmS!_TS4bLz zX>p{cz({tTJcqQrgv+oUt1M)MZjdwvTl z#6((}%L^Ds%q2!)BAaF`R|lwK9F_t`E}_#PQlT5^2UG#$1W98cZEs!jb{bIC>p=yo ze5iyy3hE@j^1g=`qKZlYUhM;_e5fQDmK#ry8PVc^DmIlM2dZpjk6lo8SpgB+l8y%v zy_cH;*(&3;=8~a^+9qIprKBU6QH@AkkPc!aZxduYn7Izk*z|gv=AB%fubTq7BEq0S zxxj|MC6z|sy&Zw9h+Nn?IAWF0n?!=#*ICM`KG03qy0Ig#`>Y$pGZ~XCOoG5}fP!4a&-{)qogk zkak{VNO??Y&EB3o^R#lynsXN>WnYApTZn3EYGjrT~;&M3MdV)R$Q3sZm@nNi(h+VvK3SuGR{gQXDf65cVch~h7HK^)Zwo-SyNUpvD`4mP07v=aUG@}bI1o@O8EM$O`v=j$H>f0=r zsN6mSzWJuLO#`8kb)d^dFm@eCnX0_`|8{B+Lth7Cta6N{S?esuaWxW0!a1Bk+vP?f zw~uORE&*W`3kn#tA})hQt!^4XPAd|CBj0VrW% zL@zM9nMN8#N|o;yhurNXIT(7NP9t0-BO_d-5bXtfE&vzuN3M>lBy~}7Q6?#iLr+kH zs%q7~zpB>L$Yi8`RfG7NIv~|J*5)NL>4`*jR zo37Bqo1RnWcW7kofU16K@xIc+-?(H)-%XJ0QJ(0`V4SrkQf2rpg9O~-onqx8711?CiOS2< zQBnIv(9k4m||lXLsrv7O?erhZ-j&+ka_oTRdg81-X&8IrF<4rpwluD_PH@cpS#?bE4C z@`)8gJ%^>8b)WQH9~37}zOva7{;I1bGS)#?+IE{cH*#$6l{;$#s52VB8oRI9Yv~TZ z^5$=+>;29+6WMy|G0*hfRO7Lc+K=T9Kub`$>M_jCy zUy+g9s`m?RHnPl(Zr|2-{*lD69BPo<{3u%Zb|!aJnx0mj@1(TUaD{g)=~IhPuTg5@ zKc?MkIr!4|bnyPwLHn%@WSyjUcI)0fA5DAmbl3({PGgP~P2FjE#OoxjX|=Aiz(dfp zi|q@~-v0jT@attk;cMo_@6F0$xGR6H-2+>_poCGbh`p0HcD~G$_6)TzXy0;vKJ{sI zBzgAK^)Iu2=&T)j|G{Cze#PwhS6)%BKUIGknRVE8wnW$BQa^5_I{vwH?pxF`!w`61 z`>|q+A4U#V_O^w`)|~Es{*Je)M&UQmxOVb{wIiBWa&(Q2Afdl)!_`B3zv_KI7PoMG zEH!ZMVqS7<=_#JoH%5YV%2?A-V7hU**~9Ct<^z|yHk+9GzAx+3jP2d@C0_4qiac*< zTgmzdAu*L61#niPFp0jKrBS7$pMJvdb;+0U7OMic@xpRqFz(Rw+czCbn4>s+@srEC z3WdJOV64aMuu9Ec@U0n8q$YlD{%y8B_H5BtA9w#TI#}>#)c*eHMGutSGvyYmiKNo- zkbBG#+z$jcEw3cVHM`V$-xcA9opu%jjekPx^1f+XwZ`P5*zeF8XA8|&%_lBN+I`cR zJSFqc`9ZFiX8SF>Ga1Hl()(VALUdRjAN}4$8~guJ=9QZgU^1~T`Ci8DU(s6!E@3Up z@-jZO>D^zC_NwWu`thu3X32}yU9B(b8S&+}GIRHbZ8Urn*Ki@8qx^a$2DE|HGMaMsUSSEV+e>I$OdmEW*ZSQ8a zEN8((ymE_XRqA6(%5dz zF`ZvDPV-LjUydi0ulsgket6;Y?9U71onu6hWsi{bzIxRgKrKKO))&psXN!05d$<{@ zYTonoWAo3hn@SEIDRWAAdX+3cu2h=Ue$#x}NqVw;30%5ruEg@I*PtX5Xz=Hpe3?r;o%j%OQvyzhqnXQ$v#y{d@GGy$m zY+S5ttXyPt>*)diJAz)AB7r?>4(2XyMowmeY7X`uWNHpjds8w=2PX?NvJcFx7_bK7 zqUsWY?5wOjOsu?2Y@9&E|N5g4`=|i~hyVao&iM3_`ObI&n1o`=1RKO+qc(>GV)9si z#O(6A!_>|(mujF9^Y+?l=KqqDbTc)Ph=Z{7hvi8}ZA!;cX~$9ji`$_kjKekmBKtpdX#hZ31y#Zk=k-54Qvd+z`-iZ6t+0H{ zu$_=7q=29@IDjtzfB@@;^P`%8RD$@JI(V+ZZt4Gux=CgP|IlGF#GJG;FMbum3QzFr z-#ozB@Wl#a?eYCzLiWX%MbAMl=UvO#_^yqfCR@!*k|AC15tkm;%)67}JUY0Y!8Qtm zax%10(_rm(GJ3viqx=WaR(p)6(Z7^Aj_w&|VD-TunsSerw8(lGgjjABl_pmWgQS~1 zRMX{N%A8+F{Y&b1|d!E zSdvL%856SaiC*urA`|*&i0x18TIMD2AyFqfs>;&-CvZ4`2oiZ9j;i$kN{mCugYcb( zK!xA^Wa*2Gaw6D=8EZ%WC47fvwdnk)Y(1DC8OnQ9)$F)twQP=gchdapG<0mr>s4hz z`3b5h|KvvolfBq00@E0k7s|#Vpu!9%6#An7#7XutH2{Fp8Sw-b$^VI`#A8_0DsN$t zX^Nd|N=*U`HJeL2e8Q3Xr*ASfRC1G4za|-#&N-E^1yyh)rZ~Y9xDXW{I~8uTDK3Z_Hw3I< zr7`IE^6aL z9FnBr8xh6xt=Wx;k42aGZm#mFEtrG(M- zQ0=OUz6R}%vig0$e#`5h(T~F`7Sop`6Oi(kpau@)8!M&g_Gptn1ofskN~e?&ztP=7+jzT4gl~KQxydi zm|#2#+KEveV%sKG4dX4$P#fi?`<5`oOY<%MEhs<31Xi1oFe*y+Aggz*fkHA;l6Btw_*?IG8Zzc}rdTp$o0 zh~}IfgeORQ&f7p8Y@lhjz@wpk1zU&J&^3HX@C;PVHP8TRX3zvR(6)!{v^7N9-Vd=I zbZ|UKx)^*&nrQ%4+P~>8JGl9I%-H&uL2#-LIt7NVs6z~r?Q{w3AyWT{YTqbmUIpsT zMQ+S`TM$5!D~4)V%4*6`8&8P3kMDohEH*ffG(_1P3{~IDnq4QFx!WyinnP$uTI`5h zD>=Rx!E8a7FFZiR7uoFlKlR7}0Q_T|LqJHe#xUat3dB?m!}pKjrKL7elm$`OE6ZAA znPAfQ=b4VmAm`WN$XbCCCUrp64a&0N<@GvhHq}9@I&bppv}CQ=>NQMk%KJjtkW-yi z*?001RCO5g>ymh-@||N;Uz6v@sfJVM<1_5!nU1UMk>#nYh8E}Hn9x!8#i>S6=M(CN zF*V{lqr*t4hE~HW!a@CbCZkv;$}m!}&O!Ng8nV{qPKvTHQX`@=Fj8_dAoEd~eX_i1 zQK=VFG9VaNwlGq1GHea_&i0@NLRl*qDH|D3AB+@J!!jRId7!#6YJShW@kn#MhRwgu z%c%1gjmzp`oulRVXsH&zV3bzR;hX#dHR!2@b2Z|7RWLQ`JEIHLYdD92=I~68*&4}g zM%&#mVI%Lsmkq7%)vyU?+fkN%8Hb!qHLP>H@>xCO<=Ze)poR>aiuSo>KbQ+;_;1Mtuq#^*$O6bv007n?wjDA~6qprDcm-RX z@o~Jb$paGDcgO-_RCkC2;&cu&{FP;G@)Htt!mAVFRBhPsV7C4@%t9Ob7xb(H0)xsB z0IEO$YLtm~rbSwb^>7rmM7qgPlhv2=;ENsL=ga(o#`+kZJX= zgz=yQhE-Bh!7$w6P*MWhX<=@~-}I9G7FbEm(VNnPp&G`e2799J{T7(V(O`El|eoOspCHajLS3&Z@F9#r3l<+WI0rb4*n$ranTOUt}(arWiiJcM2wc zPs8qgBw7iRum5WTkOC5nM_`?Plx5p~aaDr<%Q`Ev^}({DNZBv7FBbWw_Qeq$fz7!; zY(ai=M*ruM^8KqtB6s;OD+cpH|M{xp|Kqi0zchaFUx5H$M0A*`;Vz5%q{@k>^`c5I zexl!^6C)dkH19SeHv&0gGgunbTW2mwu+;=cA(Oy8hRp!L4~9+-1iV5* zF$ehm0RG$|+eJW%;syXjLq;$|g93m5{r;AWq5#gf2O&@oP*l|<-P+{K46ird3p4ge zVwiqf#3DfC4PkdSRwc24dOd;&ruVlbWfFZlZU{sTl{sju&UrxOvue?@?o)5%N2U&5n& z4AdYHD=RD4(Tz=?~QF{S~_|VBP08Vh5 z2J_-K$zZB|bY?f;{_&vpb0&r{KAPWi=YysYavLWSP&4@++Jg$jCa?5*wZ$(F%jSD*@@rlefiLFyCNl-*Ss3_D`UoeV1BZJrBwNuSdP8(TwKY{vFB32 zp89!FEcL|6b=kvVw1md|lsrN&=MsMmHQoe+K6yw-e>3^#r2xDQL%MTRK8u5>%G+vn9&Co}xflWusF zq1oeT`DoMBV zQ~xgwq!Y+fD&ie4JC!EtqD?`WcNMxwQi7KHk9RjzSqR)kBPJp+&x&OQS8&Ux___uE znk6%umEvxG0Mfo&a#k}dYbtPs_J%vv;ka*)syePsS1&s6+sxb)ov=V@*f;9?y3>pE zyQVVtO)ZY+ux#d5X?E^L!UOj})&=JYD*Z2uao+>lt_cvFzzeAD9$8$6Z| zV;4-@{siaa7kb?9D8rg<5gL9Vl#tA#xqQc7HhUB1LW&?9aVu4+D;HHY;7T_bHu|N) z?v*j4`*DfD+@h#U)gN6mdlbQp#jG1MuuOBh$cCU{>Guh$+PuM&{8QcRDug+-A~QC6 zIATpbf77hw1zajot;u7a$V}~(VjqDE=LsL@w*%8Ey#w|~(}FD6A;-^l&jp`90vOfw;9E*PY7nrHJbbLyDeZZ9uZr5Q4&2h#)K=aB=>*me66~?_DY-T$X?@YvvLZx*N&e3Ga_&DrPIcKMS8;p(~zT9@C{RY)rz>>eqL<~>e!;D!^L0Ko za}bC|Eqa#07<>}1fud|69B*5yJxAKkp3f0ENWN(rA)dHQj{mvxqvcBumeJ)M`ivQ$@qe<#~Ly7gR(uOF!IFG6}NTcey`4b zgj*82lXU9uq|AKN;c188q@hl#GUT)WYibmy(Q*gd0za)*9Z?enK&;S(SS1(TF{hOy zVi_wC-+OtF)~Q&S()&31tHrjrjnhqwKUM<~N1+Yq5}lD{5od`EP);2l;z8rgR{wCK zS#oU!Y@5)jPA^F-t)n-H4ggRou@MqJ5LN78v!WKE^kKBp=JJ(pT~z!{xDxiiW@;DI zzw69m(hjxa1L7#P;a0<27TExRB_;TwpB?sB*ag1y&HE_PGWUJj=$t%_;&K0Z9*2zc z_wB9cNZTell@hU3)$`i!9aSQk8RS(LP`#Xzsv%#>sIk9HFi(@)Go|4nD^p1jPnDU; z$#Zm(&|}0ZV58#q0L^CB%E5lI8 zFJZk0&i$#o__=Du{W0;qY7xuXIdXLLf8+SQBJ7ZKBsuk52KzIC|3d zC^|ZloFSEgL!SDH?2^9L#jikOyT73`al46F6@>k%OMgyOl%rIFGXmAH$wA&BjA3T; zxlzu|(V^o9i^_8r$$SpdV|%-mc0%pfSu^XN1SP)W`;}7#x z(F8SZd_uX~+Q(x7=2%rI(}YK|B+#be_tQnJTtzoT+K^i%B91b#{!s=5SCH zQVuC;2{EUEq>HG5z7doq9PjeX*(u6uigqQj$Oht3FGINTLk~taP$lkqJOp9_`BsM0_d@z&6D=f~wb|h* z>e`L#%$QFoN#8&j@&@E0tQm%5*mGm8%-LNFihmf$)EzorP|l-Iy|K|SuxnM~Uh|-l z*umqCx#6^bV{$g}d->t3R^>S0Nk*Lx2!W$Pr@a|W9dCE8ou&*W$HwvkEWxJ@g@F}@ zHjc7<{AT?a6thjf zl?7ZLPBC(%_LAZ8P!W7uv!pA*jdujuE28v*%z%0rSMlgnM)M;V^tEYVqP?3aBlGpB z*z;u``cbum^Bk9NLU6oPiv1kAv<+I+IHmTpCIOUxFSqKBV`oh4jfhns#al{eG49)L{Z3mSwbjj^DwUSI;}9WISt_o88n_X$g8qkmR*k+8 zq-1fUxjJgD)X_(j0SF->M!jrJ%X%;n1o`NoA}yL6SEsP;~|;|Qna zpAFEn4|F$h`ybMxhrex|$n#STNcS5kVkF+3?L|R{<8tmJU zdT+f~mU8nQJ07z~9ry6;739B*{Mw`D+h|9f{Xz+-vs@fBDoa`O49$|fTWx0=d+Lv8 zvQwxX)#F^(j@o9$zhQ0O$!CCRjOw@qcBzP^q>(HMMf`w?mqNdvpPnUGmV*k>72T?o z&!?|8Spt~vY)l?T^W`Ad?CYB-oN|UL2Q1G5ZXdhI%J!UsoNkF5YjD}53epV)((a?2 z-B+s87Qdo#%7p;`R@_UPVUq#L6S)MZGQEqml0PIdo90SGneMtJ^?&VnctwY&d(|(TnOU$%FviRAK{r{_g)Y? zkC2%RDONNZ_^H!UYuZRrzyg&@idMpCSU!9hmGcHbMJ;|Z0P=CK(?U0Zs_M| z?qtX30e7?4$*6*D=_>m`cF*jvhO-19ok+dp)mP+Slot11B|;xtn!rICIl~7zTp>p} z?7jWM?>{2B`RI;m0~UFy1Vkx;Ls*6fBTA>gRrBud+-_%GKi^+|jE`kwO&^k_h_`eM zs=pIZ^xFOyy>*;QdY#F$=i1m5Q0nQR;bRgZL~;@N`j5<;^ka4wr0UyUrHeRosX}7P zowQ-vj^?>7=#y5uscW?VfW zMmjF9WgK~V)gdwo`D!ToRuOqZ#qm#e4KxTeMfE9t9U%mu>E+h?PMM3yH;RI0)_!@K zJ8Pcuquz|M;+q}@ukCt{YVjz9X!Klb=MlK~DAB&k675>TDF$W5ojyJqQ>^ac=YQDh z?=cRnKg7ZkF$5=?GMHJXouhhamRE3$7Ce8jy?dY3vE1ELcUNnLpvjB+m|H+Hae|~i zSb=`e9sa{{0X!0cb0BpAH+s0Ks`^gDARhzTHW$n4Bsk&P8(M$y=2zyNxkTR}cwL~U zne?ghoVL))0N<4#G+<9tt*U8>Qxmd?`qjI|HF1iRrGiib89 z?zDgX@%KY#g^&VHWw)q||C*T>9XP|Hk`Ccx*Eio+tRv^lh(FJPjEMt|85{c@+HR`m zd#?rK$9j#z+REQKkUrg$9F#|4+Oup|1E~bNP}ZLngZxbdaLPs8%^90Xs@Zmm)1ExM zYj{tT9KP5_pe0Q(-S@kEP&esZy>q&y#Fha9fM2tW1wL0Xz0bJ+tJ%NWsx&vUgrsZd z!@}rWkXn6;;#qLJH0U%_cpJ@9KgZshy2O7!MKoDD?9n^7^c`VnZ}PAs@o0RXid3kA z*0e2+W5)d=_PNK>x-odDmO`RjaeE{Z5?jf&ai*?A0$xhX)haGvQW$H})I}>T-Edec zqekXYt)AJ@GhB&QJ`@(PjanDu!3;(s?E&LHK48fdcIxUU2#R)f8@HJ}YOj|?J7OVL zmMtvgp1fIY+!N$=HW9r@D#4z7Uof=F{k``;_Y|_)xP|#9yva)gfrK6#x1F^I1t#Gih z(^65hG5?vHSfl0OSXmJe^~Aq;@8JZG7;w4aFkJM9PNpzc;X*t$v}vp{WoN3X4F4S; zm1xHZI+5>hQA;^wsgd0G0ty^+57D?zMwZJhyYisBw3Ce*%DA66@QlJ=d`F&-)zdKg z;OTc_(=KB&mjais!x--$^LJr?)BN~qa&4cO+K829 zMBs27VDg zWVC1aRl=^6p}FzTH9}@s#47Yquy z5O~M|6643Jbw95UPzy{Tc?MeoZ{UrEEfBt+Yr|l>gr^6wU2Z?Ckdv4n8NhQ>DU8cu z3RjZUZJYW>Xn2vRwcqO5@k-k{*q~#K#?CLbP2DRlj3rZ9OTFMK$O)AnfSs!vTP=Y-?yz zPuqxlhNnpDH=||omdzJmKY2u8@I)V$;qr~hV#Wr_MvK&G=>*l#>m%nLuwYh2vg*1Q zI;B=j<|wk_vc;$`xNZ;M2Bb5p2UU#rEQhE${Mx+>z6F@j#OW6$?h=v9b#qVcZx((p zEWXmxbgF?&*kh?3A}|V@emw^%gu$oKd>?us_oUa^TD8J3@jBpCa4{IY!6Zs9=XUl1 zg$x35ghl)g0Tg5xWeArePi0_DM&g;HC=fi~wokILSEaD)$y38%DIBpN8%j?Jtpg|K ztFEMqqnxALrwsPQ30hLcjlXkxrwDD@_Dl>wR9-zKWAGE7nlDmUQA1?|#jLz%(dlq^ zt32&5;n{t5HFs1V+k*9z+?}$o2)^bkcfv~)8`|QRyu3+w!dFxiIi}+qzeYmXu~B)+ zkqUqzfGVBexpy7iGw3DxUvOn=(9Bw9g~vmulTPY;sDV@*?R_@#a50y_sv^AansU{on4gD2<#bK>L)0K02p}|Ov9h`1>Js|wnKjT%El3D zC?08!duKk+_}E0l4w8yf!>I(PqyB_IU;`R45Ql%kQ2lA|Bws<1EX|jmpX!orboRIe z_jwAdv42LW&xDw((ITb6hWGnuoZEFI3_-BX_wPBpHVXyZH2&)>AFC1bZjWRQyV+G< z{Z{5}HJQ%N5l1JDbI-Iy!P%@!y%cQV*@ur&g=iWvA%1Aivs}(A5c9iWp1sxt zp~s>qGZo7H8oLJ%wHF^>bnodB=W_`!L2WkJ1&5g$iGxyGY0aV^;95d95DStmzGGqD z1fQ>co3)Cw+4l{Q02Fmk>=`mBw>EaqpZEqzIA+Xr3j73a*I!={>UP)J!x+mMROBv)^`Lq4w# zC3-{KFR zam3;_vCn-PtZqh0j#{%mLoeoIN>(QMkBueq%4-n=dmH;=g~59IKg!Xz;fuw&^jJ_a zFndR>EWnLYGNT7mt+ZU1$8$>x%#VK}-Bx;QPA=Wz%2f}VrVLI72)gH`?XbdKa2bdB zJfN6A8ddV)GPyFn`Me(Y4q0VbAN8djD>scqIZ^gSmp2I1E07-P<=NFLzo~gm+P#SVAqmtz3KlPMc5~h%l$nq%XIaNUSt}CA$W~01aX7Z+Dk3j3Q(+Tj-~U*|pxeg$jr!#F zu8FrIXR&|K#(t-4U!Ec>Y+aI@f){~D%eZTb$1E}wf+VW-E0N1uU{&FuNvmu&H0E#0 z+cs0%t$~g8Bpi-n+^(}q2~Gs~AA7fYJ>#|Z4*gs*UgcH1n(w|>5YpHO04}(-hQ?P6 zD$Ie{%DmTAb)9?A_ZV8?oI(kRQn`%eK4^VfjQ|8L5PFEx>B`EtJm5@+BjWj}^{iUP zMt61pDY1Q5%D&`+V-7?>gQ}H#a5)8V0^}`GNnL0-N{JF5Ovuwcq=`Oc>b)yU| zU9P{ZByDese6r!kbj@dO4U%AmIIrACx5C-pJd3sjk2~r&m*4DfcVvj!;wJcNK9L6h z3_y4oi1kA|n_ZW#x$B*&Le-kI7_Xr(4y=j0mW*9oOLG z2@e(M_IJwddw__#z5Qlz2#G248@)}H^U&n4Zmee!#o^Tg!oXshRdGV#j;c-9n3 zctB<-L-kkV)K7`N2%pgvYYC8$6-wy;g4k#h8N-{Wi6=MQLJF=0T4T%=4b~QOxtg1T zX_4Qw+b_+JA~gJ+=2=i;k2cQ=W+oM+$0H4=OV1uU>ySUpInyt%O8O?uQtU2Z%9EgXTR}jR@R^{NMp0NU0LoioP-1Mmp;9r5 zbF=zMJGHK7{l%w?WEb2R;M{G>tHbVp+e>nE5fK05c#b>d>n)pYb35trF8$a*MfpBJ z1w>eKTS}K+(wAt{UKD|0EtFCGXuH99dUPxKt=WuzV%_>Z-eDLJ`_C%+x3#bG6&4b- zWAqR85VJ32+1k7lNC*t-l((IsDIC?lnDxQcEt>fi-0SlJ&he&dMm==tjNg-q)TPi~ z9SUutL_AmIgsVC9AgH%bk=}+hsCqo^N^%kIop?w^)?*KzL&?lFA$Vhm-s20cD)HJkOOKx_tgJ~Hl#*=~SAZ?o z>k(q#e;|DIXNmM_d%BC>@4T13jAHBTO}VG?IyBPQSd^5F&5VDy5pIoblb55+ zozyfB`jX`cVglz}xLnN75KO!h^V|4?d0;3~TUBm|?>$K#Z}bK<%c);K8Mc0w`O(Eu zD_JKcbr{}!41Yap#ND+mB~w3zPHMvA3D}^DJ1Z@tzor=7dX4C8U#8eB9~ZJW;)C7y z(}LWDfbgn*dr~S2o)?%Xfze*hsoE}HnYGAhTC$*LzQ(Ti*(9t7$~6+-EUY+gMHRlc zXNBj9}Z4Dxo4ipuG=$M?-p_vPv_6I$mA31SV?^}Z6Xm}Ao& z$>M}C+srd^-G0chl4^D;{Aa85aDDsvqyH{3x`zJGB?bZv)DNY2jkia`%JO^a*TTZ` z)Z)t2pQT?*zs9D!8(x15RS7|c%T~UgTgnO zV>HuuwJicrd9NjdJymixyN3oAnGUKX)4UwlShkU##do&VG4H+Ba|nBqyh|GJ1%E)q zOr!D2m|r)}1W8w`5TrIqnlIpG8qeISxE+K~W?J?3{lU8v((UP+JpWNfzzCHsRTa<_AsZhkdwJddv3>xt5*@)#ui-M)J>|=DIX<;?+}^p z=Fj!eIesl0B_QjTTzisAcgU3;uV<=yUF9;_1C6iC>4ib*?28?V;JDOvA*h#9(qIn(o5(D zxmaB^dhG9kns zFr4!87}ZG2B~4o}CkJPrzEj^da7czraY^wmxPHj&Cr{}qLj?R?5DaQvT?j%77+*0e z%iyxJr4B{*q(5QyzJNy3$fzlqquu-5`5f^d6Grp*PHjkKUv&&&KYpqycfQ65H+ah7 zNy2l}GF|Mz(s}noEKrj-aJD4w(sJ@uA3uA8ZU(w(D&y7o!75Z4jFJlf-URM5;iroO z`^QSG;N+3nir(S$@(DjP%wHD0HJRzM*|bdhv@3xIX&o9zLWVSKkjqJzn{(d3NiyA* zOWudomAcHDP&c`E&K)GY!w^*HG4c0SN3|t%@m@H>8u*TPVlAReB*=z7Z@sYi(3_!1 zj*0=tY^vaRvtBWIZfLZy;Mz`qTuQOk;UX{kuuml0@JE&KUj+h^!(~~g@ju&(F4UzU zLPVDcY>}c3fH^)@S2w7-ni&&kuiRQZ>zPzuD{X~MS-2#2=_#en&jn4KvMQ*nt0gg6 z+I#()cYh@K*Ku~SrX6CT=+RH8-2)@jvve8MwV0DEwOr;J!D3^4OD=nm;OZPh5>#Q9ePTt}zj%AA>F9${ z&KJIC?Yf*4Kg7xTLo)g3K%YI%o&Znb{S$ww;J$#wOv6A!@EJx78ep|C);?%PWDM~6 zDlKYa$JCx>qT10(-&0#*Pd_}EXb3*e(z3duV?Y! zta~-ZG>Qxpnt7VhwO>+;2LY-Nc2_hpgZ=zo@02dwCW%YbmV_gFuI5>e2vL6gc{7u$ zGF>dk{hI>hWiaIOwzaDCBu>{$3`Mftytj;ty4yr1v%U9Z$FF=T&T|9NqmMdm)Xy96 zr60>UXaOOKX4&-LVuS7;uRK^U*xBl2o*E~v(T6R^ES4HhJJ&{b#OAtjOYdVH?# zDbn?)AE_C9jUkgCaeBX^&AAwb<)6;_+I-Z2Mm@1GiiZa6HxuWh< zPfcb&Yo*@qsc&U8DO91yq3-evrvD~cYJH?|qgiFiBY;lKELW8^7zGW;sJwGds?%$h zH|hx2WC$-56AdKjg3D}-HI^KMoA*_^I&SaXn?jmsA%GH_Yk;P}@&Q5TK9Cl(_GbG1 z@(0>%&w8w8RXP&Q+J~F+(v9M4^DZ10@1ks_>%Ss1uSTl3tbfw^w_&b)+-x4QmSir> z>#8ZpTId(|aWbXA%rvNF`|N?p#*s8kdy@WkRiVz!k?BExJt^DAp2cSgPd-^QwkwR# zQ+#I)(2jbhywXU(vKoID&F!gs$F-*XLB^ZTl{H!Q9qh=i8u>}@a(Bj6!_>8V$1OKS znRMH8_lpM$+cb{RhdyL9lFWXrFSK{)MDTw>2W&0S?FzLqzj5r9I_(a2HCbdd^TLh$ zHJzYKXN{{fiKUKM|dY)SFA1)3y6#rPBd~c8u%;8~Ce$Sw$Nz6*?sCAqv&p)yo;P zI=Z0jn{SQfZ=-ZG_IQH&r}M)Z@9!=?PrLD&zpK6W#9I)msO7odWD4g?+O=P5S3JKp zEy@sdJI>2h%#X%;bz<&!5f_@WB?aXhLn*1~YjER~v7oZkH%r{>9CmZ^{@r3k8z!Jf zTh@PFB<9#+%7k>!$vx<_9EDNFCU4Aao?8)Z&i^=Flpws$0b=NZ|GW6}4sOs_RlzPg)eN7b>!@;PZUe?1eumdKDC^> zs!++~Vyi`Ab?`apDWsuuvSMp%9cN#s^nkUM@ek7VzJ~EH3jL)$;?bB){;BxoUK zPV>-+2bMMrDEA;JVL*<32ClEkq!lS!z1l=<1`@=QvK>umMx3S1R`L^mbq8c+cBKgv zL&Vq-j|lasp5TqtcCb4tODM0IEg0ALetUB)ZG5=rSwM45^7G7`a8jxEX>6>CUIW~D zIXFs-JEuT(UZcJ=TXN^ZHav|wM=(!j^ERT+D;5h`rsJ~*l1*WCoI7YLHA#U_-!}SF z#UH5ms&zjC?sn|Df2aSYEC1BvxI}rw54E*0+*moyYtS@GbnwJPs3M}3`bTKQ;jwqI zHb%YFx?O6%yyn(PSJ;u7c*V-wrQR#;A_e^9O}u!6@0t@xz*-NhluCH>H4{j#tPNem z?#NELZ(Nr;VD%a_HMGg%TlKqoj?d{B-}!=6lomOyhCm&pCKhR)NXwBw#&OHg?_H<3 z#DQF#F&w^j=ze2S*YmZJ@?tTqv`{tCbGFAHccomY;m^lJcFZpU$!VkEy=E>RJI4-x z7D9c|N9lWv5)r`1H=oJFMLTDNm3>!s>XCS3CDq zh0|+si%5dG?A;S|$s=zH)zN#xlQvq~IKq{KfFxT_VqH41e-&HLnC;cGTTR<|D`q_N zf!rq4IuD|HJdgj!T>OCAGnh}BYIVoTasANetGw3VPZp!)H1EhMtw&hl=N1`RQpI~) zA+~Yu=^y>m2so?xhUUhHEK>__o2EZsole-#-zr3ZuXAYZE+Gw*r+RNL@Kq}6Q37J- zxX5$MEum+75_4K2xkH~2UP9wQH`nbk+_ou!su$lU-QTT~Wce)vqnX5;LqX~%tqH1` z#X8Bb>j8FHl|Nzam7FSn$OOw7|GBsJ=OlQYs(Dp{T92N>p)G9KZ*TDQV)ohJ$$z}P zs+xV}AB@k)5ic1f`X@mxoz4*V%TA~_ZpF{8S&@)nes;<+dqRdXlGNs^GuL*#JXF-5u` ztB(II+v)x{B$P{9c$7gApfy@+T<`iwl&Lu)dweb+C%A+}JAcI$xF~L*LgsA-JXd38me|>F`76F~$18&_Nkhfy2}jPIOtZ(vuim%KWzdyhnD*^Z8E?u9dRB zDud*&B)N>)AqL9UPe|8iG*cg_3B@SO!Caz%IQbeEyQ3_AJ&65nqbl~q$u;=Wl$iM-q^x-sBHSO@9IQ3S zu;$G%R90(WyGGG0Sdxy6F|nJQKb|5uRO+JS(N)5G>l;boGZe!OEO#kQ$8s znkYro#;i-F5;s*0&RfsWk}Bz!lp9GJ_Qg6xA>0mAA#;p^Ls9&J-06!`ZACi%U=4Gq za!!r)Rli)nO;PTjB7#`e{m4%lajrhen^jS)z%MYRGxvFdL;Ni|GQ~TG9!kPA54%-d z$QzQ48=q~q(DIZI0uM5^IGoqtQVuvV9+Y1^wkSewKZoTw(h*~I^5hbLE(tUsx3-;z zvg?$cLpSM?w0EQ)8xm2j?gbJJ|!n-4}a=t(X`8nr2iY_ezVpY#u^{FW3 z)0VSZ1jVaSRp(!oYjN%C%NU5uzLI~mdeefCd7WCA+AfHQ65>HO>ncV0X>mKMf#ysH z@O`L6w&ra~BlzB4N$Sq?dS-s3@yB83a1sj@RYMT3t_TJQOOrz>`U6K)nk^v;m&X)k z%TG`GsU#;g@SDBUlt**aoIBYj49=7M!0KOoLr$t|-RiY9mQ&|5$Z~?{=f>61yMhY& z^Q%10)=o93O$|jKgjW?aP)D@Xm_3nsNv2OG9}hH*wkcy=)ECtfXQfqI%y{souS&!# zoTBo4SMT@z(BMICDwcZ;SnfNdPnT6Vgv4v|f()e@k1CX#ZMJxhB zLES$zZ~#%;a_E)>ej*FeS>>~~%o~fAFLMPHa8fC}`p%Xb*Q14_gLGrR@Hk{&A3YFx zzm=+r2z~Qp?-&=pKY=JaxoP27mqvT{tKSnQ+8_HKl zHI=AL6^K{wsbMP?Nt?L#Z)VE|(QgebJ5sUolQMr2UkPfQE5-&G4Xu#RLZ1N+4q##rT{@(=!0^ZjDxuAf3^$d{V(8+vVUs93n$^wK9@+y{= zR0QbmqIRN3%VZV|ATrjO(~&{IQVE}!I={YpzeiH2P1O*(V`v=VF7zeAC+Yo$XYT%? zBMW`u<>2OMWU@T13~TZR1b$?@-GjOv_HSA=&`jbwF>-jtwKYl9BeVa4WrP64;BgN6 zt*44+g{oy=?m=oH*w$sqa%X4$Pi7q_z8b&lsRxaW&u~a4&EzSZN zSi%u16n5ek+kf)02Lv5Sgt?klbDWAYX=y&JxKLw_g)OxliUJyXHP+PcE-)T`F?WjtcdoBsV(V#oN!lo4EduuLMZh$?U4jFbgN<4BH zLDwFcpUb6bXsYI6ruWkil&9>uIZJt~rJRJ=@8Q;C)Uc%`pgNf=xyLM#&tbOo`h88# z%FvalEv0G7EYQEO1e-H~GeBTcK{YXozEyUb%ej}Bm_&X#vqVsfgu+*`EBJr-%tyXfDaS5Vb!laf?kA#Yi5mmQyk&ds+C<)^Wv!mjl4$I>mKcr^t(vUd zaA02=>f0%kQq-<+$U-++>a;@otr`;7-o1HIf#zanHgS$E&_am z3~>2UcneiVM*|o}$&Q7DgdkP%SkPqB1QC#QwDN2kT#v$f=Y_*g6_?`qgzwY+&o z%?_j>3MSDoyE?TwJ>kQ4WhZ?-RVRheN!@WzN}9&6@r%hq`+LP!IJ+eIH$)YrH|`0h z*o|Gez!(t<*oS{`<3Q|j*d*S18`|>$00{(GaImj|0f65whHUSOruaXQRL&lh`KNxe Rh{O{qg3Z{R5G%{yplDRPHJNC*4ybA!^kkAySXu-ua8WaijxJ6t(A$^ z19KXA8ZJ%ZNUD;rfh31* z_Q@q*5%`0+Ug-}oIDdYYogo>b&-`KZGZeTd_$c8{92h2n`7Dq@R3|2YNfZHv2qN07 z?%VJs|6524S|WNSFewAqI0bM5HUus}fzpCH_=vV`nm|0sy5xXjK?E{AubgTCy5Ke_ zu$`4T%)gVfjwBG3m-&sS8~~`Q;Yd3YV?5BA0sv-)Kv<4W zSdL}bR!AgfU~n-q;0FMxh+%kMYKX|jNsVYir)%uy|5w&eFe85;N9YiL+{(NFJ%kg5 z9Q|P(5MuZdgmHHI{a49;WD1Y7uu24%Qr9wcA15o63sR=aReQvwgw+dfr8*DyZKgto z5l~jDE>1E6Z!5JkLl^rW#8mDvn#^+F<~Y3bI+dUs0Wp?%d`^z2MnGsKR*}hy{wW+85XXELM653N-@+v1SumMX zKR7SLUxB3{KkF0M0BhyoLm{+ZT=`fS2hxfE@_9+8x`rL^l#b1T;8t=#m6o1ONwvBH zI44dW`$2y+2;EDflbe24yXR~Y0?tcy!e+_;r%sytr2znyBhVND<^RopKqCYUYJ`Z) zHo?U^p&<=*HJeUw)vfi`p9wNN_g+Bc3)eR~31+(gpZss?i2X-{F!p~F0e6!*4+?J6 z$Kn5XnurAj-V)0`*qeL>z2Z3i&^W8gF^>w7s2Z{K1P^rViJ=<5of@Cn1h1h6pCMGs zPCLO)zs7Yw(QN+Qd+C2=LyU(h5(0ow3>`Rz796uC5J@jDZrRHMh@;={$goxB$Tfi& zdifXzs~8K9g#4uBouqV@!Uq%p{~qN&h2^@36}X4xyGL$^#8@UJImRLyM8$L+68q$=%t-l2gZ5+&2fxK6roUUmw$)Ge-;1$ zaQe!K2gX23gbb7FY)}ohNpJk{>?O{&;jB`T4fYcshLCMeE3G#to?)MccpoZ92kX}e9$Z1$@mtJ~UkcBd*TTr&( z+YdE`@?0`*1%?_;o3&I#b(cAZLNS~&hZq)CjvxXs5Wh#6qo1E3i4z0B2YhvGa8R7d zFnH^;dOu_nq#h=im#Q%=$eb3}FUXh{O9;+Mg&}%V9 z1Ncn9@>|eQERPZ~gA$Rn3bElNk@RFd&kzri}Kff{NXPESL%&%9@+ zybY&Z-;mvNo}P4tzH>F6vRg`YHPm5zkjfB>kct<<86lM&f|d4vWQNY3x=y;<84^iP z-*c9R#v3ANm*UMHWWMj!aCJ4Tv4efF(4>!{Zwqq6#M1r>j^c`9oZ7>u9S7I#6>~L?gEf&hd;R6t3TEf=X6|=HR#mVj zfZ?hZbZL!^(u=%k3E=~3i z3E6vA@?eBiwg^^=@{k%bXM1oBg@P4=m5n^O8^MaL=BE&5Nsy)qPEO~H$zXl8md(T9 z#SA%fCdJi=!Etjsb<_*)DT>Oc$zVg^8Uu}R-dZxRQnp$n=f^LqwVcDi(3Zdm)S~lU3Emej4c__-4BL=rCnW92;+z(#RO$Hk-?>5q~sjeaOQf8Yn za6V}61_fA`Y$8~JYf^1Wo2P&JBSNUx4_hvfOVzSh0ieMK0M1~@77Y(J!i&YBBX(zO zj3CCdz&Nfgn!wNMTcE%gy}i@`RRx=zxH!G=^0*jv8wd%)*DoVH^y`4!&Q%~NxEK{s zM*?snVY=xS$%WPfkqjQ`%!Ro{yESyW=}cjTg@rYC9_e7jv!S$9|DmO!v}iBg>Y;^o zuLVI>SXlaepv9rE5OLBX!iwK1g}V)imWp4GiuU>|Sm$f(pLXmvAR>+$yS;u#1k!a& zIY_pq^tyrbru!}8+!gtb1mw2`PZB7Hbt6BzKMG9|B6ic5;;Z-41S0$?I518f;gZln z0D%088RbFjEX0{lTUP6L?puoq4)p|C=f)_NeY|5u7T<|5y0KW-@`aNHF z>|!!W!#@0X0WbsOOa>8yzEps0-iIn5|5crpA>D|o1ZL)a@4ZL9@4XL12N7!?fY^{} z&W|5LQlW=l%x5nDs*;Ep^dVLq{ZG`Id5?S_zajyCXpa%DhOapCtvU~h&b=w!$BF)P zPOK1aIl)aWS`&l-RsWQYgyHn4(0I>pqKZ5)j5`d10Z4UT- zM{3`q*+#{T z#F4NB1XhBX7JmmmP0i5I+@(SA1%SuEG7_*{2hh?ccl3_VEN}n50I(ijN&paW0RRG0 zejy>7oLoG70zx7$#3d0n@h|!L`8@#Qh|50%l@hVBq0dTUuIRWMtsx++?6wJERedYk2sg9Bzne|1X@mSIYzAu~795RK&KH>&jI z{7ZVyTnM{ath^*wp?jRRxfXP{iw4k3paVH~&RN2y-9SEed@&ei`edG9%#L#g4sSobXIZI_s`i{Vk zs51eEel7?k7L2vtqTNJ}Pv+NWLo|8tgWmdf65gq~b-?3z4uhV(O$$-A`#Xm)CjB&55h}W7Ej79({6i+pO)p-==%u)M2fmHA)Aj8Hs@3|{je`BpImDKV z=x$@8i3)GN;u1yHrM_r<+2pM`T%KfNnNM{hQ*GH6cD0eCjqNvxs@X^Wb?TYSxkPdO z?aB4VR=2~m*4vE`ipjoT7I_)&AqGupC`T59KnyQ3ZhmmorKax9Rl%ykw4`bolE^AfXu7F>MWYd9aDU6|~a z8}5@>wb58kCoWZTe*+!!t2HsnvIA=@JwaLB7$^;3n0uC^E6~@i{q4A)XgJfLNf(DM zEdt(MtXXTR%uGc>yDp^pS6*$e=ut$X4h=_;evznpscxBNu6L$eZVxnC)584D=t9-a zw_?m{KP3kFJ7_ppfkau>mRGVIcy4jL(}ZDui)0-T=|<*@2_gLGcpWnu ztNm8P>Z48OYtUCX6aVVh-M3B`C+k#CE4J2dX4lAE7fSA^F315K4X8Z(m2A3OjQ~)% zf1Q3RRCInMf;|mqy1ld_%yIW}u_?SBa3CqYV|A>@kJo#Jqf}1udB*$lu3wxnqmYBG z@OC(1G_RGK)yo3%@CQrCQ6LC@L_D6@kL?`HjRaDJpzt;xM=w6<1X8U868a0{Np^ZjBjr50J94bW@r`gBD$#D=Xa{FVWM9xN;gPBsCpVIzt1SB<+)mJkdQ}waNg_V zJ6KwC6SdY&jty)0X8H+8*1;jjc0jp3{=)3Hl&`XJF7`NG^!H>z6rC*j=&gIME^l7^ z3}aZ{FOVI5_>Qm6NcN;1Eo72%;ur)!+hOtbyefVdybz&#Rq=jtX-PJImTg>sTI^P2 z>9rQ`a=g3dPuPHdWV*L)DpaP3q41V)00xSr+lspOIGSl+cgX7Wpsm#vrOg^!$(?Cg zsbzlcCz+O>%bxqazSCx_ii*~FX%Q8D@0Xn++xRibh44B7Z@^Z`c3C11}rc4)3-E0HZF3%r@xy;^hLa3Cu35XAM`^dFM%;G8;AT_`p%`#2Su zA2R&bqRzKj7iQuz9miy?uF|O=pU;Ig=U7!d5uJXiu%vb+Su}#yBbE30EP--aHHyEs zVvbg(tJc9jk{C`-jx%}8l9yccGJ~jaCWg>z_xmw^`Ef1%(x=t<0lQ~rH}OMw{qo3E zp6##vvtGT%jmqOHkT%5?)RVh?i&|-otBj_W6P7Y!d;MqjbN0xfbBR|;&b-Y*q{q$K z$$G%GUi!g%Rrh2@j2rTd&iv%}~$lwh4Dmb~-+oNZ}r= z+m*_~al-U^vvq^FnUb=Af7~7QRxoI<)7ni|l;xEp8$S54gVId#FmCjRU_L?yDJlg? zE4BlcM5UF6y5D|^y&BYZV7BGK6KjD=%V+}d^Cenr^22r479xGn>rzQK6MNl~Z?Yf< z=n^i*ACif%F6e9C4Q-T!FZ~b_ok!GR^431V1b)Qey5Auozr0h% zKCo7Ot#fgVVpQrc=KeC+{Sh0im3HzhQlV#KYK^e;sKzBP6U*4ZqvlXbi`iNpZN7l4 znf0luC!SBa!Mq+<)ZkyjH$ob>rFh;d^8H;htM$PxUV^qEfw~A@NsjU9e zz$a3x<4Aoa-3dO`PZhxiQ;m7O^EA$her0Iz zq>Pi|4#^k1P4OvnNbrso9Y?gyo<8!@K4XXDGZoYBgzo7_XHDdqa)Z2s@DKvPFz4-) zN%(p~{@+#lEGp4QmlQ?6rJTAOQt|7Frl^(u9g)oBmc+Q0m0l<2S6@imDa14u8np9K z7c%ctzmkUGKHcXqW6}{X6CJXU3zaSBPEs;ulgnk>JE}2qP)J{7Kz`Lh5xn*DdYMEV z_1Uc1Pa@g3N01F#tx56f8;#Jh6dQe?Y)2^xr9bUZ6(dN1_y>HqX_%{M{@S~ac4%~v zn9G+|QC$NHFSUMbo>q0NR|^hAW)^;QG=q1-LmXVm^{4I?Li4P?Y*z_dV=3SI&BnrU z>05(|k`qQ&!#Yvl@Z*Wnb2Yd$Ysh)d#0+1Po#e>*mRH$0A@fMUI$-bAq%+@;1x}ws zuJALDo{mhHCQ!OX&x{w)%CN8V)u`|!;YroUME+iaCc1*+kf7G~zYL839C?TwSJ^M= zZ1|Uo+&Z3(P>5dr$*j)meCbZ{=oSBKh|VO+=Q1pGO)pf{6~b@BJEc_LOl3#Gx4%xs zwm9rHYadToo-EnAh>j5VTU_q-Es9~|R>;nO+4W<2jrFDt3wWyyuR7(V^?#y$YK_{L z?*7gqib{oiIZ2;RsRmM_FYIMua@!vHy{kdC$Gte|I)U}-##1aQCu)`;D!^ot7cb4p zbkpPfvdJ1NJYHx8wka~mpl27M{|ARaH1AwG&6hNZSG9%pQ7}OBd_&P_wM^Kev*~@E z;Bu+v1t=4l1Rg&FhyBfgw!qlI{6oc;PY(Vp@yK_)CuGyC)WA|rao_Y%a`w{ z&&GDvx;EdH=!u{9bGNHfpN@nJFj)AUN1?nDh2hc#q(vp`e4#m6hIQAZ_@(&5wQMxL zpJ^-E_EiI?;c*{hAV z>G(wWbM22@Hh`IPJYAUgc)RxY9(#9!8`jvMd?;>_Qc#ePa#*AkwQhF z6e;F{LRlb8RJ^1^h}jVtu>FbGSc6Kmg8USi99fUiNzXVuD7#G$y!1Vs)Q9dXc0c2) ztU1(ql4tWnEv?4M>wG8D8CG+?ot3st>EpGNR;I$IJ5P|-9fd~nZT#6)1!b`}D#Z7v z6?+BP<@KMRqL72HDV1AQ6D)-Kjtx&zae10vy{~q3AP9Ss`^XJGg`%tBNy#bjDAUmx z&i>x*@pIckVV5i9vT8~4v-!Q>I@2L_s_B_wOtfL~$#Oy0Hos4l0UF z&D1KjifU(X&<)V(_wOB)2zKdj)5F;t-4l0*F7;E%g|;p9!boVU~z5@~iyY<-n4 zc#d!E<=gCnQ*G}s^SZ0HoRCP><3~L^V`xeyw|Wh}%*&^n>@KRMU!tc!;Q>65P&rlM zwn1w4%|JgEQIt73dyrzC_qW*4>FoM30*Cm4yF3wxZ*Yc}>S7CrO#NYA?|2}#=$FSC z{gtyOz{+Vg$IBw2=Iy()YIvzJN7T6gUaiCsS~2UE9Rsp=+kSVx1EQ-17X`Y~(qy`4o1XpEH*aHGUO|?d z!fTu;yZ))%*(e@(wp*hX_<3#6m$@Auy{O0`gdh-YuZwa0U}zk??Iw6B^fJ&|Cm%U{ z-=y7&WC9L%NCRM(UY2B zOh)}Jvc`9l1f)qvJlbvr+BlU7$P{jOBvy~*@oSWZVvCJ;y;VID85)o5RYt#WIH!WJh;b(n5qIOWT@xOO>Ur(E?NF|$oWNi3Io@+sm1zN?> z=mlFs9?!LuTBp9EBnrfqw;pUB@!cPOYFPKD{&Ec#l&P~wutdH2g>vohR&zU#zV~+c zziWjy_y2pXfPw%+-3!&ZCK>6NI61cI8JOwVIJg+txmOo<84wo`loFf$Y4#(|4}aZ0^*PRH*{2~ckFVd;pN2(J@FY+RaFS) zT15ClLb7(&f{oX&U%XVZQ=PesWN_$8Zt`W^Qz)^$DQSUm$b6d^M>!|QP1&nw_5G@- zx3uOnU%bdYJlM>8K$A?mvbHDGOv@)|;m6kBzvM;#FmmRK@o*wJpwgk+UIc`~B7-`I zo#pycK2xqwNU8S3G$V^CGs>n-kxpD9wvsF`WW~In$4w2c=S{>0|75tPK#Fn2z|c~e z!g<@?&oB?MCv#K`%_R9~{}f=YC1E6XYvDTnM1aZ8JvVQOuDklAtdaD3FU_w?j@)}7 z6Juo+L!_33M=BgnO5BIKJm@{8Qk{7Xhrv8){^)P;&HRBmgdgD3SK2G*{{rZNb5i#1 zO*RK3As`WnO!@Vj#d3!bbj@3ZFZBy0SM${Gd-S_5Z)CTP z4;FvcmuHv28_o91nBxi`}O%{WU$?rKC1L z4AyhVnMLKDX?X@We0y=awNUv;bebxg$>rcc1ax|yJiK<{2sSNkPD#qEeiN*7V3?7A z1VK0a_`#@wyzrfq{bbKi4Cjv+%?kN)WkI}O3ed`XwDKr05lAS7zyV5bp3 z20xIj$7BgpLQs^Jnj_ks=MY?(YZ_C-ZHUR!IBrsv(#n<-jM<(ie|4j^@KN$MwVnEL zbU4YG{;1B2ewrTuPi@TO25(g}@j!{*H+_AMif;}LmpX4fqgV<@T4sKDC$XN|v}_eEFJPOV35DB)wM<5+qsj=KHofo{xF$^u`Tbk z#lKCnOf{;WPJ9lgaj&pzHMQAbXvCtrq(|O%;mA_rWqZRGG|j(jKCX0*0UsNQY(nM_ zz1^jwa43m+Ls3pHCo8kD+GyxoVqd(dH%s%%=KY2b9lG#ne!IJbb@^4-jyH+Z@zrN6 z;6}Wf<&D&8?53g;8zbf{Su}UV^v6q|%i`7r&!K4TEr-GxpI@S)kzc)`QyIB(ZrW3}md&cB|f zc>ccA#W!wiGL|8I2v#dkn4G~=@XpNs4;xP5=ePJ-GoJ^!shuQA(~IKK(Vs4-xDt)N zdP50&Z_b}d85&&0k>9oJ6;4bS6Z||ng3Ga7WasEMXlWTW=`+Ln+|xX9^ZZG4g0E(j za;Aao8Keh2VdgahaGlih78;s)J2IL%Bb;DIWJQjytbLQ^qyWHsol#WEDC{wxvDJV9 zQCBjIjB|B)tz^atkK-^wA^!EQ5%bSBK7699g4e;*<*JWN8sM}jA43?Yi(hCA@ep3h zl;$g)4nFT0NvctivoP_TTL-CJUYM1#P#>g|C|kAIzZGm-I|hFnw^|!l{uFP)b^gd8 zP1V1+UcE<{Z$d0!SGzQ8yhL_Ys0AC%@Jm8gmO+kg>~}sWZcyD_WrvL(>4#r~rKUNf zHw_q{`n@Zo{0O%A^so!|kijei5v}mT)o3RaI!yDqyn~XXrk;|Ye0r`_bKlbB^B==H zl{`|A8}#K&g@)!Vh+}1k;v3cHzLhFz&AiQ-koH@xe1oFJ45A0CIOQycSq5J1S$VRT zmima^WmO2nc7M1Dy-83k*5w}Vr(yUDv654E7+QAS=S*BOJ*@U6in&rT*u<0lW0o)- zq7C_yZUL2u;^@NEYZNN=#QD}rb_>ZxR&wxL+hdVhQ z8`-Yh+X$OrIP55xQSOfpJ;PFG*nqAO!I(?$P9@QGnDn#W-%%;1*9@YEXmt{6)J9;!6B}{?Fj17Lb+M{ zeohb~A%K;nIe!^R%D2gyY62#@#St1ZamVZ+d4qR`CyJc79Q7VSO6dHB z^O;jKUhDq+wuI~pW279T1@gbhIIU<94C6wdTS{?cNxeQw*PZ0$jUfFc8FXjgC2)*C z&(`;1VVu_49e-8EX0wPgzt1N>P!F{fPjgsyAMM&x7~r#L?#t#y6Dne(HqQ=yFTLtO z!FWT4imPTlJLMbULljLJb)z|&4Eo!1JED?RRc-~KR?gzkP~jOAZ`8ndrI897nCcH_ z=%c*O;n&C0va$xIT83RCUNWf>@uc-78?a8p8_rqw)a`>Xh(2RX`b#91jWWaw@gdW~ zc?|nfOM|D{sDkT>-_fSfby4#>zpV_XdGGM!3u8iH~S zY%4N&#fV(uMw1%D!Js9t>|A+|QUBW1<<+O>b{l8s*Ujm^bdfH_JD%GUwkLmdd9tdTZ z99&=WVQAHnLad$BHK^c#QDE}a;CoD-0tAaEzclRWAU}CH^D}P%#1F=+ysdLDe1;z= zY8Tm0!C(#_gA81==@;ZvCsM!ct+39(xZ#>5bKz{GI&BD%p}{oT`8D3z>_{TPYkTTo zmNgI_FkVl3kZ#xn!QroVlsjLUZ`H$;(3xl}M}-;-(>U>wIWO9tX3l0wjY@|qqViXh zyU#)eSt?|J0P#*3>hSdUA5SNM-7iWRDhq5*pDS&Cur({mdddS=iPjez6!Y)6mU#SyEPBgYE$P-2nbTKIHH04bGm2VQo*TtgK%Im%X6K zhU+d&)C6%iqYyWPpGE4391sdG^v=>;2(I&dc-uI5EUYKCl)u>(RGgeIDtG5G8!LJ< z590wfCiqY900cZ4xe3h9;zTwKN)BBI>dAx5BbCe|U3&zHyMO-{G)!o?R$Tj33H~Ot z8F&$Pf;`7OfZbWo(uea&c-ix}m+?|cUd!=$k*9&QEvG2c*=Uhuil{z=M%6l9uFbWQ zaH5f&&n;d>?h6b@H)r@#q*oA`t9E?N>>{<~hfOu(U$p!;B}Lo&qz1lZrrB@&_SV|k zk(=jj2McSWE54DlebxIT^=e@hc6?MVDy5eb6dQ_bl+oyP*6l^Il|D>&-pky+^oK^% zxX-qZq=SF++KacnsJByn$T-sRP1efUwg_s<{R`}yff zt!5=|zEwJ@ItDeRE^B|*dhDTp^EHh}B45@Iqg;kLRZ>eG=O~782kf1=i?ZO2du2qd zn|R1_u9Lx4LxXj+^-IX3D&btRsYcze_w3X9tw&eN-V+~X6|xWg&F#LdJ^h6>DG$$t z4YW1?gf(_IgEPUl`d%|aOGHiK$DU4bV&z!2!F9A$ybyk<2Y--^o=>2F`c0$W^W^~k zj4$gu49WdX>uy^Mb;Eme%;6{dK>#ZMEY{+xhL2;Kb&Q{NBFFLse^%92_nrn>-URjM zx!zWv;whY@ts*3l@Je5s*y(pQK4Kc0UbhYFQ+@KFt)SF*vrE$Z6Gcy4d6YC)Ma$zr z!XTQv=2wDFYN(n)Bl7O@oxNKrlOjG^Ud(6H#KR@lc3l3-j#xN?SjZMtC{q5Tj1pIA z($FAl=}6Jd5%qPow^OoP^DkiwV8%Dk+nJuO-~sZ4bpGPhE9Y%>&bU8K*Uau7K`i$|xiyR>MVcATjb*7}zj zBiV9*d@ySzgW$E?VAS1QCDZxNhug{iELv_QeVbVGuFCD0FSFKlD-M0?=JgA{#_cnQ zGtO5PAeCKa-6XUGw)Gz6NYH$IGH8jv|EZkuAJ_U>0Hmn#^TK7OF>SVIZ>H7fr^p9V zS-r2Zk#ozK_gXWJYx0Rde-hJ?c=EAzbJES%#YSzJOxi4kZx4+v$`;@)V7_Stth{E)`G*{_}G(Wx{u_kQ*App9AjEkrgbg3PrrZNlJYWNhJSs~|OL5OdlEE()@m^_Mm{;7+y+cqcL zfHj4Yf2NQo>{Ruw&D+yqS`+w52DfpU4eFLobw}^T=TE3VJ*?ZxrY#a!#t3w6#}s9} zaPcyYmRJQ&jyom;oQuQRNjRj-R-pR>Wcg=&Pm~N~n0cwQDwF$ZZz#X7Lfe{l&J`XR z4&J#^) zq7wX3A$HBp!(wvt-n4^5Hqkxk_5S3n!2A03;N_yupbRyJwkfBo_2ujoX;pixPkbDbeZWjGVp%@ D5%NUf literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/gui/gui_waste_drum.png b/assets/hbm/textures/gui/gui_waste_drum.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a1b2fde111cd7ded62742d55886eb36a49f703 GIT binary patch literal 1711 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIE+9Y-ye@ zjv*Cu-rikbB>i0O_`~qPbgo`zh3>z(eXZT-J+d2 zYqxHTTDwQ6Vo|!e{l_QmI_LNO>t_h%WMC0y;80@_@L^Dx!Qf!P*pR@)aFB(e2`=$w zcdYz@fVKAvzlmIaxn=JB`Q@9=UA%a4^7Y2uEDr=Pzx?8P|NpzY=imPLQLFyCV!2vv z0Vl)3MRAOKYE5^4{rTxlio5%zwX1$FsuyIOaX$U+ukY7xeYd~+>(}k@&1SzAZatc0 zKi?qq`_XSx_Ok%xbB$(hIehcUz2x@Ip0j<_a_#2l{y3ModYAsT)in%xRyBV!A0Pj{ z?$y2*@h=(HoS&3k|L0c?P^4_z8laN(B@AYkHGfw=iQEKK5&m*^Lww!@+xib5XQ!Vo z`9zh%ecR9_PpA6W8Wpl9jjm6 z{RDFRQ|1kJ(S31q?p5b}c~p{reiG2dWv+LaBj(NBa&*z%-xF^n6>hq2eqzCt1ziR{p+D?u^xi_9Dg?MU&2d{P^2(?dK3R?!xe$ z3|q|Bc-lEfA5T%tE8<5Ae4Md@ka+rxktcW3`3u(?XS+TAc<}4dqsOmBX&dS+I^F3Y zdVQsVV8-A36LIPLFT3rvL@<)W86J$czzjVI<2cEFQ_wmE-7hHypO zHoiL{c}fA{ZDx@x4ynvvH-qEK+@kdiyHY0cU){+*8vhvae@I1Mh~ofrUtgb<?)i%sFHXMRa5MZq-<_lHx7pj(<;%YQ z^SX4;++Fs1j5u;KmiPqb{ckU98rIcq-&?xout6`VhyfNUYqyr=e`xA-xF&hXs$89E z?f?BTYs20G3!WDz>pcvF8`l{BDD`1^)lXvTF%~>w)g0gcZw5!o+=J_rl>+L0ST>z| zaNSUFh5b85Y=sYYCj*PCGcF3RdFo_;eSYDhAfY7Oxa+YHEZcm0;p-6GxYoF(^qn8; zGV5hb(di#v@36cpPjrYwia%q~8xYrWow;Wyy2Bb4t_kZ)3|CD1|N9*%Jf5DGUvFRY zW9izk|2MyWWQhKmsRR~=-#TkaQoK*YYfW4i`((5 Wuku@Eu*~BF8RqHg=d#Wzp$Pz9Jn*3a literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/assembly_lacunae.png b/assets/hbm/textures/items/assembly_lacunae.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd2299c6df656be51f512638fe49617c9c6dd33 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf3FutuZFGH4n{jfE>V+eTcIERA?eP~d!zQF?hQAxvXBkTkIl?VaAAd(S)focrL9A)QLFXG$#Adf&_C z{|aEwlvvda0HQEtzn$kmO2>-LVKaI85JgB*@mtBMpsM#h$s9K0M(+bvGdM&M06X6) zY@w8}^Ig_;W9puGDhLwo3^yUynsG5O`g{m1`xf1}Mv@tFg4Zx%skEUy> z5I}%b>s*-#?GRNn6947J1wlJZKm_G_S7! O0000yU#$>;50bOdo|T9XD*@QDNV(X`5h~EZ}zudB;)<@pJhkKiv!0#CciWx6VVpfP!_A1=v%^8|~MJB|N zA#l}sr=#zmHQiim_uZ_z`IYj`12t@?bF2H0y_cLiZ_WQF74NogJiB;W<5&3#y{ICW zY_;D#96K1f6L!oi+L88FETL&d)k1p=5Jlg{LLjtYrBmTj4!GO&Ds+StsSPPyq>_#>M^LIX z27~XA-fn{n)nU)zN+1Y`O(hYGq{4BLsg|92k3a0ftt!uR_h&fEvg;)se3K;qXPsS9 zxYzZ1Ql!QjyP|NP=QF@AnGe<8YvDTZ}P761*`1 z!2M!@wN@ob;({Q+7=zZ@)pbo(RcbPUh`0xThKM+8t!kPEtu>zK5k*lyHz?@fFbH^@ zYedAwaoqQxmdpM;`U;)o>$^on6hNA$?s>Ih9)t&F1<~c3D4QRb1AZ S!|yu)0000fPXJi!@W59KXF0`I-X2B zg-qKbgrNI}rwj&L09;?q8gDn+1lHlF$J>>wpDtS+0E{P7y}!F5j$@)IBG2=6Mgi06 z0O0s&NKq7~EK91Y!a0ZcUcZVqoe@Mt-*`quv=&K{1Zyp6ny&5|Bh+w`>;ka;aX^-3 z09b2TF3wpjFHL6$waAbWB4Pl%_xk>F!OrFgRpsIJtg}Nzr11w%_U3lcEN9%l>FB@WjYftwzyJ0>beg5%7k=R!Yl(3K>-3h6 zd)jP{d2DUp<0U2RYL+hKZfj(;U=|cBkl$xyQ1i#FjgjdN4^Pvbme_`?-0#zj{c1}`!53!y;A}_=GlStjC4r6Kjz0rBfx*+&&t;ucLK6Up2Scm? literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/gun_minigun.png b/assets/hbm/textures/items/gun_minigun.png new file mode 100644 index 0000000000000000000000000000000000000000..f4db3f24019f6c90a5f4a1344be11fb79f4e9cf4 GIT binary patch literal 309 zcmV-50m}Y~P)5@XhgDaShw(1!_50W{x>slu6lks_&>u%QJgNB;Ikz8U*nWzxhYax zNtFL2iXs52s#@&5ST+BG+qMNbPU1HObzLifrfC?*5o_&|gkVhokR%DtIhAFZ*IHw( z#TeuJzNhOtwV6Of{9Sm7hQaXFmhSob{KUC00000NkvXX Hu0mjfRC|Qs literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/rod_dual_mox_fuel_depleted.png b/assets/hbm/textures/items/rod_dual_mox_fuel_depleted.png index e045a4dd6de7bfc28b8a26a8aff6756d093a1950..a48165ba851e2b6e4871ba6d61b7f04ce52fbcee 100644 GIT binary patch delta 196 zcmV;#06YJi0^tFWC4X~5NmK|32nc)#WQYI&0GLTcK~y-6wURLk!!Qg*e~ah1L&=sY zXV49FdmlnKFz5nxCPA>I&_eph$47of0;VwYVCL~Hf6gTUP*t4E8FvE!V0kat_HD)~ zFOCF8S8)cvCNvNclutox?Qu3Seyf2SAR=Kg6l7vWS3AdH4ITUt06hWT5AEP*4lvCGj~qTV@GeiR7&aBUXW$Y zok4KCj*b?;rMc_|+e=I~J2zT}+cvLyG)Mc~CWd}t zwga)X?}J==IwV5p+CPkYyXlzF_PdjNE&dWfZ!mbe`njxg HN@xNA*^^{y literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/rod_dual_thorium_fuel.png b/assets/hbm/textures/items/rod_dual_thorium_fuel.png new file mode 100644 index 0000000000000000000000000000000000000000..0385a867269d474aa6a8b8cfda99e132a02d3c5d GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyUwfYkW7yt_;0POCNKlsaI&`hX|P8TX64)P=|uv@zyQZ%r?fph;N-ff4;nt z!Gu+_R^5u3$M4Ia$nxu%2zvyNaQRVDE{l85J_b6hxoG}0xJ}bly5c?Och%C^^uKDl z|1+Bd8@}6R`Fy-@&X6%nEvxV2|36OJf`-rUlsL5RWqZc6yy$NthvI`d-gc|AH>jU> zIbzoTJ!lvI6;>1s;*b z3=Dh+L6~vJ#O${~LCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33JtM=93Yk-ZiWYjh zIEGmG@14AntHFTB<+tLxxpQQ?9>mP~^Z$Nl+(VUPE-c-x7pj)%r{7i)^z13=iCV3& zq3vAa*W!LQgOyV*DX>&jaol(oD8Qm1nC+j>x`uh~iBtcXuW53hYkc?Oz^jM)HB1Sc z**}zAcN9M`sr|MjL(bO=j^+&UDtQmLGKVZ@X5hH^Yia!#_DQ8m(kEZ_GlU&o!x+WS jm?N{#iD}Kc+x6@z%XJI6+WUS09n0Y9>gTe~DWM4f8Z>Jf literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/rod_quad_th232.png b/assets/hbm/textures/items/rod_quad_th232.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ccd1ac2a6de65187598c7df2b74f9fd13b9c01 GIT binary patch literal 314 zcmV-A0mc4_P)As=7>1t<5)i~g=#-#1wH!DW`~i;sgZ_lh-Nm0H=-4f5 z>5z_v1E*U$$c2OJQs`ob5Q!u)0qwgSJRkS+zT9_$lHxc%0w|>bNRmWc;sB!QviBY- zC0c9hcwrKh6THmt09Xz!PvhTK4$z}TN-18yo999EsGAxMoO5{Z(OR<{+6w=l1kSm$ zvyIdeiXx)P-ig@qI%Lex=j_}0>n7lnyVixOLS1SP6uk$~#*!9oe7{D0A z*H+jb227{$(Vx+UpAzI1VDxM;#vo;M1& M07*qoM6N<$g5~;#^Z)<= literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/rod_quad_thorium_fuel.png b/assets/hbm/textures/items/rod_quad_thorium_fuel.png new file mode 100644 index 0000000000000000000000000000000000000000..a6f6349983c16c76a391f7baa6f37313bcc5efb1 GIT binary patch literal 304 zcmV-00nh%4P)KeO z*Me3po@4~dQt09=v9XaI8`|DQaGu`fKJ+B$Da*13Kq&=4Q551H2M|-u-g~5!XssFJ zt;wpN;Ny7%z&^3O?S5uCK*WrcQhZ*f>#OO~GEEvd=kVU6wPv5#fd5Yd=iK0&;AL43Khpsr;yA__gOswnWUU?LZQm81;%~1MF|~mJ0000L! zByyD3L6g-Xa#~U!bH~cl*P@n8$yh7-c%P?`)SGRR46C=L&6Qa!li;Z0rFqWyYs#{3 zfojqg&o^9Kv^DMOwfsN!Z0B|!lzhD3oa1uo^8O#!*)G;kcy1Z4ss5UodHwfQFRz=K zUEADP|FGaV!!e0z?Z0~arQYz1GyKYNo}as@=E8zZsfo)pk4Zd9ezt1W5s~lT-yPgq VG_(0sF(=SZ44$rjF6*2UngH0BZxjFk literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/rod_th232.png b/assets/hbm/textures/items/rod_th232.png new file mode 100644 index 0000000000000000000000000000000000000000..abd45afbf96404edba7106c9128f945ec63bc650 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-=WU9UHfKOf_70I^dXdDpzXL8iB%s#w%s2509k_3VvFx{YCzL^MTF| z9i>eb`F?Sd2hMy@*z3N(S6|}czki1on4M)PXKGlLH2?E^o|uMJ+Zbo@G6Z?mn^}1A z7tGX%|7v;p>2Hty5>GB|%SrpnR$a++-KyCp(OUJ`jaGqEd)Xrxt*f=)e0uIu40IZU Mr>mdKI;Vst0LYY5$^ZZW literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/rod_thorium_fuel.png b/assets/hbm/textures/items/rod_thorium_fuel.png new file mode 100644 index 0000000000000000000000000000000000000000..829477e5c9adbb18f5f8bc61cf1f8e466b263de6 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfn|zT&U0W=pR{So zo3Al@5*wxn$u0T%;(J~T-@NzoJYK=P1>p<^#+OQL&mUl&5h=Ui7K6gEAL-4Dw=nR3 zDqF?uyZM^?FX;q(j??@i(rd)3PrSY+?zk`PN6!)&r-J*HY>N%FQu?%e4*=c8;OXk; Jvd$@?2>@n`O-=v+ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/rod_thorium_fuel_depleted.png b/assets/hbm/textures/items/rod_thorium_fuel_depleted.png new file mode 100644 index 0000000000000000000000000000000000000000..3784ad68da97cfc07ca70dc3b426301a1908c0eb GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfs(1>??+*<41&J_a!i8`j-E%j(>e|1<1C-v7?Ot&c6^C(Th> fx&7K3>-~&-LzEtP&p&koXf=bUtDnm{r-UW|;)+Eg literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/ModelLacunae.png b/assets/hbm/textures/models/ModelLacunae.png new file mode 100644 index 0000000000000000000000000000000000000000..40981f04b35be35944603252590e7f4436549ada GIT binary patch literal 2856 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 Z4g8d4@kOKh@(0O}1yCfb`xb$b@gKugXj=dP literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/ModelLacunaeReal.png b/assets/hbm/textures/models/ModelLacunaeReal.png new file mode 100644 index 0000000000000000000000000000000000000000..05736d9807aa822f0d1fcfd162627fe2fc8780b0 GIT binary patch literal 2854 zcmeHI>o=4O7k}n4!(5n#bfT9PLuQ6SF2`kv2Q$nxlU#CJWQNkDrVI^<%0up|2^Er> zR4O4(G0JU-P8ZcsN}QM+ky;Ar7>9WI@cses=W~90?Y-CDYwZvFxArB+$Jh#i^*iN*=!Dn!(#dRtRjF;-^XMng@x_ra{0Sg zA>i|4qNAf@Vq*5~ixUV$dxd;~Xn%ZseB6=P!^abnlaF(@!M?uPK|yEI)6;Wua>QbB zVPRouX{kgasi>%sN~P`X?cLqoE4}=Se;N3{7|@x7b5>RW5czrgFaNUv_|K_rS|JZ3 zWQH690DQ-)BG!?&!YfG~5hGaSAG1evI3g|z5Jp5F6j>aM5*gT9SXunK+bekG;;5cv z(cN|=hEJAga0l%Ok35*L#UzL-=p&$O&$)#^upW@1SsPlH`7>X=#Ro#p>$TI>Fr<*%byl&L=dh_i)&Qo8N}9cqd-@md>aruu zBMRMG(bov;33LENO9A!f0d(!NDsc1E)CN?jE;^bm3Bo2ut5D&z{YM z)LW(rzvN5nKm1X0GdkL3*TQ1&Tne?QG9$zyMY;6RG34%@vx4rQKZC4Mc3KBMuX#U< z7_6U|otW4-G7(KH^Lt2XBH9d@f)$Sw&n;rD3l4|`X~XE^$mAArf!Z518F%xIe}mvd zL;aIs-C(4MrmuB|1WpU{O0*TlV8Vd^9xlem%y1WS2fkJf-{9b%DjkKkYN>|T#}^X} zG?{3!D=Mw(=)eTn%}a?4%Aq*??5uXC$3anNryJ~Oc4gtG(Hyfp=xn+m%khjkCIBhC z5{l6;EeUfp_>o%|p8KRXbbb4EofLmUcvf~(t9sAEz+QWWvSr@YNFhT!2=WVu>_;JK zPnq|KeSY9Gs)D>4?YwAjE*Z>l<2_v~X>!m-$^x))!PtONSd!IQRlR3(^Zom}cpqFg zQq*#h)NRRAz7;yikFT*dRtULN%f?WCm$pPNo&N%j>0dSovuJ_G9QMUX?%y%=)d`14uaGnlr>U$Pp?r%JY9z3# z9ChCTT z(kA8gru9UqP||d49l}bX>om`h?+d{WO_8D>Ge{3uIT@t*ETF&uOq(t=+HaVdp}253 zc6y`z|w){d!D zo_ANT%H(ZtU(?IAc_?)^hB@Y@ctq@D-vQHXOzqW`c`1to(U-*6qJ~3#zz+U*2r;=8 zhbCTO7?&kt)4|cN1w`UDNN@-gd*V$INE}>}?q%}O1}o4-$?7~H)3``>#Gu|M3T%?$ z0XdtEcAoEO_}FC*lQInby#*9OXm}+-GVa0tYV%p^X32EG%^Rskn7cU1J=Iws#>OL! zBf0V+|KyILYNSkmvePM_Ao=LBa4N9f6!D{_!TNeW?Y{a044voPaol;s`=O!ov6M@k z(=Dxssa?Bg-c|7(-BnyLwuD=t)(tbcVrKSTB35;q#r$vr*(TyRgZydU7&5pb`;e2x`!eVr?C!o=;9z zS5HowT)={t@fS4}*Bf3LW1f%UFIdMup90Yu-<+P)rgt)iZ_{ zSe<|yaJeSa{m>JmF-KHVpCjszkZpK5Q)$<21Sa+AA}TJR7+A_Rf(Fa;T zx*wg$2A^6!B<=;DaNk zYP;lF=5nf_4gT)Gw#{~_nwIie`?`bsN&| xwqkq~{>x6ul=dut{-mj-2$27i#bK0ksqImp-y%nSz+vTg0W5|$y~drF_FvzOY{>us literal 0 HcmV?d00001 diff --git a/com/hbm/blocks/machine/WasteDrum.java b/com/hbm/blocks/machine/WasteDrum.java index 3b65d0702..eaab86b21 100644 --- a/com/hbm/blocks/machine/WasteDrum.java +++ b/com/hbm/blocks/machine/WasteDrum.java @@ -2,18 +2,32 @@ package com.hbm.blocks.machine; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineCoal; +import com.hbm.tileentity.machine.TileEntityWasteDrum; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.World; -public class WasteDrum extends Block { +public class WasteDrum extends BlockContainer { private final Random field_149933_a = new Random(); + @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -38,4 +52,73 @@ public class WasteDrum extends Block { return blockIcon; } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityWasteDrum(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) + { + return true; + } else if(!player.isSneaking()) + { + TileEntityWasteDrum entity = (TileEntityWasteDrum) world.getTileEntity(x, y, z); + if(entity != null) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_waste_drum, world, x, y, z); + } + return true; + } else { + return false; + } + } + + @Override + public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) + { + ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, + p_149749_4_); + + if (tileentityfurnace != null) { + for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + + if (itemstack != null) { + float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + + while (itemstack.stackSize > 0) { + int j1 = this.field_149933_a.nextInt(21) + 10; + + if (j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, + p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) { + entityitem.getEntityItem() + .setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; + entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; + p_149749_1_.spawnEntityInWorld(entityitem); + } + } + } + + p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); + } + + super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + } } diff --git a/com/hbm/handler/BulletConfiguration.java b/com/hbm/handler/BulletConfiguration.java new file mode 100644 index 000000000..5754d8420 --- /dev/null +++ b/com/hbm/handler/BulletConfiguration.java @@ -0,0 +1,9 @@ +package com.hbm.handler; + +import net.minecraft.item.Item; + +public class BulletConfiguration { + + public Item ammo; + +} diff --git a/com/hbm/handler/GUIHandler.java b/com/hbm/handler/GUIHandler.java index ac13024ad..e5b11b2f1 100644 --- a/com/hbm/handler/GUIHandler.java +++ b/com/hbm/handler/GUIHandler.java @@ -702,6 +702,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_waste_drum: + { + if(entity instanceof TileEntityWasteDrum) + { + return new ContainerWasteDrum(player.inventory, (TileEntityWasteDrum) entity); + } + return null; + } } return null; } @@ -1396,6 +1405,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_waste_drum: + { + if(entity instanceof TileEntityWasteDrum) + { + return new GUIWasteDrum(player.inventory, (TileEntityWasteDrum) entity); + } + return null; + } } } else { //CLIENTONLY GUIS diff --git a/com/hbm/handler/GunConfiguration.java b/com/hbm/handler/GunConfiguration.java new file mode 100644 index 000000000..8c043d9dd --- /dev/null +++ b/com/hbm/handler/GunConfiguration.java @@ -0,0 +1,39 @@ +package com.hbm.handler; + +import java.util.List; + +public class GunConfiguration { + + //amount of ticks between each bullet + public int rateOfFire; + public int rateOfFireAlt; + //greatest amount of pellets created each shot + public int bulletsMin; + public int bulletsMinAlt; + //least amount of pellets created each shot + public int bulletsMax; + public int bulletsMaxAlt; + //0 = normal, 1 = release, 2 = both + public int gunMode; + //0 = manual, 1 = automatic + public int firingMode; + + //whether or not there is a reload delay animation + public boolean hasReloadAnim; + //whether or not there is a firing delay with animation + public boolean hasFiringAnim; + + //how long the reload animation will play + public int reloadDuration; + //duration of every animation cycle + public int firingDuration; + + //how much ammo the clip can hold, 0 if drawn from inventory + public int ammoCap; + //0 does not allow direct reload, 1 is full clip, 2 is single bullet + public int reloadType; + + public List bConfig; + public List altConfig; + +} diff --git a/com/hbm/interfaces/IHoldableWeapon.java b/com/hbm/interfaces/IHoldableWeapon.java new file mode 100644 index 000000000..8af2e23ef --- /dev/null +++ b/com/hbm/interfaces/IHoldableWeapon.java @@ -0,0 +1,3 @@ +package com.hbm.interfaces; + +public interface IHoldableWeapon { } diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index bd5552d72..4b0469844 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -129,42 +129,22 @@ public class MachineRecipes { ItemStack[] test = new ItemStack[] { new ItemStack(Items.apple, 3), new ItemStack(Items.leather, 1), new ItemStack(Items.sugar, 3), new ItemStack(Items.blaze_powder, 2) }; - ItemStack[] uran1 = new ItemStack[] { new ItemStack(ModItems.nugget_u235, 1), - new ItemStack(ModItems.nugget_u238, 3), new ItemStack(ModItems.nugget_pu239, 2), - new ItemStack(ModItems.nuclear_waste, 1) }; - ItemStack[] uran2 = new ItemStack[] { new ItemStack(ModItems.nugget_u235, 2), - new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_pu239, 4), - new ItemStack(ModItems.rod_dual_waste, 1) }; - ItemStack[] uran3 = new ItemStack[] { new ItemStack(ModItems.nugget_u235, 4), - new ItemStack(ModItems.nugget_u238, 12), new ItemStack(ModItems.nugget_pu239, 8), - new ItemStack(ModItems.rod_quad_waste, 1) }; - ItemStack[] plutonium1 = new ItemStack[] { new ItemStack(ModItems.nugget_pu239, 1), - new ItemStack(ModItems.nugget_pu240, 3), new ItemStack(ModItems.nugget_lead, 2), - new ItemStack(ModItems.nuclear_waste, 1) }; - ItemStack[] plutonium2 = new ItemStack[] { new ItemStack(ModItems.nugget_pu239, 2), - new ItemStack(ModItems.nugget_pu240, 6), new ItemStack(ModItems.nugget_lead, 4), - new ItemStack(ModItems.rod_dual_waste, 1) }; - ItemStack[] plutonium3 = new ItemStack[] { new ItemStack(ModItems.nugget_pu239, 4), - new ItemStack(ModItems.nugget_pu240, 12), new ItemStack(ModItems.nugget_lead, 8), - new ItemStack(ModItems.rod_quad_waste, 1) }; - ItemStack[] mox1 = new ItemStack[] { new ItemStack(ModItems.nugget_mox_fuel, 1), - new ItemStack(ModItems.nugget_neptunium, 3), new ItemStack(ModItems.nugget_u238, 2), - new ItemStack(ModItems.nuclear_waste, 1) }; - ItemStack[] mox2 = new ItemStack[] { new ItemStack(ModItems.nugget_mox_fuel, 2), - new ItemStack(ModItems.nugget_neptunium, 6), new ItemStack(ModItems.nugget_u238, 4), - new ItemStack(ModItems.rod_dual_waste, 1) }; - ItemStack[] mox3 = new ItemStack[] { new ItemStack(ModItems.nugget_mox_fuel, 4), - new ItemStack(ModItems.nugget_neptunium, 12), new ItemStack(ModItems.nugget_u238, 8), - new ItemStack(ModItems.rod_quad_waste, 1) }; - ItemStack[] schrabidium1 = new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium_fuel, 1), - new ItemStack(ModItems.nugget_lead, 3), new ItemStack(ModItems.nugget_schrabidium, 2), - new ItemStack(ModItems.nuclear_waste, 1) }; - ItemStack[] schrabidium2 = new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium_fuel, 2), - new ItemStack(ModItems.nugget_lead, 6), new ItemStack(ModItems.nugget_schrabidium, 4), - new ItemStack(ModItems.rod_dual_waste, 1) }; - ItemStack[] schrabidium3 = new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium_fuel, 4), - new ItemStack(ModItems.nugget_lead, 19), new ItemStack(ModItems.nugget_neptunium, 1), - new ItemStack(ModItems.rod_quad_euphemium, 1) }; + ItemStack[] uranF = new ItemStack[] { new ItemStack(ModItems.nugget_u235, 1), + new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_pu239, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 2) }; + ItemStack[] plutoniumF = new ItemStack[] { new ItemStack(ModItems.nugget_pu239, 1), + new ItemStack(ModItems.nugget_pu240, 1), new ItemStack(ModItems.nugget_lead, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }; + ItemStack[] moxF = new ItemStack[] { new ItemStack(ModItems.nugget_pu239, 1), + new ItemStack(ModItems.nugget_neptunium, 1), new ItemStack(ModItems.nugget_u238, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 2) }; + ItemStack[] schrabidiumF = new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium_fuel, 1), + new ItemStack(ModItems.nugget_lead, 1), new ItemStack(ModItems.nugget_schrabidium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }; + ItemStack[] thoriumF = new ItemStack[] { new ItemStack(ModItems.nugget_u238, 1), + new ItemStack(ModItems.nugget_th232, 1), new ItemStack(ModItems.nugget_u233, 3), + new ItemStack(ModItems.nuclear_waste_tiny, 1) }; + ItemStack[] cloud = new ItemStack[] { new ItemStack(ModItems.powder_copper, 1), new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.dust, 1) }; @@ -234,7 +214,11 @@ public class MachineRecipes { } if (item.getItem() == ModItems.waste_uranium) { - return uran1; + return uranF; + } + + if (item.getItem() == ModItems.waste_thorium) { + return thoriumF; } /*if (item.getItem() == ModItems.rod_dual_uranium_fuel_depleted) { @@ -246,7 +230,7 @@ public class MachineRecipes { }*/ if (item.getItem() == ModItems.waste_plutonium) { - return plutonium1; + return plutoniumF; } /*if (item.getItem() == ModItems.rod_dual_plutonium_fuel_depleted) { @@ -258,7 +242,7 @@ public class MachineRecipes { }*/ if (item.getItem() == ModItems.waste_mox) { - return mox1; + return moxF; } /*if (item.getItem() == ModItems.rod_dual_mox_fuel_depleted) { @@ -270,7 +254,7 @@ public class MachineRecipes { }*/ if (item.getItem() == ModItems.waste_schrabidium) { - return schrabidium1; + return schrabidiumF; } /*if (item.getItem() == ModItems.rod_dual_schrabidium_fuel_depleted) { @@ -662,6 +646,8 @@ public class MachineRecipes { return new ItemStack(ModItems.gun_uzi_ammo); if(mODE(input, "ingotGold")) return new ItemStack(ModItems.gun_mp_ammo); + if(input.getItem() == ModItems.assembly_lacunae) + return new ItemStack(ModItems.gun_lacunae_ammo); } if(stamp.getItem() == ModItems.stamp_50) { @@ -742,6 +728,7 @@ public class MachineRecipes { recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_smg) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_smg)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_uzi) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_uzi)); + recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_lacunae) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_lacunae)); recipes.put(new Object[] { i_stamps_9, new ItemStack(Items.gold_ingot) }, getPressResultNN(i_stamps_9.get(0).getItem(), Items.gold_ingot)); recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_calamity) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_calamity)); @@ -755,10 +742,18 @@ public class MachineRecipes { public static ItemStack getReactorOutput(Item item) { + if (item == ModItems.rod_th232) { + return new ItemStack(ModItems.rod_u233, 1); + } + if (item == ModItems.rod_uranium) { return new ItemStack(ModItems.rod_plutonium, 1); } + if (item == ModItems.rod_u233) { + return new ItemStack(ModItems.rod_u235, 1); + } + if (item == ModItems.rod_u235) { return new ItemStack(ModItems.rod_neptunium, 1); } @@ -791,10 +786,18 @@ public class MachineRecipes { return new ItemStack(ModItems.rod_solinium, 1); } + if (item == ModItems.rod_dual_th232) { + return new ItemStack(ModItems.rod_dual_u233, 1); + } + if (item == ModItems.rod_dual_uranium) { return new ItemStack(ModItems.rod_dual_plutonium, 1); } + if (item == ModItems.rod_dual_u233) { + return new ItemStack(ModItems.rod_dual_u235, 1); + } + if (item == ModItems.rod_dual_u235) { return new ItemStack(ModItems.rod_dual_neptunium, 1); } @@ -827,10 +830,18 @@ public class MachineRecipes { return new ItemStack(ModItems.rod_dual_solinium, 1); } + if (item == ModItems.rod_quad_th232) { + return new ItemStack(ModItems.rod_quad_u233, 1); + } + if (item == ModItems.rod_quad_uranium) { return new ItemStack(ModItems.rod_quad_plutonium, 1); } + if (item == ModItems.rod_quad_u233) { + return new ItemStack(ModItems.rod_quad_u235, 1); + } + if (item == ModItems.rod_quad_u235) { return new ItemStack(ModItems.rod_quad_neptunium, 1); } @@ -1253,6 +1264,8 @@ public class MachineRecipes { getCentrifugeOutput(new ItemStack(ModBlocks.ore_nether_plutonium))); recipes.put(new ItemStack(ModItems.waste_uranium), getCentrifugeOutput(new ItemStack(ModItems.waste_uranium))); + recipes.put(new ItemStack(ModItems.waste_thorium), + getCentrifugeOutput(new ItemStack(ModItems.waste_thorium))); recipes.put(new ItemStack(ModItems.waste_plutonium), getCentrifugeOutput(new ItemStack(ModItems.waste_plutonium))); recipes.put(new ItemStack(ModItems.waste_mox), @@ -1352,6 +1365,12 @@ public class MachineRecipes { recipes.put(new ItemStack(ModBlocks.sellafield_2), getReactorOutput(Item.getItemFromBlock(ModBlocks.sellafield_2))); recipes.put(new ItemStack(ModBlocks.sellafield_3), getReactorOutput(Item.getItemFromBlock(ModBlocks.sellafield_3))); recipes.put(new ItemStack(ModBlocks.sellafield_4), getReactorOutput(Item.getItemFromBlock(ModBlocks.sellafield_4))); + recipes.put(new ItemStack(ModItems.rod_th232), getReactorOutput(ModItems.rod_th232)); + recipes.put(new ItemStack(ModItems.rod_dual_th232), getReactorOutput(ModItems.rod_dual_th232)); + recipes.put(new ItemStack(ModItems.rod_quad_th232), getReactorOutput(ModItems.rod_quad_th232)); + recipes.put(new ItemStack(ModItems.rod_u233), getReactorOutput(ModItems.rod_u233)); + recipes.put(new ItemStack(ModItems.rod_dual_u233), getReactorOutput(ModItems.rod_dual_u233)); + recipes.put(new ItemStack(ModItems.rod_quad_u233), getReactorOutput(ModItems.rod_quad_u233)); return recipes; } diff --git a/com/hbm/inventory/container/ContainerWasteDrum.java b/com/hbm/inventory/container/ContainerWasteDrum.java new file mode 100644 index 000000000..3c23643b1 --- /dev/null +++ b/com/hbm/inventory/container/ContainerWasteDrum.java @@ -0,0 +1,85 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.TileEntityCrateIron; +import com.hbm.tileentity.machine.TileEntityWasteDrum; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerWasteDrum extends Container { + + private TileEntityWasteDrum diFurnace; + + public ContainerWasteDrum(InventoryPlayer invPlayer, TileEntityWasteDrum tedf) { + diFurnace = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 71, 18)); + this.addSlotToContainer(new Slot(tedf, 1, 89, 18)); + this.addSlotToContainer(new Slot(tedf, 2, 53, 36)); + this.addSlotToContainer(new Slot(tedf, 3, 71, 36)); + this.addSlotToContainer(new Slot(tedf, 4, 89, 36)); + this.addSlotToContainer(new Slot(tedf, 5, 107, 36)); + this.addSlotToContainer(new Slot(tedf, 6, 53, 54)); + this.addSlotToContainer(new Slot(tedf, 7, 71, 54)); + this.addSlotToContainer(new Slot(tedf, 8, 89, 54)); + this.addSlotToContainer(new Slot(tedf, 9, 107, 54)); + this.addSlotToContainer(new Slot(tedf, 10, 71, 72)); + this.addSlotToContainer(new Slot(tedf, 11, 89, 72)); + + for(int i = 0; i < 3; i++) + { + for(int j = 0; j < 9; j++) + { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 20)); + } + } + + for(int i = 0; i < 9; i++) + { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 20)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) + { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if (var4 != null && var4.getHasStack()) + { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if (par2 <= diFurnace.getSizeInventory() - 1) { + if (!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) + { + return null; + } + } + else if (!this.mergeItemStack(var5, 0, 0, false)) + { + return null; + } + + if (var5.stackSize == 0) + { + var4.putStack((ItemStack) null); + } + else + { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return diFurnace.isUseableByPlayer(player); + } +} diff --git a/com/hbm/inventory/gui/GUIWasteDrum.java b/com/hbm/inventory/gui/GUIWasteDrum.java new file mode 100644 index 000000000..ddc41ff71 --- /dev/null +++ b/com/hbm/inventory/gui/GUIWasteDrum.java @@ -0,0 +1,44 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCrateIron; +import com.hbm.inventory.container.ContainerWasteDrum; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityCrateIron; +import com.hbm.tileentity.machine.TileEntityWasteDrum; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIWasteDrum extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_waste_drum.png"); + private TileEntityWasteDrum diFurnace; + + public GUIWasteDrum(InventoryPlayer invPlayer, TileEntityWasteDrum tedf) { + super(new ContainerWasteDrum(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 8a9dc3572..4a31db0c3 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -315,6 +315,7 @@ public class ModItems { public static Item assembly_smg; public static Item assembly_uzi; public static Item assembly_calamity; + public static Item assembly_lacunae; public static Item circuit_targeting_tier1; public static Item circuit_targeting_tier2; @@ -599,6 +600,7 @@ public class ModItems { public static Item rod_empty; public static Item rod_uranium; + public static Item rod_th232; public static Item rod_u233; public static Item rod_u235; public static Item rod_u238; @@ -620,6 +622,7 @@ public class ModItems { public static Item rod_dual_empty; public static Item rod_dual_uranium; + public static Item rod_dual_th232; public static Item rod_dual_u233; public static Item rod_dual_u235; public static Item rod_dual_u238; @@ -634,6 +637,7 @@ public class ModItems { public static Item rod_quad_empty; public static Item rod_quad_uranium; + public static Item rod_quad_th232; public static Item rod_quad_u233; public static Item rod_quad_u235; public static Item rod_quad_u238; @@ -649,6 +653,9 @@ public class ModItems { public static Item rod_uranium_fuel; public static Item rod_dual_uranium_fuel; public static Item rod_quad_uranium_fuel; + public static Item rod_thorium_fuel; + public static Item rod_dual_thorium_fuel; + public static Item rod_quad_thorium_fuel; public static Item rod_plutonium_fuel; public static Item rod_dual_plutonium_fuel; public static Item rod_quad_plutonium_fuel; @@ -670,9 +677,13 @@ public class ModItems { public static Item scrap; public static Item trinitite; public static Item nuclear_waste; + public static Item nuclear_waste_tiny; public static Item rod_uranium_fuel_depleted; public static Item rod_dual_uranium_fuel_depleted; public static Item rod_quad_uranium_fuel_depleted; + public static Item rod_thorium_fuel_depleted; + public static Item rod_dual_thorium_fuel_depleted; + public static Item rod_quad_thorium_fuel_depleted; public static Item rod_plutonium_fuel_depleted; public static Item rod_dual_plutonium_fuel_depleted; public static Item rod_quad_plutonium_fuel_depleted; @@ -805,6 +816,10 @@ public class ModItems { public static Item gun_calamity; public static Item gun_calamity_dual; public static Item gun_calamity_ammo; + public static Item gun_minigun; + public static Item gun_avenger; + public static Item gun_lacunae; + public static Item gun_lacunae_ammo; public static Item gun_fatman; public static Item gun_proto; public static Item gun_fatman_ammo; @@ -1255,6 +1270,7 @@ public class ModItems { public static Item clip_revolver_nightmare; public static Item clip_revolver_nightmare2; public static Item clip_revolver_pip; + public static Item clip_revolver_nopip; public static Item clip_rpg; public static Item clip_stinger; public static Item clip_fatman; @@ -1802,6 +1818,7 @@ public class ModItems { assembly_smg = new Item().setUnlocalizedName("assembly_smg").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_smg"); assembly_uzi = new Item().setUnlocalizedName("assembly_uzi").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_uzi"); assembly_calamity = new Item().setUnlocalizedName("assembly_calamity").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_calamity"); + assembly_lacunae = new Item().setUnlocalizedName("assembly_lacunae").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_lacunae"); wiring_red_copper = new ItemWiring().setUnlocalizedName("wiring_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wiring_red_copper"); @@ -1977,6 +1994,7 @@ public class ModItems { ring_pull = new Item().setUnlocalizedName("ring_pull").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ring_pull"); rod_empty = new Item().setUnlocalizedName("rod_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_empty"); + rod_th232 = new ItemCustomLore().setUnlocalizedName("rod_th232").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_th232"); rod_uranium = new ItemCustomLore().setUnlocalizedName("rod_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_uranium"); rod_u233 = new ItemCustomLore().setUnlocalizedName("rod_u233").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_u233"); rod_u235 = new ItemCustomLore().setUnlocalizedName("rod_u235").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_u235"); @@ -1998,6 +2016,7 @@ public class ModItems { rod_verticium = new ItemCustomLore().setUnlocalizedName("rod_verticium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_verticium"); rod_dual_empty = new Item().setUnlocalizedName("rod_dual_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_dual_empty"); + rod_dual_th232 = new ItemCustomLore().setUnlocalizedName("rod_dual_th232").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_th232"); rod_dual_uranium = new ItemCustomLore().setUnlocalizedName("rod_dual_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_uranium"); rod_dual_u233 = new ItemCustomLore().setUnlocalizedName("rod_dual_u233").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_u233"); rod_dual_u235 = new ItemCustomLore().setUnlocalizedName("rod_dual_u235").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_u235"); @@ -2012,6 +2031,7 @@ public class ModItems { rod_dual_solinium = new ItemCustomLore().setUnlocalizedName("rod_dual_solinium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_solinium"); rod_quad_empty = new Item().setUnlocalizedName("rod_quad_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_quad_empty"); + rod_quad_th232 = new ItemCustomLore().setUnlocalizedName("rod_quad_th232").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_th232"); rod_quad_uranium = new ItemCustomLore().setUnlocalizedName("rod_quad_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_uranium"); rod_quad_u233 = new ItemCustomLore().setUnlocalizedName("rod_quad_u233").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_u233"); rod_quad_u235 = new ItemCustomLore().setUnlocalizedName("rod_quad_u235").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_u235"); @@ -2025,6 +2045,9 @@ public class ModItems { rod_quad_schrabidium = new ItemCustomLore().setUnlocalizedName("rod_quad_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_schrabidium"); rod_quad_solinium = new ItemCustomLore().setUnlocalizedName("rod_quad_solinium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_solinium"); + rod_thorium_fuel = new ItemFuelRod(100000, 10).setUnlocalizedName("rod_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_thorium_fuel"); + rod_dual_thorium_fuel = new ItemFuelRod(100000, 20).setUnlocalizedName("rod_dual_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_thorium_fuel"); + rod_quad_thorium_fuel = new ItemFuelRod(100000, 40).setUnlocalizedName("rod_quad_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_thorium_fuel"); rod_uranium_fuel = new ItemFuelRod(100000, 15).setUnlocalizedName("rod_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_uranium_fuel"); rod_dual_uranium_fuel = new ItemFuelRod(100000, 30).setUnlocalizedName("rod_dual_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_uranium_fuel"); rod_quad_uranium_fuel = new ItemFuelRod(100000, 60).setUnlocalizedName("rod_quad_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_uranium_fuel"); @@ -2056,6 +2079,7 @@ public class ModItems { trinitite = new ItemCustomLore().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); nuclear_waste = new ItemCustomLore().setUnlocalizedName("nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste"); + nuclear_waste_tiny = new ItemCustomLore().setUnlocalizedName("nuclear_waste_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_tiny"); waste_uranium = new ItemCustomLore().setUnlocalizedName("waste_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); waste_thorium = new ItemCustomLore().setUnlocalizedName("waste_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_thorium"); waste_plutonium = new ItemCustomLore().setUnlocalizedName("waste_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plutonium"); @@ -2067,6 +2091,9 @@ public class ModItems { waste_mox_hot = new ItemCustomLore().setUnlocalizedName("waste_mox_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_mox_hot"); waste_schrabidium_hot = new ItemCustomLore().setUnlocalizedName("waste_schrabidium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_schrabidium_hot"); scrap = new Item().setUnlocalizedName("scrap").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap"); + rod_thorium_fuel_depleted = new ItemCustomLore().setUnlocalizedName("rod_thorium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_thorium_fuel_depleted"); + rod_dual_thorium_fuel_depleted = new ItemCustomLore().setUnlocalizedName("rod_dual_thorium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_thorium_fuel_depleted"); + rod_quad_thorium_fuel_depleted = new ItemCustomLore().setUnlocalizedName("rod_quad_thorium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_thorium_fuel_depleted"); rod_uranium_fuel_depleted = new ItemCustomLore().setUnlocalizedName("rod_uranium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_uranium_fuel_depleted"); rod_dual_uranium_fuel_depleted = new ItemCustomLore().setUnlocalizedName("rod_dual_uranium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_uranium_fuel_depleted"); rod_quad_uranium_fuel_depleted = new ItemCustomLore().setUnlocalizedName("rod_quad_uranium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_uranium_fuel_depleted"); @@ -2169,6 +2196,10 @@ public class ModItems { gun_calamity_ammo = new ItemCustomLore().setUnlocalizedName("gun_calamity_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity_ammo"); gun_calamity = new GunCalamity().setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity"); gun_calamity_dual = new GunCalamity().setUnlocalizedName("gun_calamity_dual").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity_dual"); + gun_lacunae_ammo = new ItemCustomLore().setUnlocalizedName("gun_lacunae_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae_ammo"); + gun_minigun = new GunLacunae().setUnlocalizedName("gun_minigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_minigun"); + gun_avenger = new GunLacunae().setUnlocalizedName("gun_avenger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_avenger"); + gun_lacunae = new GunLacunae().setUnlocalizedName("gun_lacunae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae"); gun_fatman_ammo = new Item().setUnlocalizedName("gun_fatman_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman_ammo"); gun_fatman = new GunFatman().setMaxDamage(2500).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_proto = new GunProtoMirv().setMaxDamage(2500).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); @@ -2460,6 +2491,7 @@ public class ModItems { clip_revolver_nightmare = new ItemClip().setUnlocalizedName("clip_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nightmare"); clip_revolver_nightmare2 = new ItemClip().setUnlocalizedName("clip_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nightmare2"); clip_revolver_pip = new ItemClip().setUnlocalizedName("clip_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_pip"); + clip_revolver_nopip = new ItemClip().setUnlocalizedName("clip_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nopip"); clip_rpg = new ItemClip().setUnlocalizedName("clip_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_rpg_alt"); clip_stinger = new ItemClip().setUnlocalizedName("clip_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_stinger"); clip_fatman = new ItemClip().setUnlocalizedName("clip_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_fatman"); @@ -3224,6 +3256,7 @@ public class ModItems { GameRegistry.registerItem(assembly_nopip, assembly_nopip.getUnlocalizedName()); GameRegistry.registerItem(assembly_smg, assembly_smg.getUnlocalizedName()); GameRegistry.registerItem(assembly_uzi, assembly_uzi.getUnlocalizedName()); + GameRegistry.registerItem(assembly_lacunae, assembly_lacunae.getUnlocalizedName()); GameRegistry.registerItem(assembly_calamity, assembly_calamity.getUnlocalizedName()); //Wiring @@ -3504,6 +3537,10 @@ public class ModItems { GameRegistry.registerItem(rod_dual_uranium, rod_dual_uranium.getUnlocalizedName()); GameRegistry.registerItem(rod_quad_uranium, rod_quad_uranium.getUnlocalizedName()); + GameRegistry.registerItem(rod_th232, rod_th232.getUnlocalizedName()); + GameRegistry.registerItem(rod_dual_th232, rod_dual_th232.getUnlocalizedName()); + GameRegistry.registerItem(rod_quad_th232, rod_quad_th232.getUnlocalizedName()); + GameRegistry.registerItem(rod_u235, rod_u235.getUnlocalizedName()); GameRegistry.registerItem(rod_dual_u235, rod_dual_u235.getUnlocalizedName()); GameRegistry.registerItem(rod_quad_u235, rod_quad_u235.getUnlocalizedName()); @@ -3552,6 +3589,10 @@ public class ModItems { GameRegistry.registerItem(rod_dual_uranium_fuel, rod_dual_uranium_fuel.getUnlocalizedName()); GameRegistry.registerItem(rod_quad_uranium_fuel, rod_quad_uranium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(rod_thorium_fuel, rod_thorium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(rod_dual_thorium_fuel, rod_dual_thorium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(rod_quad_thorium_fuel, rod_quad_thorium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(rod_plutonium_fuel, rod_plutonium_fuel.getUnlocalizedName()); GameRegistry.registerItem(rod_dual_plutonium_fuel, rod_dual_plutonium_fuel.getUnlocalizedName()); GameRegistry.registerItem(rod_quad_plutonium_fuel, rod_quad_plutonium_fuel.getUnlocalizedName()); @@ -3592,6 +3633,10 @@ public class ModItems { GameRegistry.registerItem(rod_uranium_fuel_depleted, rod_uranium_fuel_depleted.getUnlocalizedName()); GameRegistry.registerItem(rod_dual_uranium_fuel_depleted, rod_dual_uranium_fuel_depleted.getUnlocalizedName()); GameRegistry.registerItem(rod_quad_uranium_fuel_depleted, rod_quad_uranium_fuel_depleted.getUnlocalizedName()); + + GameRegistry.registerItem(rod_thorium_fuel_depleted, rod_thorium_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_dual_thorium_fuel_depleted, rod_dual_thorium_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_quad_thorium_fuel_depleted, rod_quad_thorium_fuel_depleted.getUnlocalizedName()); GameRegistry.registerItem(rod_plutonium_fuel_depleted, rod_plutonium_fuel_depleted.getUnlocalizedName()); GameRegistry.registerItem(rod_dual_plutonium_fuel_depleted, rod_dual_plutonium_fuel_depleted.getUnlocalizedName()); @@ -3624,6 +3669,7 @@ public class ModItems { GameRegistry.registerItem(waste_schrabidium, waste_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(trinitite, trinitite.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste, nuclear_waste.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_tiny, nuclear_waste_tiny.getUnlocalizedName()); //Da Chopper GameRegistry.registerItem(chopper, chopper.getUnlocalizedName()); @@ -3704,6 +3750,9 @@ public class ModItems { GameRegistry.registerItem(gun_revolver_red, gun_revolver_red.getUnlocalizedName()); GameRegistry.registerItem(gun_calamity, gun_calamity.getUnlocalizedName()); GameRegistry.registerItem(gun_calamity_dual, gun_calamity_dual.getUnlocalizedName()); + GameRegistry.registerItem(gun_minigun, gun_minigun.getUnlocalizedName()); + GameRegistry.registerItem(gun_avenger, gun_avenger.getUnlocalizedName()); + GameRegistry.registerItem(gun_lacunae, gun_lacunae.getUnlocalizedName()); GameRegistry.registerItem(gun_b92, gun_b92.getUnlocalizedName()); GameRegistry.registerItem(gun_b93, gun_b93.getUnlocalizedName()); GameRegistry.registerItem(gun_rpg, gun_rpg.getUnlocalizedName()); @@ -3757,6 +3806,7 @@ public class ModItems { GameRegistry.registerItem(gun_revolver_pip_ammo, gun_revolver_pip_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_revolver_nopip_ammo, gun_revolver_nopip_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_calamity_ammo, gun_calamity_ammo.getUnlocalizedName()); + GameRegistry.registerItem(gun_lacunae_ammo, gun_lacunae_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_rpg_ammo, gun_rpg_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_stinger_ammo, gun_stinger_ammo.getUnlocalizedName()); @@ -3801,6 +3851,7 @@ public class ModItems { GameRegistry.registerItem(clip_revolver_nightmare, clip_revolver_nightmare.getUnlocalizedName()); GameRegistry.registerItem(clip_revolver_nightmare2, clip_revolver_nightmare2.getUnlocalizedName()); GameRegistry.registerItem(clip_revolver_pip, clip_revolver_pip.getUnlocalizedName()); + GameRegistry.registerItem(clip_revolver_nopip, clip_revolver_nopip.getUnlocalizedName()); GameRegistry.registerItem(clip_rpg, clip_rpg.getUnlocalizedName()); GameRegistry.registerItem(clip_stinger, clip_stinger.getUnlocalizedName()); GameRegistry.registerItem(clip_fatman, clip_fatman.getUnlocalizedName()); diff --git a/com/hbm/items/special/ItemFuelRod.java b/com/hbm/items/special/ItemFuelRod.java index c9e6a6d1d..9511623f8 100644 --- a/com/hbm/items/special/ItemFuelRod.java +++ b/com/hbm/items/special/ItemFuelRod.java @@ -25,77 +25,8 @@ public class ItemFuelRod extends ItemRadioactive { { list.add("Used in nuclear reactor"); - if(this == ModItems.rod_uranium_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_dual_uranium_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_quad_uranium_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_plutonium_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_dual_plutonium_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_quad_plutonium_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_mox_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_dual_mox_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_quad_mox_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_schrabidium_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_dual_schrabidium_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } - - if(this == ModItems.rod_quad_schrabidium_fuel) - { - list.add("Generates " + heat + " heat per tick"); - list.add("Lasts " + lifeTime + " ticks"); - } + list.add("Generates " + heat + " heat per tick"); + list.add("Lasts " + lifeTime + " ticks"); } public static void setLifeTime(ItemStack stack, int time) { diff --git a/com/hbm/items/weapon/GunLacunae.java b/com/hbm/items/weapon/GunLacunae.java new file mode 100644 index 000000000..8e77d3ba4 --- /dev/null +++ b/com/hbm/items/weapon/GunLacunae.java @@ -0,0 +1,129 @@ +package com.hbm.items.weapon; + +import java.util.List; +import java.util.Random; + +import com.google.common.collect.Multimap; +import com.hbm.entity.projectile.EntityBullet; +import com.hbm.interfaces.IHoldableWeapon; +import com.hbm.items.ModItems; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.player.ArrowNockEvent; + +public class GunLacunae extends Item implements IHoldableWeapon { + + Random rand = new Random(); + + public GunLacunae() + { + this.maxStackSize = 1; + } + + @Override + public EnumAction getItemUseAction(ItemStack par1ItemStack) { + return EnumAction.bow; + } + + @Override + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 72000; + } + + @Override + public ItemStack onItemRightClick(ItemStack p_77659_1_, World world, EntityPlayer player) { + ArrowNockEvent event = new ArrowNockEvent(player, p_77659_1_); + { + player.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); + } + + world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpinup", 1.0F, 1.0F); + + return p_77659_1_; + } + + @Override + public void onUsingTick(ItemStack stack, EntityPlayer player, int count) + { + World world = player.worldObj; + + boolean flag = player.capabilities.isCreativeMode + || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; + + if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_lacunae_ammo)) && count % 1 == 0 && this.getMaxItemUseDuration(stack) - count > 15) { + + world.playSoundAtEntity(player, "hbm:weapon.lacunaeShoot", 1.0F, 1.0F); + + for(int i = 0; i < 3; i++) { + + if((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_lacunae_ammo))) { + EntityBullet entityarrow = new EntityBullet(world, player, 3.0F); + entityarrow.setDamage(5); + + if(!flag) + player.inventory.consumeInventoryItem(ModItems.gun_lacunae_ammo); + + if (!world.isRemote) { + world.spawnEntityInWorld(entityarrow); + } + } + } + } + } + + @Override + public void onPlayerStoppedUsing(ItemStack p_77615_1_, World world, EntityPlayer player, int p_77615_4_) { + int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; + + if(j > 10) + world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpindown", 1.0F, 1.0F); + } + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + if(this == ModItems.gun_minigun) + list.add("The perfect gift for the man who has everything."); + if(this == ModItems.gun_avenger) + list.add("Interloper! No quarter shall be shown hither, fiend!"); + if(this == ModItems.gun_lacunae) + list.add("Auntie Lacunae to the rescue!"); + + list.add(""); + list.add("Ammo: 5mm Round"); + list.add("Damage: 5"); + } + + @Override + public Multimap getItemAttributeModifiers() { + Multimap multimap = super.getItemAttributeModifiers(); + multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), + new AttributeModifier(field_111210_e, "Weapon modifier", 6, 0)); + + if(this == ModItems.gun_minigun) + multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), + new AttributeModifier(field_111210_e, "Weapon modifier", -0.3, 1)); + if(this == ModItems.gun_avenger) + multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), + new AttributeModifier(field_111210_e, "Weapon modifier", -0.4, 1)); + if(this == ModItems.gun_lacunae) + multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), + new AttributeModifier(field_111210_e, "Weapon modifier", -0.2, 1)); + + return multimap; + } +} diff --git a/com/hbm/items/weapon/GunUZI.java b/com/hbm/items/weapon/GunUZI.java index 21d8ddee2..13fbaaa88 100644 --- a/com/hbm/items/weapon/GunUZI.java +++ b/com/hbm/items/weapon/GunUZI.java @@ -5,6 +5,7 @@ import java.util.Random; import com.google.common.collect.Multimap; import com.hbm.entity.projectile.EntityBullet; +import com.hbm.interfaces.IHoldableWeapon; import com.hbm.items.ModItems; import net.minecraft.enchantment.Enchantment; @@ -19,7 +20,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.event.entity.player.ArrowNockEvent; -public class GunUZI extends Item { +public class GunUZI extends Item implements IHoldableWeapon { Random rand = new Random(); @@ -30,7 +31,7 @@ public class GunUZI extends Item { @Override public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; + return EnumAction.none; } @Override diff --git a/com/hbm/items/weapon/ItemClip.java b/com/hbm/items/weapon/ItemClip.java index 3258a2b0a..fff20bc56 100644 --- a/com/hbm/items/weapon/ItemClip.java +++ b/com/hbm/items/weapon/ItemClip.java @@ -218,6 +218,14 @@ public class ItemClip extends Item { } } + if(this == ModItems.clip_revolver_nopip) + { + if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nopip_ammo, 12))) + { + //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); + } + } + if(this == ModItems.clip_stinger) { if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_stinger_ammo, 3))) @@ -286,10 +294,31 @@ public class ItemClip extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 3)); if(player.inventory.hasItem(ModItems.gun_revolver_pip)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_pip_ammo, 12)); + if(player.inventory.hasItem(ModItems.gun_revolver_nopip)) + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nopip_ammo, 12)); + if(player.inventory.hasItem(ModItems.gun_revolver_blackjack)) + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nopip_ammo, 12)); + if(player.inventory.hasItem(ModItems.gun_revolver_red)) + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nopip_ammo, 12)); if(player.inventory.hasItem(ModItems.gun_calamity)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_calamity_ammo, 16)); if(player.inventory.hasItem(ModItems.gun_calamity_dual)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_calamity_ammo, 32)); + if(player.inventory.hasItem(ModItems.gun_minigun)) { + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lacunae_ammo, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lacunae_ammo, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lacunae_ammo, 64)); + } + if(player.inventory.hasItem(ModItems.gun_avenger)) { + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lacunae_ammo, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lacunae_ammo, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lacunae_ammo, 64)); + } + if(player.inventory.hasItem(ModItems.gun_lacunae)) { + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lacunae_ammo, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lacunae_ammo, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lacunae_ammo, 64)); + } if(player.inventory.hasItem(ModItems.gun_rpg)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 3)); if(player.inventory.hasItem(ModItems.gun_stinger)) diff --git a/com/hbm/items/weapon/ItemGunBase.java b/com/hbm/items/weapon/ItemGunBase.java new file mode 100644 index 000000000..d43c8c652 --- /dev/null +++ b/com/hbm/items/weapon/ItemGunBase.java @@ -0,0 +1,9 @@ +package com.hbm.items.weapon; + +import com.hbm.interfaces.IHoldableWeapon; + +import net.minecraft.item.Item; + +public class ItemGunBase extends Item implements IHoldableWeapon { + +} diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 1dff35b56..6f10c2529 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -250,6 +250,9 @@ public class ClientProxy extends ServerProxy MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_saturnite_silencer, new ItemRenderUZI()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_calamity, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_calamity_dual, new ItemRenderOverkill()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderOverkill()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_avenger, new ItemRenderOverkill()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_lacunae, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 247f2de1c..f1b73feb0 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -112,7 +112,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_sulfur), 1), new Object[] { "###", "###", "###", '#', ModItems.sulfur }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_titanium), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_titanium }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_tungsten), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_tungsten }); - GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_uranium), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_uranium }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_thorium), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_th232 }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_lead), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_lead }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_trinitite), 1), new Object[] { "###", "###", "###", '#', ModItems.trinitite }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_waste), 1), new Object[] { "###", "###", "###", '#', ModItems.nuclear_waste }); @@ -138,6 +138,9 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_cloth, 1), new Object[] { "#", '#', ModBlocks.hazmat }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_uranium_fuel, 1), new Object[] { "nuggetUranium235", "nuggetUranium235", "nuggetUranium235", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_uranium_fuel, 1), new Object[] { "nuggetUranium233", "nuggetUranium233", "nuggetUranium233", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" })); + //GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_thorium_fuel, 1), new Object[] { "nuggetUranium235", "nuggetUranium235", "nuggetUranium235", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_thorium_fuel, 1), new Object[] { "nuggetUranium233", "nuggetUranium233", "nuggetUranium233", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_plutonium_fuel, 1), new Object[] { "nuggetPlutonium238", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium240", "nuggetPlutonium240", "nuggetPlutonium240" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_mox_fuel, 1), new Object[] { "nuggetUranium235", "nuggetUranium235", "nuggetUranium235", "nuggetUranium238", "nuggetUranium238", "nuggetPlutonium238", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_uranium_fuel, 1), new Object[] { "tinyU235", "tinyU235", "tinyU235", "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU238" })); @@ -157,6 +160,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.ingot_titanium, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_titanium) }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_tungsten, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_tungsten) }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_uranium, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_uranium) }); + GameRegistry.addRecipe(new ItemStack(ModItems.ingot_th232, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_thorium) }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_lead, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_lead) }); GameRegistry.addRecipe(new ItemStack(ModItems.trinitite, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_trinitite) }); GameRegistry.addRecipe(new ItemStack(ModItems.nuclear_waste, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_waste) }); @@ -182,8 +186,12 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.nugget_pu239, 9), new Object[] { "#", '#', ModItems.ingot_pu239 }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_pu240, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_pu240 }); GameRegistry.addRecipe(new ItemStack(ModItems.nugget_pu240, 9), new Object[] { "#", '#', ModItems.ingot_pu240 }); + GameRegistry.addRecipe(new ItemStack(ModItems.ingot_th232, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_th232 }); + GameRegistry.addRecipe(new ItemStack(ModItems.nugget_th232, 9), new Object[] { "#", '#', ModItems.ingot_th232 }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_uranium, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_uranium }); GameRegistry.addRecipe(new ItemStack(ModItems.nugget_uranium, 9), new Object[] { "#", '#', ModItems.ingot_uranium }); + GameRegistry.addRecipe(new ItemStack(ModItems.ingot_u233, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_u233 }); + GameRegistry.addRecipe(new ItemStack(ModItems.nugget_u233, 9), new Object[] { "#", '#', ModItems.ingot_u233 }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_u235, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_u235 }); GameRegistry.addRecipe(new ItemStack(ModItems.nugget_u235, 9), new Object[] { "#", '#', ModItems.ingot_u235 }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_u238, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_u238 }); @@ -198,6 +206,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.nugget_schrabidium, 9), new Object[] { "#", '#', ModItems.ingot_schrabidium }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_uranium_fuel, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_uranium_fuel }); GameRegistry.addRecipe(new ItemStack(ModItems.nugget_uranium_fuel, 9), new Object[] { "#", '#', ModItems.ingot_uranium_fuel }); + GameRegistry.addRecipe(new ItemStack(ModItems.ingot_thorium_fuel, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_thorium_fuel }); + GameRegistry.addRecipe(new ItemStack(ModItems.nugget_thorium_fuel, 9), new Object[] { "#", '#', ModItems.ingot_thorium_fuel }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_plutonium_fuel, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_plutonium_fuel }); GameRegistry.addRecipe(new ItemStack(ModItems.nugget_plutonium_fuel, 9), new Object[] { "#", '#', ModItems.ingot_plutonium_fuel }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_mox_fuel, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_mox_fuel }); @@ -238,9 +248,13 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.powder_meteorite_tiny, 9), new Object[] { "#", '#', ModItems.powder_meteorite }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_solinium, 1), new Object[] { "###", "###", "###", '#', ModItems.nugget_solinium }); GameRegistry.addRecipe(new ItemStack(ModItems.nugget_solinium, 9), new Object[] { "#", '#', ModItems.ingot_solinium }); + GameRegistry.addRecipe(new ItemStack(ModItems.nuclear_waste, 1), new Object[] { "###", "###", "###", '#', ModItems.nuclear_waste_tiny }); + GameRegistry.addRecipe(new ItemStack(ModItems.nuclear_waste_tiny, 9), new Object[] { "#", '#', ModItems.nuclear_waste }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rod_empty, 16), new Object[] { "SSS", "L L", "SSS", 'S', "plateSteel", 'L', "plateLead" })); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_th232, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_th232, ModItems.nugget_th232, ModItems.nugget_th232, ModItems.nugget_th232, ModItems.nugget_th232, ModItems.nugget_th232 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_uranium, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_u233, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_u233, ModItems.nugget_u233, ModItems.nugget_u233, ModItems.nugget_u233, ModItems.nugget_u233, ModItems.nugget_u233 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_u235, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_u235, ModItems.nugget_u235, ModItems.nugget_u235, ModItems.nugget_u235, ModItems.nugget_u235, ModItems.nugget_u235 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_u238, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_u238, ModItems.nugget_u238, ModItems.nugget_u238, ModItems.nugget_u238, ModItems.nugget_u238, ModItems.nugget_u238 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_plutonium, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium }); @@ -252,6 +266,7 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_schrabidium, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_solinium, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_uranium_fuel, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_thorium_fuel, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_plutonium_fuel, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_mox_fuel, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_schrabidium_fuel, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel }); @@ -265,7 +280,9 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_empty, 2), new Object[] { ModItems.rod_dual_empty }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_empty, 1), new Object[] { ModItems.rod_empty, ModItems.rod_empty }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_th232, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_th232, ModItems.nugget_th232, ModItems.nugget_th232, ModItems.nugget_th232 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_uranium, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_u233, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_u233, ModItems.nugget_u233, ModItems.nugget_u233, ModItems.nugget_u233 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_u235, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_u235, ModItems.nugget_u235, ModItems.nugget_u235, ModItems.nugget_u235 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_u238, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_u238, ModItems.nugget_u238, ModItems.nugget_u238, ModItems.nugget_u238 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_plutonium, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium }); @@ -277,6 +294,7 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_schrabidium, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_solinium, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_uranium_fuel, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_thorium_fuel, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_plutonium_fuel, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_mox_fuel, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_schrabidium_fuel, 1), new Object[] { ModItems.rod_dual_empty, ModItems.ingot_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel }); @@ -291,7 +309,9 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_empty, 4), new Object[] { ModItems.rod_quad_empty }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_empty, 1), new Object[] { ModItems.rod_empty, ModItems.rod_empty, ModItems.rod_empty, ModItems.rod_empty }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_empty, 1), new Object[] { ModItems.rod_dual_empty, ModItems.rod_dual_empty }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_th232, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_th232, ModItems.ingot_th232, ModItems.nugget_th232, ModItems.nugget_th232, ModItems.nugget_th232, ModItems.nugget_th232, ModItems.nugget_th232, ModItems.nugget_th232 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_uranium, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_uranium, ModItems.ingot_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_u233, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_u233, ModItems.ingot_u233, ModItems.nugget_u233, ModItems.nugget_u233, ModItems.nugget_u233, ModItems.nugget_u233, ModItems.nugget_u233, ModItems.nugget_u233 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_u235, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_u235, ModItems.ingot_u235, ModItems.nugget_u235, ModItems.nugget_u235, ModItems.nugget_u235, ModItems.nugget_u235, ModItems.nugget_u235, ModItems.nugget_u235 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_u238, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_u238, ModItems.ingot_u238, ModItems.nugget_u238, ModItems.nugget_u238, ModItems.nugget_u238, ModItems.nugget_u238, ModItems.nugget_u238, ModItems.nugget_u238 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_plutonium, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_plutonium, ModItems.ingot_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium, ModItems.nugget_plutonium }); @@ -303,6 +323,7 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_schrabidium, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_schrabidium, ModItems.ingot_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, ModItems.nugget_schrabidium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_solinium, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_solinium, ModItems.ingot_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium, ModItems.nugget_solinium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_uranium_fuel, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_uranium_fuel, ModItems.ingot_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_thorium_fuel, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_thorium_fuel, ModItems.ingot_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel, ModItems.nugget_thorium_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_plutonium_fuel, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_plutonium_fuel, ModItems.ingot_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel, ModItems.nugget_plutonium_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_mox_fuel, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_mox_fuel, ModItems.ingot_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel, ModItems.nugget_mox_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_schrabidium_fuel, 1), new Object[] { ModItems.rod_quad_empty, ModItems.ingot_schrabidium_fuel, ModItems.ingot_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel, ModItems.nugget_schrabidium_fuel }); @@ -311,7 +332,9 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_dual_water, 1), new Object[] { ModItems.rod_dual_empty, Items.water_bucket, Items.water_bucket }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_quad_water, 1), new Object[] { ModItems.rod_quad_empty, Items.water_bucket, Items.water_bucket, Items.water_bucket, Items.water_bucket }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_th232, 6), new Object[] { ModItems.rod_th232 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_uranium, 6), new Object[] { ModItems.rod_uranium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_u233, 6), new Object[] { ModItems.rod_u233 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_u235, 6), new Object[] { ModItems.rod_u235 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_u238, 6), new Object[] { ModItems.rod_u238 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_plutonium, 6), new Object[] { ModItems.rod_plutonium }); @@ -334,7 +357,9 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_verticium, 6), new Object[] { ModItems.rod_verticium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_euphemium, 6), new Object[] { ModItems.rod_euphemium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_th232, 12), new Object[] { ModItems.rod_dual_th232 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_uranium, 12), new Object[] { ModItems.rod_dual_uranium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_u233, 12), new Object[] { ModItems.rod_dual_u233 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_u235, 12), new Object[] { ModItems.rod_dual_u235 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_u238, 12), new Object[] { ModItems.rod_dual_u238 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_plutonium, 12), new Object[] { ModItems.rod_dual_plutonium }); @@ -350,7 +375,9 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_mox_fuel, 12), new Object[] { ModItems.rod_dual_mox_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_schrabidium_fuel, 12), new Object[] { ModItems.rod_dual_schrabidium_fuel }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_th232, 24), new Object[] { ModItems.rod_quad_th232 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_uranium, 24), new Object[] { ModItems.rod_quad_uranium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_u233, 24), new Object[] { ModItems.rod_quad_u233 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_u235, 24), new Object[] { ModItems.rod_quad_u235 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_u238, 24), new Object[] { ModItems.rod_quad_u238 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nugget_plutonium, 24), new Object[] { ModItems.rod_quad_plutonium }); @@ -369,19 +396,22 @@ public class CraftingManager { //GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nuclear_waste, 2), new Object[] { ModItems.rod_waste }); //GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nuclear_waste, 4), new Object[] { ModItems.rod_dual_waste }); //GameRegistry.addShapelessRecipe(new ItemStack(ModItems.nuclear_waste, 8), new Object[] { ModItems.rod_quad_waste }); - - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_uranium, 1), new Object[] { ModItems.rod_uranium_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_uranium, 2), new Object[] { ModItems.rod_dual_uranium_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_uranium, 4), new Object[] { ModItems.rod_quad_uranium_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_plutonium, 1), new Object[] { ModItems.rod_plutonium_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_plutonium, 2), new Object[] { ModItems.rod_dual_plutonium_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_plutonium, 4), new Object[] { ModItems.rod_quad_plutonium_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_mox, 1), new Object[] { ModItems.rod_mox_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_mox, 2), new Object[] { ModItems.rod_dual_mox_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_mox, 4), new Object[] { ModItems.rod_quad_mox_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_schrabidium, 1), new Object[] { ModItems.rod_schrabidium_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_schrabidium, 2), new Object[] { ModItems.rod_dual_schrabidium_fuel_depleted }); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_schrabidium, 4), new Object[] { ModItems.rod_quad_schrabidium_fuel_depleted }); + + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_uranium_hot, 1), new Object[] { ModItems.rod_uranium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_uranium_hot, 2), new Object[] { ModItems.rod_dual_uranium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_uranium_hot, 4), new Object[] { ModItems.rod_quad_uranium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_thorium_hot, 1), new Object[] { ModItems.rod_thorium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_thorium_hot, 2), new Object[] { ModItems.rod_dual_thorium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_thorium_hot, 4), new Object[] { ModItems.rod_quad_thorium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_plutonium_hot, 1), new Object[] { ModItems.rod_plutonium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_plutonium_hot, 2), new Object[] { ModItems.rod_dual_plutonium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_plutonium_hot, 4), new Object[] { ModItems.rod_quad_plutonium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_mox_hot, 1), new Object[] { ModItems.rod_mox_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_mox_hot, 2), new Object[] { ModItems.rod_dual_mox_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_mox_hot, 4), new Object[] { ModItems.rod_quad_mox_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_schrabidium_hot, 1), new Object[] { ModItems.rod_schrabidium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_schrabidium_hot, 2), new Object[] { ModItems.rod_dual_schrabidium_fuel_depleted }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.waste_schrabidium_hot, 4), new Object[] { ModItems.rod_quad_schrabidium_fuel_depleted }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.biomass, 4), new Object[] { Items.melon, Items.melon, Items.melon, Items.melon, Items.melon, Items.melon, Items.melon }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.biomass, 4), new Object[] { Items.apple, Items.apple, Items.apple, Items.apple, Items.apple, Items.apple, Items.apple, Items.apple, Items.apple }); @@ -816,6 +846,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_nightmare, 16), new Object[] { " I", "GC", " P", 'I', "ingotTungsten", 'G', Items.gunpowder, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_smg, 24), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', Items.gunpowder, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_uzi, 24), new Object[] { " I", "GC", " P", 'I', "ingotIron", 'G', Items.gunpowder, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lacunae, 24), new Object[] { " I", "GC", " P", 'I', "ingotCopper", 'G', Items.gunpowder, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_nopip, 16), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', Items.gunpowder, 'C', ModItems.casing_44, 'P', ModItems.primer_44 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_pip, 16), new Object[] { " I ", "GCM", " P ", 'I', "ingotLead", 'G', Items.gunpowder, 'C', ModItems.casing_44, 'P', ModItems.primer_44, 'M', ModItems.powder_magic })); GameRegistry.addRecipe(new ItemStack(ModItems.gun_uboinik_ammo, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', Items.gunpowder, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); @@ -1427,6 +1458,7 @@ public class CraftingManager { public static void AddSmeltingRec() { + GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_thorium), new ItemStack(ModItems.ingot_th232), 3.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_uranium), new ItemStack(ModItems.ingot_uranium), 6.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_nether_uranium), new ItemStack(ModItems.ingot_uranium), 12.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_nether_plutonium), new ItemStack(ModItems.ingot_plutonium), 24.0F); @@ -1464,6 +1496,7 @@ public class CraftingManager { GameRegistry.addSmelting(ModItems.powder_titanium, new ItemStack(ModItems.ingot_titanium), 1.0F); GameRegistry.addSmelting(ModItems.powder_tungsten, new ItemStack(ModItems.ingot_tungsten), 1.0F); GameRegistry.addSmelting(ModItems.powder_uranium, new ItemStack(ModItems.ingot_uranium), 1.0F); + GameRegistry.addSmelting(ModItems.powder_thorium, new ItemStack(ModItems.powder_thorium), 1.0F); GameRegistry.addSmelting(ModItems.powder_plutonium, new ItemStack(ModItems.ingot_plutonium), 1.0F); GameRegistry.addSmelting(ModItems.powder_advanced_alloy, new ItemStack(ModItems.ingot_advanced_alloy), 1.0F); GameRegistry.addSmelting(ModItems.powder_combine_steel, new ItemStack(ModItems.ingot_combine_steel), 1.0F); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 51e420c85..56ae4e33d 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -332,6 +332,7 @@ import com.hbm.tileentity.machine.TileEntitySafe; import com.hbm.tileentity.machine.TileEntityMachineSatLinker; import com.hbm.tileentity.machine.TileEntityStructureMarker; import com.hbm.tileentity.machine.TileEntityVaultDoor; +import com.hbm.tileentity.machine.TileEntityWasteDrum; import com.hbm.tileentity.machine.TileEntityWatzCore; import cpw.mods.fml.common.SidedProxy; @@ -749,6 +750,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityRFDuct.class, "tileentity_hbm_rfduct"); GameRegistry.registerTileEntity(TileEntityReactorControl.class, "tileentity_reactor_remote_control"); GameRegistry.registerTileEntity(TileEntityMachineReactorLarge.class, "tileentity_large_reactor"); + GameRegistry.registerTileEntity(TileEntityWasteDrum.class, "tileentity_waste_drum"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); @@ -1231,14 +1233,19 @@ public class MainRegistry })); OreDictionary.registerOre("ingotUranium", ModItems.ingot_uranium); + OreDictionary.registerOre("ingotUranium233", ModItems.ingot_u233); OreDictionary.registerOre("ingotUranium235", ModItems.ingot_u235); OreDictionary.registerOre("ingotUranium238", ModItems.ingot_u238); + OreDictionary.registerOre("ingotThorium", ModItems.ingot_th232); + OreDictionary.registerOre("ingotThorium232", ModItems.ingot_th232); OreDictionary.registerOre("ingotPlutonium", ModItems.ingot_plutonium); OreDictionary.registerOre("ingotPlutonium238", ModItems.ingot_pu238); OreDictionary.registerOre("ingotPlutonium239", ModItems.ingot_pu239); OreDictionary.registerOre("ingotPlutonium240", ModItems.ingot_pu240); + OreDictionary.registerOre("U233", ModItems.ingot_u233); OreDictionary.registerOre("U235", ModItems.ingot_u235); OreDictionary.registerOre("U238", ModItems.ingot_u238); + OreDictionary.registerOre("Th232", ModItems.ingot_th232); OreDictionary.registerOre("Pu238", ModItems.ingot_pu238); OreDictionary.registerOre("Pu39", ModItems.ingot_pu239); OreDictionary.registerOre("Pu240", ModItems.ingot_pu240); @@ -1280,8 +1287,11 @@ public class MainRegistry OreDictionary.registerOre("dustFluorite", ModItems.fluorite); OreDictionary.registerOre("nuggetLead", ModItems.nugget_lead); OreDictionary.registerOre("nuggetUranium", ModItems.nugget_uranium); + OreDictionary.registerOre("nuggetUranium233", ModItems.nugget_u233); OreDictionary.registerOre("nuggetUranium235", ModItems.nugget_u235); OreDictionary.registerOre("nuggetUranium238", ModItems.nugget_u238); + OreDictionary.registerOre("nuggetThorium", ModItems.nugget_th232); + OreDictionary.registerOre("nuggetThorium232", ModItems.nugget_th232); OreDictionary.registerOre("nuggetPlutonium", ModItems.nugget_plutonium); OreDictionary.registerOre("nuggetPlutonium238", ModItems.nugget_pu238); OreDictionary.registerOre("nuggetPlutonium239", ModItems.nugget_pu239); @@ -1293,8 +1303,10 @@ public class MainRegistry OreDictionary.registerOre("nuggetDaffergon", ModItems.nugget_daffergon); OreDictionary.registerOre("nuggetVerticium", ModItems.nugget_verticium); OreDictionary.registerOre("nuggetEuphemium", ModItems.nugget_euphemium); + OreDictionary.registerOre("tinyU233", ModItems.nugget_u233); OreDictionary.registerOre("tinyU235", ModItems.nugget_u235); OreDictionary.registerOre("tinyU238", ModItems.nugget_u238); + OreDictionary.registerOre("tinyTh232", ModItems.nugget_th232); OreDictionary.registerOre("tinyPu238", ModItems.nugget_pu238); OreDictionary.registerOre("tinyPu239", ModItems.nugget_pu239); OreDictionary.registerOre("tinyPu240", ModItems.nugget_pu240); @@ -1319,6 +1331,7 @@ public class MainRegistry OreDictionary.registerOre("dustIron", ModItems.powder_iron); OreDictionary.registerOre("dustGold", ModItems.powder_gold); OreDictionary.registerOre("dustUranium", ModItems.powder_uranium); + OreDictionary.registerOre("dustThorium", ModItems.powder_thorium); OreDictionary.registerOre("dustPlutonium", ModItems.powder_plutonium); OreDictionary.registerOre("dustTitanium", ModItems.powder_titanium); OreDictionary.registerOre("dustTungsten", ModItems.powder_tungsten); @@ -1375,6 +1388,7 @@ public class MainRegistry OreDictionary.registerOre("gemCoal", Items.coal); OreDictionary.registerOre("oreUranium", ModBlocks.ore_uranium); + OreDictionary.registerOre("oreThorium", ModBlocks.ore_thorium); OreDictionary.registerOre("oreTitanium", ModBlocks.ore_titanium); OreDictionary.registerOre("oreSchrabidium", ModBlocks.ore_schrabidium); OreDictionary.registerOre("oreSulfur", ModBlocks.ore_sulfur); @@ -1400,6 +1414,7 @@ public class MainRegistry OreDictionary.registerOre("oreSulfur", ModBlocks.ore_nether_sulfur); OreDictionary.registerOre("oreSchrabidium", ModBlocks.ore_nether_schrabidium); + OreDictionary.registerOre("blockThorium", ModBlocks.block_thorium); OreDictionary.registerOre("blockUranium", ModBlocks.block_uranium); OreDictionary.registerOre("blockTitanium", ModBlocks.block_titanium); OreDictionary.registerOre("blockSulfur", ModBlocks.block_sulfur); @@ -1636,7 +1651,14 @@ public class MainRegistry TileEntityMachineReactorLarge.registerWasteEntry(120, ReactorFuelType.SCHRABIDIUM, ModItems.rod_dual_empty, ModItems.rod_dual_schrabidium_fuel_depleted); TileEntityMachineReactorLarge.registerWasteEntry(240, ReactorFuelType.SCHRABIDIUM, ModItems.rod_quad_empty, ModItems.rod_quad_schrabidium_fuel_depleted); + TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.THORIUM, ModItems.nugget_thorium_fuel); TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.THORIUM, ModItems.ingot_thorium_fuel); + TileEntityMachineReactorLarge.registerFuelEntry(6, ReactorFuelType.THORIUM, ModItems.rod_thorium_fuel); + TileEntityMachineReactorLarge.registerFuelEntry(12, ReactorFuelType.THORIUM, ModItems.rod_dual_thorium_fuel); + TileEntityMachineReactorLarge.registerFuelEntry(24, ReactorFuelType.THORIUM, ModItems.rod_quad_thorium_fuel); + TileEntityMachineReactorLarge.registerWasteEntry(6, ReactorFuelType.THORIUM, ModItems.rod_empty, ModItems.rod_thorium_fuel_depleted); + TileEntityMachineReactorLarge.registerWasteEntry(12, ReactorFuelType.THORIUM, ModItems.rod_dual_empty, ModItems.rod_dual_thorium_fuel_depleted); + TileEntityMachineReactorLarge.registerWasteEntry(24, ReactorFuelType.THORIUM, ModItems.rod_quad_empty, ModItems.rod_quad_thorium_fuel_depleted); } @EventHandler diff --git a/com/hbm/main/ModEventHandlerClient.java b/com/hbm/main/ModEventHandlerClient.java index e3a0fba16..c053e7355 100644 --- a/com/hbm/main/ModEventHandlerClient.java +++ b/com/hbm/main/ModEventHandlerClient.java @@ -2,6 +2,7 @@ package com.hbm.main; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; +import com.hbm.interfaces.IHoldableWeapon; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemGeigerCounter; import com.hbm.lib.Library; @@ -50,15 +51,15 @@ public class ModEventHandlerClient { } } - /*@SubscribeEvent - public void renderGunPull(RenderPlayerEvent.Specials.Post event) { + @SubscribeEvent + public void renderGunPull(RenderPlayerEvent.Pre event) { RenderPlayer renderer = event.renderer; + EntityPlayer player = event.entityPlayer; - //TESTING - renderer.modelBipedMain.bipedLeftArm.rotateAngleX += 90; - - }*/ + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IHoldableWeapon) + renderer.modelBipedMain.aimedBow = true; + } @SubscribeEvent public void onPlaySound(PlaySoundEvent17 e) { diff --git a/com/hbm/render/item/ItemRenderOverkill.java b/com/hbm/render/item/ItemRenderOverkill.java index 6cb876d39..ad4f90c16 100644 --- a/com/hbm/render/item/ItemRenderOverkill.java +++ b/com/hbm/render/item/ItemRenderOverkill.java @@ -14,12 +14,15 @@ import com.hbm.render.model.ModelEuthanasia; import com.hbm.render.model.ModelGun; import com.hbm.render.model.ModelHP; import com.hbm.render.model.ModelJack; +import com.hbm.render.model.ModelLacunae; import com.hbm.render.model.ModelPip; import com.hbm.render.model.ModelSpark; import com.hbm.render.model.ModelTwiGun; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; @@ -34,6 +37,7 @@ public class ItemRenderOverkill implements IItemRenderer { protected ModelDash dasher; protected ModelTwiGun rgottp; protected ModelPip pip; + protected ModelLacunae lacunae; protected ModelCalBarrel barrel; protected ModelCalStock stock; @@ -51,6 +55,7 @@ public class ItemRenderOverkill implements IItemRenderer { barrel = new ModelCalBarrel(); stock = new ModelCalStock(); saddle = new ModelCalDualStock(); + lacunae = new ModelLacunae(); } @Override @@ -71,6 +76,11 @@ public class ItemRenderOverkill implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + float f = 0; + + if((Entity)data[1] instanceof EntityPlayer) + f = ((EntityPlayer)data[1]).getItemInUseDuration(); + switch(type) { case EQUIPPED_FIRST_PERSON: GL11.glPushMatrix(); @@ -98,7 +108,13 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); if(item.getItem() == ModItems.gun_revolver_red) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); - + if(item.getItem() == ModItems.gun_minigun) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png")); + if(item.getItem() == ModItems.gun_avenger) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png")); + if(item.getItem() == ModItems.gun_lacunae) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); + GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(-0.5F, 0.0F, -0.2F); //GL11.glScalef(2.0F, 2.0F, 2.0F); @@ -117,6 +133,13 @@ public class ItemRenderOverkill implements IItemRenderer { GL11.glTranslatef(0.0F, 0.3F, 0.2F); } + if(item.getItem() == ModItems.gun_lacunae || + item.getItem() == ModItems.gun_minigun || + item.getItem() == ModItems.gun_avenger) { + GL11.glRotatef(180, 0, 1, 0); + GL11.glTranslatef(0.0F, 0.3F, -0.2F); + } + if(item.getItem() == ModItems.gun_jack) powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_spark) @@ -153,106 +176,222 @@ public class ItemRenderOverkill implements IItemRenderer { GL11.glTranslated(0, 0, -0.7); barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); } + if(item.getItem() == ModItems.gun_lacunae || + item.getItem() == ModItems.gun_minigun || + item.getItem() == ModItems.gun_avenger) + lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); GL11.glPopMatrix(); break; case EQUIPPED: + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_CULL_FACE); + if(item.getItem() == ModItems.gun_jack) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png")); + if(item.getItem() == ModItems.gun_spark) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); + if(item.getItem() == ModItems.gun_hp) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png")); + if(item.getItem() == ModItems.gun_euthanasia) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); + if(item.getItem() == ModItems.gun_defabricator) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); + if(item.getItem() == ModItems.gun_dash) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDash.png")); + if(item.getItem() == ModItems.gun_twigun) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTwiGun.png")); + if(item.getItem() == ModItems.gun_revolver_pip) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); + if(item.getItem() == ModItems.gun_revolver_nopip) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipNoScope.png")); + if(item.getItem() == ModItems.gun_revolver_blackjack) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); + if(item.getItem() == ModItems.gun_revolver_red) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); + if(item.getItem() == ModItems.gun_minigun) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png")); + if(item.getItem() == ModItems.gun_avenger) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png")); + if(item.getItem() == ModItems.gun_lacunae) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); + + GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(0.0F, -0.2F, -0.5F); + GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.5F, -0.2F, 0.0F); + //GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(-1.4F, 0.0F, 0.0F); + if(item.getItem() == ModItems.gun_jack) + GL11.glTranslatef(0.3F, 0, 0); + if(item.getItem() == ModItems.gun_spark) + GL11.glTranslatef(0.4F, 0, 0); + if(item.getItem() == ModItems.gun_hp) + GL11.glTranslatef(0.5F, 0.2F, 0); + if(item.getItem() == ModItems.gun_defabricator) + GL11.glTranslatef(0.5F, 0.6F, -0.2F); + + if(item.getItem() == ModItems.gun_revolver_pip || + item.getItem() == ModItems.gun_revolver_nopip || + item.getItem() == ModItems.gun_revolver_blackjack || + item.getItem() == ModItems.gun_revolver_red) { + GL11.glScalef(0.60F, 0.60F, 0.60F); + GL11.glTranslatef(0.7F, 0.3F, 0.0F); + } + if(item.getItem() == ModItems.gun_calamity) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.5F, 0.0F, 0.0F); + } + if(item.getItem() == ModItems.gun_calamity_dual) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + GL11.glTranslatef(0.5F, 0.0F, 0.0F); + } + if(item.getItem() == ModItems.gun_lacunae || + item.getItem() == ModItems.gun_minigun || + item.getItem() == ModItems.gun_avenger) { + GL11.glRotatef(180, 0, 1, 0); + GL11.glTranslatef(0.5F, 0.6F, 0.2F); + } + + if(item.getItem() == ModItems.gun_jack) + powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_spark) + sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_hp) + hppLaserjet.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_euthanasia) + euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_defabricator) + defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_dash) + dasher.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_twigun) + rgottp.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_revolver_pip || + item.getItem() == ModItems.gun_revolver_nopip || + item.getItem() == ModItems.gun_revolver_blackjack || + item.getItem() == ModItems.gun_revolver_red) + pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + + if(item.getItem() == ModItems.gun_calamity) { + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalBarrel.png")); + barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalStock.png")); + stock.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + } + if(item.getItem() == ModItems.gun_calamity_dual) { + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalDualStock.png")); + saddle.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalBarrel.png")); + GL11.glTranslated(1D/16D * -2, 0, 0); + GL11.glTranslated(0, 0, 0.35); + barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + GL11.glTranslated(0, 0, -0.7); + barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + } + if(item.getItem() == ModItems.gun_lacunae || + item.getItem() == ModItems.gun_minigun || + item.getItem() == ModItems.gun_avenger) + lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); + GL11.glPopMatrix(); + break; case ENTITY: GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_jack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png")); - if(item.getItem() == ModItems.gun_spark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); - if(item.getItem() == ModItems.gun_hp) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png")); - if(item.getItem() == ModItems.gun_euthanasia) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); - if(item.getItem() == ModItems.gun_defabricator) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_dash) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDash.png")); - if(item.getItem() == ModItems.gun_twigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTwiGun.png")); - if(item.getItem() == ModItems.gun_revolver_pip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); - if(item.getItem() == ModItems.gun_revolver_nopip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipNoScope.png")); - if(item.getItem() == ModItems.gun_revolver_blackjack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); - if(item.getItem() == ModItems.gun_revolver_red) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); - - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - //GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-1.4F, 0.0F, 0.0F); - if(item.getItem() == ModItems.gun_jack) - GL11.glTranslatef(0.3F, 0, 0); - if(item.getItem() == ModItems.gun_spark) - GL11.glTranslatef(0.4F, 0, 0); - if(item.getItem() == ModItems.gun_hp) - GL11.glTranslatef(0.5F, 0.2F, 0); - if(item.getItem() == ModItems.gun_defabricator) - GL11.glTranslatef(0.5F, 0.6F, -0.2F); + GL11.glEnable(GL11.GL_CULL_FACE); + if(item.getItem() == ModItems.gun_jack) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png")); + if(item.getItem() == ModItems.gun_spark) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); + if(item.getItem() == ModItems.gun_hp) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png")); + if(item.getItem() == ModItems.gun_euthanasia) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); + if(item.getItem() == ModItems.gun_defabricator) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); + if(item.getItem() == ModItems.gun_dash) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDash.png")); + if(item.getItem() == ModItems.gun_twigun) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTwiGun.png")); + if(item.getItem() == ModItems.gun_revolver_pip) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); + if(item.getItem() == ModItems.gun_revolver_nopip) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipNoScope.png")); + if(item.getItem() == ModItems.gun_revolver_blackjack) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); + if(item.getItem() == ModItems.gun_revolver_red) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); + if(item.getItem() == ModItems.gun_minigun) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png")); + if(item.getItem() == ModItems.gun_avenger) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png")); + if(item.getItem() == ModItems.gun_lacunae) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_red) { - GL11.glScalef(0.60F, 0.60F, 0.60F); - GL11.glTranslatef(0.7F, 0.3F, 0.0F); - } - if(item.getItem() == ModItems.gun_calamity) { - GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(0.5F, 0.0F, 0.0F); - } - if(item.getItem() == ModItems.gun_calamity_dual) { - GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(0.5F, 0.0F, 0.0F); - } - - if(item.getItem() == ModItems.gun_jack) - powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_spark) - sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_hp) - hppLaserjet.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_euthanasia) - euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_defabricator) - defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_dash) - dasher.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_twigun) - rgottp.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_red) - pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_calamity) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalBarrel.png")); - barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalStock.png")); - stock.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - if(item.getItem() == ModItems.gun_calamity_dual) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalDualStock.png")); - saddle.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalBarrel.png")); - GL11.glTranslated(1D/16D * -2, 0, 0); - GL11.glTranslated(0, 0, 0.35); - barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glTranslated(0, 0, -0.7); - barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } + + GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); + + if(item.getItem() == ModItems.gun_revolver_pip || + item.getItem() == ModItems.gun_revolver_nopip || + item.getItem() == ModItems.gun_revolver_blackjack || + item.getItem() == ModItems.gun_revolver_red) { + GL11.glScalef(0.60F, 0.60F, 0.60F); + } + if(item.getItem() == ModItems.gun_calamity) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + } + if(item.getItem() == ModItems.gun_calamity_dual) { + GL11.glScalef(0.75F, 0.75F, 0.75F); + } + if(item.getItem() == ModItems.gun_lacunae || + item.getItem() == ModItems.gun_minigun || + item.getItem() == ModItems.gun_avenger) { + GL11.glTranslatef(0, -1, 0); + GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); + } + + if(item.getItem() == ModItems.gun_jack) + powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_spark) + sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_hp) + hppLaserjet.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_euthanasia) + euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_defabricator) + defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_dash) + dasher.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_twigun) + rgottp.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_revolver_pip || + item.getItem() == ModItems.gun_revolver_nopip || + item.getItem() == ModItems.gun_revolver_blackjack || + item.getItem() == ModItems.gun_revolver_red) + pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + + if(item.getItem() == ModItems.gun_calamity) { + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalBarrel.png")); + barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalStock.png")); + stock.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + } + if(item.getItem() == ModItems.gun_calamity_dual) { + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalDualStock.png")); + saddle.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCalBarrel.png")); + GL11.glTranslated(1D/16D * -2, 0, 0); + GL11.glTranslated(0, 0, 0.35); + barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + GL11.glTranslated(0, 0, -0.7); + barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + } + if(item.getItem() == ModItems.gun_lacunae || + item.getItem() == ModItems.gun_minigun || + item.getItem() == ModItems.gun_avenger) + lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); GL11.glPopMatrix(); + break; default: break; } } diff --git a/com/hbm/render/model/ModelLacunae.java b/com/hbm/render/model/ModelLacunae.java new file mode 100644 index 000000000..396589f87 --- /dev/null +++ b/com/hbm/render/model/ModelLacunae.java @@ -0,0 +1,571 @@ +// Date: 30.12.2018 13:53:06 +// Template version 1.1 +// Java generated by Techne +// Keep in mind that you still need to fill in some blanks +// - ZeuX + +package com.hbm.render.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelLacunae extends ModelBase { + // fields + ModelRenderer FrontP1; + ModelRenderer FrontP2; + ModelRenderer FrontP3; + ModelRenderer Barrel1; + ModelRenderer Barrel2; + ModelRenderer Barrel3; + ModelRenderer Barrel4; + ModelRenderer Barrel5; + ModelRenderer Barrel6; + ModelRenderer Brace1; + ModelRenderer Brace2; + ModelRenderer Brace3; + ModelRenderer Brace4; + ModelRenderer Brace5; + ModelRenderer Brace6; + ModelRenderer Brace7; + ModelRenderer Brace8; + ModelRenderer Brace9; + ModelRenderer Brace10; + ModelRenderer Brace11; + ModelRenderer Brace12; + ModelRenderer Disc1; + ModelRenderer Disc2; + ModelRenderer Disc3; + ModelRenderer Disc4; + ModelRenderer Disc5; + ModelRenderer Disc6; + ModelRenderer Disc7; + ModelRenderer Disc8; + ModelRenderer BodyF1; + ModelRenderer BodyF2; + ModelRenderer BodyF3; + ModelRenderer BodyR1; + ModelRenderer BodyR2; + ModelRenderer BodyL1; + ModelRenderer BodyL2; + ModelRenderer BackP1; + ModelRenderer BackP2; + ModelRenderer BackP3; + ModelRenderer Block; + ModelRenderer AchsleF; + ModelRenderer Drum1; + ModelRenderer Drum2; + ModelRenderer DrumT; + ModelRenderer StickBase; + ModelRenderer Stick; + ModelRenderer AchsleB; + ModelRenderer Motor1; + ModelRenderer Motor2; + ModelRenderer Pipe1; + ModelRenderer Frame1; + ModelRenderer Frame2; + ModelRenderer Frame3; + ModelRenderer Frame4; + ModelRenderer Grip; + ModelRenderer Pipe2; + ModelRenderer PipeT; + ModelRenderer Pipe3; + ModelRenderer Pipe4; + ModelRenderer AmmoFrame; + ModelRenderer ClampB; + ModelRenderer ClampF; + ModelRenderer AmmoBox; + + public ModelLacunae() { + textureWidth = 128; + textureHeight = 128; + + FrontP1 = new ModelRenderer(this, 0, 52); + FrontP1.addBox(0F, 0F, 0F, 3, 8, 4); + FrontP1.setRotationPoint(-2F, 0F, -2F); + FrontP1.setTextureSize(128, 128); + FrontP1.mirror = true; + setRotation(FrontP1, 0F, 0F, 0F); + FrontP2 = new ModelRenderer(this, 14, 52); + FrontP2.addBox(0F, 0F, 0F, 3, 4, 8); + FrontP2.setRotationPoint(-2F, 2F, -4F); + FrontP2.setTextureSize(128, 128); + FrontP2.mirror = true; + setRotation(FrontP2, 0F, 0F, 0F); + FrontP3 = new ModelRenderer(this, 0, 38); + FrontP3.addBox(0F, 0F, 0F, 3, 7, 7); + FrontP3.setRotationPoint(-2F, 0.5F, -3.5F); + FrontP3.setTextureSize(128, 128); + FrontP3.mirror = true; + setRotation(FrontP3, 0F, 0F, 0F); + Barrel1 = new ModelRenderer(this, 64, 62); + Barrel1.addBox(0F, -2.5F, -0.5F, 31, 1, 1); + Barrel1.setRotationPoint(1F, 4F, 0F); + Barrel1.setTextureSize(128, 128); + Barrel1.mirror = true; + setRotation(Barrel1, 0F, 0F, 0F); + Barrel2 = new ModelRenderer(this, 64, 62); + Barrel2.addBox(0F, -2.5F, -0.5F, 31, 1, 1); + Barrel2.setRotationPoint(1F, 4F, 0F); + Barrel2.setTextureSize(128, 128); + Barrel2.mirror = true; + setRotation(Barrel2, 0.6457718F, 0F, 0F); + Barrel3 = new ModelRenderer(this, 64, 62); + Barrel3.addBox(0F, -2.5F, -0.5F, 31, 1, 1); + Barrel3.setRotationPoint(1F, 4F, 0F); + Barrel3.setTextureSize(128, 128); + Barrel3.mirror = true; + setRotation(Barrel3, 2.268928F, 0F, 0F); + Barrel4 = new ModelRenderer(this, 64, 62); + Barrel4.addBox(0F, -2.5F, -0.5F, 31, 1, 1); + Barrel4.setRotationPoint(1F, 4F, 0F); + Barrel4.setTextureSize(128, 128); + Barrel4.mirror = true; + setRotation(Barrel4, 2.9147F, 0F, 0F); + Barrel5 = new ModelRenderer(this, 64, 62); + Barrel5.addBox(0F, -2.5F, -0.5F, 31, 1, 1); + Barrel5.setRotationPoint(1F, 4F, 0F); + Barrel5.setTextureSize(128, 128); + Barrel5.mirror = true; + setRotation(Barrel5, -1.919862F, 0F, 0F); + Barrel6 = new ModelRenderer(this, 64, 62); + Barrel6.addBox(0F, -2.5F, -0.5F, 31, 1, 1); + Barrel6.setRotationPoint(1F, 4F, 0F); + Barrel6.setTextureSize(128, 128); + Barrel6.mirror = true; + setRotation(Barrel6, -1.27409F, 0F, 0F); + Brace1 = new ModelRenderer(this, 20, 48); + Brace1.addBox(0F, -3F, -1F, 5, 2, 2); + Brace1.setRotationPoint(25F, 4F, 0F); + Brace1.setTextureSize(128, 128); + Brace1.mirror = true; + setRotation(Brace1, 0F, 0F, 0F); + Brace2 = new ModelRenderer(this, 20, 48); + Brace2.addBox(0F, -3F, -1F, 5, 2, 2); + Brace2.setRotationPoint(25F, 4F, 0F); + Brace2.setTextureSize(128, 128); + Brace2.mirror = true; + setRotation(Brace2, 0.6457718F, 0F, 0F); + Brace3 = new ModelRenderer(this, 20, 44); + Brace3.addBox(0F, -3F, -1F, 5, 2, 2); + Brace3.setRotationPoint(4F, 4F, 0F); + Brace3.setTextureSize(128, 128); + Brace3.mirror = true; + setRotation(Brace3, 2.268928F, 0F, 0F); + Brace4 = new ModelRenderer(this, 20, 44); + Brace4.addBox(0F, -3F, -1F, 5, 2, 2); + Brace4.setRotationPoint(4F, 4F, 0F); + Brace4.setTextureSize(128, 128); + Brace4.mirror = true; + setRotation(Brace4, 2.9147F, 0F, 0F); + Brace5 = new ModelRenderer(this, 20, 44); + Brace5.addBox(0F, -3F, -1F, 5, 2, 2); + Brace5.setRotationPoint(4F, 4F, 0F); + Brace5.setTextureSize(128, 128); + Brace5.mirror = true; + setRotation(Brace5, -1.919862F, 0F, 0F); + Brace6 = new ModelRenderer(this, 20, 44); + Brace6.addBox(0F, -3F, -1F, 5, 2, 2); + Brace6.setRotationPoint(4F, 4F, 0F); + Brace6.setTextureSize(128, 128); + Brace6.mirror = true; + setRotation(Brace6, -1.27409F, 0F, 0F); + Brace7 = new ModelRenderer(this, 20, 44); + Brace7.addBox(0F, -3F, -1F, 5, 2, 2); + Brace7.setRotationPoint(4F, 4F, 0F); + Brace7.setTextureSize(128, 128); + Brace7.mirror = true; + setRotation(Brace7, 0F, 0F, 0F); + Brace8 = new ModelRenderer(this, 20, 44); + Brace8.addBox(0F, -3F, -1F, 5, 2, 2); + Brace8.setRotationPoint(4F, 4F, 0F); + Brace8.setTextureSize(128, 128); + Brace8.mirror = true; + setRotation(Brace8, 0.6457718F, 0F, 0F); + Brace9 = new ModelRenderer(this, 20, 48); + Brace9.addBox(0F, -3F, -1F, 5, 2, 2); + Brace9.setRotationPoint(25F, 4F, 0F); + Brace9.setTextureSize(128, 128); + Brace9.mirror = true; + setRotation(Brace9, 2.268928F, 0F, 0F); + Brace10 = new ModelRenderer(this, 20, 48); + Brace10.addBox(0F, -3F, -1F, 5, 2, 2); + Brace10.setRotationPoint(25F, 4F, 0F); + Brace10.setTextureSize(128, 128); + Brace10.mirror = true; + setRotation(Brace10, 2.9147F, 0F, 0F); + Brace11 = new ModelRenderer(this, 20, 48); + Brace11.addBox(0F, -3F, -1F, 5, 2, 2); + Brace11.setRotationPoint(25F, 4F, 0F); + Brace11.setTextureSize(128, 128); + Brace11.mirror = true; + setRotation(Brace11, -1.919862F, 0F, 0F); + Brace12 = new ModelRenderer(this, 20, 48); + Brace12.addBox(0F, -3F, -1F, 5, 2, 2); + Brace12.setRotationPoint(25F, 4F, 0F); + Brace12.setTextureSize(128, 128); + Brace12.mirror = true; + setRotation(Brace12, -1.27409F, 0F, 0F); + Disc1 = new ModelRenderer(this, 36, 54); + Disc1.addBox(0F, -3.5F, -1.5F, 2, 7, 3); + Disc1.setRotationPoint(15F, 4F, 0F); + Disc1.setTextureSize(128, 128); + Disc1.mirror = true; + setRotation(Disc1, 0F, 0F, 0F); + Disc2 = new ModelRenderer(this, 46, 54); + Disc2.addBox(0F, -3.5F, -1.5F, 2, 7, 3); + Disc2.setRotationPoint(15F, 4F, 0F); + Disc2.setTextureSize(128, 128); + Disc2.mirror = true; + setRotation(Disc2, 0.7853982F, 0F, 0F); + Disc3 = new ModelRenderer(this, 36, 44); + Disc3.addBox(0F, -3.5F, -1.5F, 2, 7, 3); + Disc3.setRotationPoint(15F, 4F, 0F); + Disc3.setTextureSize(128, 128); + Disc3.mirror = true; + setRotation(Disc3, 1.570796F, 0F, 0F); + Disc4 = new ModelRenderer(this, 46, 44); + Disc4.addBox(0F, -3.5F, -1.5F, 2, 7, 3); + Disc4.setRotationPoint(15F, 4F, 0F); + Disc4.setTextureSize(128, 128); + Disc4.mirror = true; + setRotation(Disc4, 2.356194F, 0F, 0F); + Disc5 = new ModelRenderer(this, 56, 54); + Disc5.addBox(0F, -3.5F, -1.5F, 1, 7, 3); + Disc5.setRotationPoint(2F, 4F, 0F); + Disc5.setTextureSize(128, 128); + Disc5.mirror = true; + setRotation(Disc5, 0F, 0F, 0F); + Disc6 = new ModelRenderer(this, 56, 44); + Disc6.addBox(0F, -3.5F, -1.5F, 1, 7, 3); + Disc6.setRotationPoint(2F, 4F, 0F); + Disc6.setTextureSize(128, 128); + Disc6.mirror = true; + setRotation(Disc6, 1.570796F, 0F, 0F); + Disc7 = new ModelRenderer(this, 64, 52); + Disc7.addBox(0F, -3.5F, -1.5F, 1, 7, 3); + Disc7.setRotationPoint(2F, 4F, 0F); + Disc7.setTextureSize(128, 128); + Disc7.mirror = true; + setRotation(Disc7, 0.7853982F, 0F, 0F); + Disc8 = new ModelRenderer(this, 72, 52); + Disc8.addBox(0F, -3.5F, -1.5F, 1, 7, 3); + Disc8.setRotationPoint(2F, 4F, 0F); + Disc8.setTextureSize(128, 128); + Disc8.mirror = true; + setRotation(Disc8, 2.356194F, 0F, 0F); + BodyF1 = new ModelRenderer(this, 80, 48); + BodyF1.addBox(0F, 0F, 0F, 7, 10, 4); + BodyF1.setRotationPoint(-9F, -1F, -2F); + BodyF1.setTextureSize(128, 128); + BodyF1.mirror = true; + setRotation(BodyF1, 0F, 0F, 0F); + BodyF2 = new ModelRenderer(this, 64, 34); + BodyF2.addBox(0F, 0F, 0F, 7, 4, 10); + BodyF2.setRotationPoint(-9F, 2F, -5F); + BodyF2.setTextureSize(128, 128); + BodyF2.mirror = true; + setRotation(BodyF2, 0F, 0F, 0F); + BodyF3 = new ModelRenderer(this, 98, 32); + BodyF3.addBox(0F, 0F, 0F, 7, 8, 8); + BodyF3.setRotationPoint(-9F, 0F, -4F); + BodyF3.setTextureSize(128, 128); + BodyF3.mirror = true; + setRotation(BodyF3, 0F, 0F, 0F); + BodyR1 = new ModelRenderer(this, 102, 55); + BodyR1.addBox(0F, 0F, 0F, 8, 4, 3); + BodyR1.setRotationPoint(-9.5F, 4.5F, -6F); + BodyR1.setTextureSize(128, 128); + BodyR1.mirror = true; + setRotation(BodyR1, 0F, 0F, 0F); + BodyR2 = new ModelRenderer(this, 102, 48); + BodyR2.addBox(0F, 0F, 0F, 8, 3, 4); + BodyR2.setRotationPoint(-9.5F, 5F, -6.5F); + BodyR2.setTextureSize(128, 128); + BodyR2.mirror = true; + setRotation(BodyR2, 0F, 0F, 0F); + BodyL1 = new ModelRenderer(this, 106, 17); + BodyL1.addBox(0F, 0F, 0F, 8, 4, 3); + BodyL1.setRotationPoint(-9.5F, 4.5F, 3F); + BodyL1.setTextureSize(128, 128); + BodyL1.mirror = true; + setRotation(BodyL1, 0F, 0F, 0F); + BodyL2 = new ModelRenderer(this, 104, 10); + BodyL2.addBox(0F, 0F, 0F, 8, 3, 4); + BodyL2.setRotationPoint(-9.5F, 5F, 2.5F); + BodyL2.setTextureSize(128, 128); + BodyL2.mirror = true; + setRotation(BodyL2, 0F, 0F, 0F); + BackP1 = new ModelRenderer(this, 54, 32); + BackP1.addBox(0F, 0F, 0F, 1, 8, 4); + BackP1.setRotationPoint(-10F, 0F, -2F); + BackP1.setTextureSize(128, 128); + BackP1.mirror = true; + setRotation(BackP1, 0F, 0F, 0F); + BackP2 = new ModelRenderer(this, 36, 32); + BackP2.addBox(0F, 0F, 0F, 1, 4, 8); + BackP2.setRotationPoint(-10F, 2F, -4F); + BackP2.setTextureSize(128, 128); + BackP2.mirror = true; + setRotation(BackP2, 0F, 0F, 0F); + BackP3 = new ModelRenderer(this, 20, 30); + BackP3.addBox(0F, 0F, 0F, 1, 7, 7); + BackP3.setRotationPoint(-10F, 0.5F, -3.5F); + BackP3.setTextureSize(128, 128); + BackP3.mirror = true; + setRotation(BackP3, 0F, 0F, 0F); + Block = new ModelRenderer(this, 98, 64); + Block.addBox(0F, 0F, 0F, 5, 9, 10); + Block.setRotationPoint(-27F, -1F, -5F); + Block.setTextureSize(128, 128); + Block.mirror = true; + setRotation(Block, 0F, 0F, 0F); + AchsleF = new ModelRenderer(this, 0, 34); + AchsleF.addBox(0F, 0F, 0F, 1, 2, 2); + AchsleF.setRotationPoint(-22F, 3F, -1F); + AchsleF.setTextureSize(128, 128); + AchsleF.mirror = true; + setRotation(AchsleF, 0F, 0F, 0F); + Drum1 = new ModelRenderer(this, 100, 24); + Drum1.addBox(0F, 0F, 0F, 11, 5, 3); + Drum1.setRotationPoint(-21F, 1.5F, -1.5F); + Drum1.setTextureSize(128, 128); + Drum1.mirror = true; + setRotation(Drum1, 0F, 0F, 0F); + Drum2 = new ModelRenderer(this, 96, 2); + Drum2.addBox(0F, 0F, 0F, 11, 3, 5); + Drum2.setRotationPoint(-21F, 2.5F, -2.5F); + Drum2.setTextureSize(128, 128); + Drum2.mirror = true; + setRotation(Drum2, 0F, 0F, 0F); + DrumT = new ModelRenderer(this, 34, 26); + DrumT.addBox(0F, 0F, 0F, 12, 1, 5); + DrumT.setRotationPoint(-22F, 0F, -2.5F); + DrumT.setTextureSize(128, 128); + DrumT.mirror = true; + setRotation(DrumT, 0F, 0F, 0F); + StickBase = new ModelRenderer(this, 6, 33); + StickBase.addBox(0F, 0F, 0F, 3, 2, 3); + StickBase.setRotationPoint(-26F, -3F, -1.5F); + StickBase.setTextureSize(128, 128); + StickBase.mirror = true; + setRotation(StickBase, 0F, 0F, 0F); + Stick = new ModelRenderer(this, 28, 72); + Stick.addBox(0F, -7F, 0F, 2, 7, 2); + Stick.setRotationPoint(-25.5F, -3F, -1F); + Stick.setTextureSize(128, 128); + Stick.mirror = true; + setRotation(Stick, 0F, 0F, 0.5235988F); + AchsleB = new ModelRenderer(this, 56, 66); + AchsleB.addBox(0F, 0F, 0F, 3, 2, 2); + AchsleB.setRotationPoint(-30F, 3F, -1F); + AchsleB.setTextureSize(128, 128); + AchsleB.mirror = true; + setRotation(AchsleB, 0F, 0F, 0F); + Motor1 = new ModelRenderer(this, 80, 66); + Motor1.addBox(0F, 0F, 0F, 5, 6, 4); + Motor1.setRotationPoint(-35F, 1F, -2F); + Motor1.setTextureSize(128, 128); + Motor1.mirror = true; + setRotation(Motor1, 0F, 0F, 0F); + Motor2 = new ModelRenderer(this, 76, 76); + Motor2.addBox(0F, 0F, 0F, 5, 4, 6); + Motor2.setRotationPoint(-35F, 2F, -3F); + Motor2.setTextureSize(128, 128); + Motor2.mirror = true; + setRotation(Motor2, 0F, 0F, 0F); + Pipe1 = new ModelRenderer(this, 62, 64); + Pipe1.addBox(0F, 0F, 0F, 16, 1, 1); + Pipe1.setRotationPoint(-23F, -1F, -6F); + Pipe1.setTextureSize(128, 128); + Pipe1.mirror = true; + setRotation(Pipe1, 0F, 0F, 0.2617994F); + Frame1 = new ModelRenderer(this, 0, 103); + Frame1.addBox(0F, 0F, 0F, 1, 1, 11); + Frame1.setRotationPoint(-1F, -2F, -5.5F); + Frame1.setTextureSize(128, 128); + Frame1.mirror = true; + setRotation(Frame1, 0F, 0F, 0F); + Frame2 = new ModelRenderer(this, 24, 73); + Frame2.addBox(0F, 0F, 0F, 1, 5, 1); + Frame2.setRotationPoint(-1F, -1.5F, -6F); + Frame2.setTextureSize(128, 128); + Frame2.mirror = true; + setRotation(Frame2, 0F, 0F, 0F); + Frame3 = new ModelRenderer(this, 28, 70); + Frame3.addBox(0F, 0F, 0F, 6, 1, 1); + Frame3.setRotationPoint(-6.5F, 3F, -6F); + Frame3.setTextureSize(128, 128); + Frame3.mirror = true; + setRotation(Frame3, 0F, 0F, 0F); + Frame4 = new ModelRenderer(this, 52, 66); + Frame4.addBox(0F, 0F, 0F, 1, 3, 1); + Frame4.setRotationPoint(-1F, -1.5F, 5F); + Frame4.setTextureSize(128, 128); + Frame4.mirror = true; + setRotation(Frame4, 0F, 0F, 0F); + Grip = new ModelRenderer(this, 0, 95); + Grip.addBox(0F, 0F, 0F, 2, 2, 6); + Grip.setRotationPoint(-3F, 0F, 5F); + Grip.setTextureSize(128, 128); + Grip.mirror = true; + setRotation(Grip, 0F, 0F, 0F); + Pipe2 = new ModelRenderer(this, 28, 68); + Pipe2.addBox(-11F, 0F, 0F, 11, 1, 1); + Pipe2.setRotationPoint(-26F, -1F, -6F); + Pipe2.setTextureSize(128, 128); + Pipe2.mirror = true; + setRotation(Pipe2, 0F, 0F, -0.6108652F); + PipeT = new ModelRenderer(this, 0, 84); + PipeT.addBox(0F, 0F, 0F, 1, 1, 10); + PipeT.setRotationPoint(-34.5F, 4.5F, -5F); + PipeT.setTextureSize(128, 128); + PipeT.mirror = true; + setRotation(PipeT, 0F, 0F, 0F); + Pipe3 = new ModelRenderer(this, 28, 66); + Pipe3.addBox(-11F, 0F, 0F, 11, 1, 1); + Pipe3.setRotationPoint(-26F, -1F, 5F); + Pipe3.setTextureSize(128, 128); + Pipe3.mirror = true; + setRotation(Pipe3, 0F, 0F, -0.6108652F); + Pipe4 = new ModelRenderer(this, 28, 64); + Pipe4.addBox(0F, 0F, 0F, 16, 1, 1); + Pipe4.setRotationPoint(-23F, -1F, 5F); + Pipe4.setTextureSize(128, 128); + Pipe4.mirror = true; + setRotation(Pipe4, 0F, 0F, 0.2617994F); + AmmoFrame = new ModelRenderer(this, 0, 0); + AmmoFrame.addBox(0F, 0F, 0F, 10, 12, 12); + AmmoFrame.setRotationPoint(-21F, 9F, -6F); + AmmoFrame.setTextureSize(128, 128); + AmmoFrame.mirror = true; + setRotation(AmmoFrame, 0F, 0F, 0F); + ClampB = new ModelRenderer(this, 0, 73); + ClampB.addBox(0F, 0F, 0F, 4, 3, 8); + ClampB.setRotationPoint(-25F, 8F, -4F); + ClampB.setTextureSize(128, 128); + ClampB.mirror = true; + setRotation(ClampB, 0F, 0F, 0F); + ClampF = new ModelRenderer(this, 0, 64); + ClampF.addBox(0F, 0F, 0F, 8, 3, 6); + ClampF.setRotationPoint(-11F, 9F, -3F); + ClampF.setTextureSize(128, 128); + ClampF.mirror = true; + setRotation(ClampF, 0F, 0F, 0F); + AmmoBox = new ModelRenderer(this, 44, 0); + AmmoBox.addBox(0F, 0F, 0F, 9, 11, 11); + AmmoBox.setRotationPoint(-20.5F, 9.5F, -5.5F); + AmmoBox.setTextureSize(128, 128); + AmmoBox.mirror = true; + setRotation(AmmoBox, 0F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float rot) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + rot *= 0.0025F; + + Barrel1.rotateAngleX += rot; + Barrel2.rotateAngleX += rot; + Barrel3.rotateAngleX += rot; + Barrel4.rotateAngleX += rot; + Barrel5.rotateAngleX += rot; + Barrel6.rotateAngleX += rot; + Brace1.rotateAngleX += rot; + Brace2.rotateAngleX += rot; + Brace3.rotateAngleX += rot; + Brace4.rotateAngleX += rot; + Brace5.rotateAngleX += rot; + Brace6.rotateAngleX += rot; + Brace7.rotateAngleX += rot; + Brace8.rotateAngleX += rot; + Brace9.rotateAngleX += rot; + Brace10.rotateAngleX += rot; + Brace11.rotateAngleX += rot; + Brace12.rotateAngleX += rot; + Disc1.rotateAngleX += rot; + Disc2.rotateAngleX += rot; + Disc3.rotateAngleX += rot; + Disc4.rotateAngleX += rot; + Disc5.rotateAngleX += rot; + Disc6.rotateAngleX += rot; + Disc7.rotateAngleX += rot; + Disc8.rotateAngleX += rot; + + FrontP1.render(f5); + FrontP2.render(f5); + FrontP3.render(f5); + Barrel1.render(f5); + Barrel2.render(f5); + Barrel3.render(f5); + Barrel4.render(f5); + Barrel5.render(f5); + Barrel6.render(f5); + Brace1.render(f5); + Brace2.render(f5); + Brace3.render(f5); + Brace4.render(f5); + Brace5.render(f5); + Brace6.render(f5); + Brace7.render(f5); + Brace8.render(f5); + Brace9.render(f5); + Brace10.render(f5); + Brace11.render(f5); + Brace12.render(f5); + Disc1.render(f5); + Disc2.render(f5); + Disc3.render(f5); + Disc4.render(f5); + Disc5.render(f5); + Disc6.render(f5); + Disc7.render(f5); + Disc8.render(f5); + BodyF1.render(f5); + BodyF2.render(f5); + BodyF3.render(f5); + BodyR1.render(f5); + BodyR2.render(f5); + BodyL1.render(f5); + BodyL2.render(f5); + BackP1.render(f5); + BackP2.render(f5); + BackP3.render(f5); + Block.render(f5); + AchsleF.render(f5); + Drum1.render(f5); + Drum2.render(f5); + DrumT.render(f5); + StickBase.render(f5); + Stick.render(f5); + AchsleB.render(f5); + Motor1.render(f5); + Motor2.render(f5); + Pipe1.render(f5); + Frame1.render(f5); + Frame2.render(f5); + Frame3.render(f5); + Frame4.render(f5); + Grip.render(f5); + Pipe2.render(f5); + PipeT.render(f5); + Pipe3.render(f5); + Pipe4.render(f5); + AmmoFrame.render(f5); + ClampB.render(f5); + ClampF.render(f5); + AmmoBox.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + +} diff --git a/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index a85f04470..8fcb92c92 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.IConsumer; import com.hbm.inventory.MachineRecipes; import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; @@ -34,7 +35,7 @@ public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInv private static final int[] slots_top = new int[] {0}; private static final int[] slots_bottom = new int[] {2, 3, 4, 5}; - private static final int[] slots_side = new int[] {1}; + private static final int[] slots_side = new int[] {0, 1}; private String customName; @@ -115,7 +116,11 @@ public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInv return false; } - return true; + if(i == 1) { + return itemStack.getItem() instanceof ItemBattery; + } + + return !(itemStack.getItem() instanceof ItemBattery); } @Override diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java b/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java index c6421a930..9f073499f 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java @@ -573,23 +573,23 @@ public class TileEntityMachineReactorLarge extends TileEntity IInventory chest = (IInventory)te; - Item waste = ModItems.waste_uranium; + Item waste = ModItems.waste_uranium_hot; switch(type) { case PLUTONIUM: - waste = ModItems.waste_plutonium; + waste = ModItems.waste_plutonium_hot; break; case MOX: - waste = ModItems.waste_mox; + waste = ModItems.waste_mox_hot; break; case SCHRABIDIUM: - waste = ModItems.waste_schrabidium; + waste = ModItems.waste_schrabidium_hot; break; case THORIUM: - waste = ModItems.waste_thorium; + waste = ModItems.waste_thorium_hot; break; default: - waste = ModItems.waste_uranium; + waste = ModItems.waste_uranium_hot; break; } diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java index bd2ed9198..a7987049c 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java @@ -689,7 +689,7 @@ public class TileEntityMachineReactorSmall extends TileEntity 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); + worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, ModBlocks.toxic_block); RadiationSavedData data = RadiationSavedData.getData(worldObj); data.incrementRad(worldObj, xCoord, zCoord, 1000F, 2000F); diff --git a/com/hbm/tileentity/machine/TileEntityWasteDrum.java b/com/hbm/tileentity/machine/TileEntityWasteDrum.java new file mode 100644 index 000000000..c5a90ad1d --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityWasteDrum.java @@ -0,0 +1,240 @@ +package com.hbm.tileentity.machine; + +import java.util.Arrays; + +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemCassette.SoundType; +import com.hbm.items.tool.ItemCassette.TrackType; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.TESirenPacket; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +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.tileentity.TileEntity; + +public class TileEntityWasteDrum extends TileEntity implements ISidedInventory { + + private ItemStack slots[]; + + private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; + + public boolean lock = false; + + private String customName; + + public TileEntityWasteDrum() { + slots = new ItemStack[12]; + } + + @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.wasteDrum"; + } + + @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 1; + } + + @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) { + + Item item = itemStack.getItem(); + + return item == ModItems.waste_mox_hot || + item == ModItems.waste_plutonium_hot || + item == ModItems.waste_schrabidium_hot || + item == ModItems.waste_thorium_hot || + item == ModItems.waste_uranium_hot; + } + + @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); + + slots = new ItemStack[getSizeInventory()]; + + 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); + + NBTTagList list = new NBTTagList(); + + 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 slots_arr; + } + + @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) { + + Item item = itemStack.getItem(); + + return item == ModItems.waste_mox || + item == ModItems.waste_plutonium || + item == ModItems.waste_schrabidium || + item == ModItems.waste_thorium || + item == ModItems.waste_uranium; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + int water = 0; + + if(worldObj.getBlock(xCoord + 1, yCoord, zCoord) == Blocks.water || worldObj.getBlock(xCoord + 1, yCoord, zCoord) == Blocks.flowing_water) + water++; + if(worldObj.getBlock(xCoord - 1, yCoord, zCoord) == Blocks.water || worldObj.getBlock(xCoord - 1, yCoord, zCoord) == Blocks.flowing_water) + water++; + if(worldObj.getBlock(xCoord, yCoord + 1, zCoord) == Blocks.water || worldObj.getBlock(xCoord, yCoord + 1, zCoord) == Blocks.flowing_water) + water++; + if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == Blocks.water || worldObj.getBlock(xCoord, yCoord - 1, zCoord) == Blocks.flowing_water) + water++; + if(worldObj.getBlock(xCoord, yCoord, zCoord + 1) == Blocks.water || worldObj.getBlock(xCoord, yCoord, zCoord + 1) == Blocks.flowing_water) + water++; + if(worldObj.getBlock(xCoord, yCoord, zCoord - 1) == Blocks.water || worldObj.getBlock(xCoord, yCoord, zCoord - 1) == Blocks.flowing_water) + water++; + + if(water > 0) { + + int r = 60 * 60 * 20 / water; + + for(int i = 0; i < 12; i++) { + + if(worldObj.rand.nextInt(r) == 0) { + + if(slots[i] != null) { + + if(slots[i].getItem() == ModItems.waste_uranium_hot) + slots[i] = new ItemStack(ModItems.waste_uranium); + else if(slots[i].getItem() == ModItems.waste_plutonium_hot) + slots[i] = new ItemStack(ModItems.waste_plutonium); + else if(slots[i].getItem() == ModItems.waste_thorium_hot) + slots[i] = new ItemStack(ModItems.waste_thorium); + else if(slots[i].getItem() == ModItems.waste_mox_hot) + slots[i] = new ItemStack(ModItems.waste_mox); + else if(slots[i].getItem() == ModItems.waste_schrabidium_hot) + slots[i] = new ItemStack(ModItems.waste_schrabidium); + } + } + } + } + } + } +}