From 4af9e010a96f86c8138a39c38c4d9ec37e0efc6e Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sun, 24 Jul 2016 12:46:41 +0200 Subject: [PATCH] Hunter chopper + CMB steel --- assets/hbm/lang/de_DE.lang | 9 + assets/hbm/lang/en_US.lang | 9 + .../textures/blocks/block_combine_steel.png | Bin 0 -> 434 bytes .../blocks/block_magnetized_tungsten.png | Bin 0 -> 517 bytes assets/hbm/textures/blocks/fwatz_computer.png | Bin 0 -> 275 bytes .../textures/blocks/fwatz_conductor_side.png | Bin 0 -> 384 bytes assets/hbm/textures/blocks/fwatz_cooler.png | Bin 0 -> 261 bytes .../hbm/textures/blocks/fwatz_cooler_top.png | Bin 0 -> 341 bytes assets/hbm/textures/blocks/fwatz_core.png | Bin 0 -> 503 bytes assets/hbm/textures/blocks/fwatz_hatch.png | Bin 0 -> 432 bytes assets/hbm/textures/blocks/fwatz_plasma.png | Bin 0 -> 4244 bytes .../textures/blocks/fwatz_plasma.png.mcmeta | 45 ++ assets/hbm/textures/blocks/fwatz_scaffold.png | Bin 0 -> 358 bytes assets/hbm/textures/blocks/fwatz_tank.png | Bin 0 -> 335 bytes assets/hbm/textures/blocks/reix_bottom.png | Bin 0 -> 360 bytes assets/hbm/textures/blocks/reix_side.png | Bin 0 -> 963 bytes .../hbm/textures/blocks/reix_side.png.mcmeta | 3 + assets/hbm/textures/blocks/reix_top.png | Bin 0 -> 302 bytes assets/hbm/textures/blocks/white_cable.png | Bin 0 -> 344 bytes .../hbm/textures/blocks/white_cable_icon.png | Bin 0 -> 293 bytes .../hbm/textures/blocks/white_wire_coated.png | Bin 0 -> 424 bytes .../hbm/textures/gui/gui_cmb_manufactory.png | Bin 0 -> 3110 bytes assets/hbm/textures/items/chopper_blades.png | Bin 0 -> 263 bytes assets/hbm/textures/items/chopper_gun.png | Bin 0 -> 289 bytes assets/hbm/textures/items/chopper_head.png | Bin 0 -> 321 bytes assets/hbm/textures/items/chopper_tail.png | Bin 0 -> 274 bytes assets/hbm/textures/items/chopper_torso.png | Bin 0 -> 308 bytes assets/hbm/textures/items/chopper_wing.png | Bin 0 -> 326 bytes assets/hbm/textures/items/combine_scrap.png | Bin 0 -> 297 bytes assets/hbm/textures/items/grenade_tau.png | Bin 0 -> 313 bytes .../textures/items/ingot_combine_steel.png | Bin 0 -> 295 bytes .../items/ingot_magnetized_tungsten.png | Bin 0 -> 322 bytes .../textures/items/plate_combine_steel.png | Bin 0 -> 269 bytes assets/hbm/textures/items/wand_d.png | Bin 0 -> 250 bytes .../items/wire_magnetized_tungsten.png | Bin 0 -> 245 bytes assets/hbm/textures/models/bullet.png | Bin 0 -> 185 bytes assets/hbm/textures/models/chopperBomb.png | Bin 0 -> 404 bytes assets/hbm/textures/models/emplacer.png | Bin 0 -> 175 bytes assets/hbm/textures/models/tau.png | Bin 0 -> 184 bytes com/hbm/blocks/BlockReactor.java | 10 + com/hbm/blocks/FWatzCore.java | 19 + com/hbm/blocks/FWatzHatch.java | 111 ++++ com/hbm/blocks/ModBlocks.java | 34 ++ com/hbm/blocks/MudBlock.java | 79 +-- com/hbm/blocks/ReinforcedBlock.java | 2 +- com/hbm/entity/EntityBullet.java | 87 ++- com/hbm/entity/EntityChopperMine.java | 146 +++++ com/hbm/entity/EntityGrenadeTau.java | 55 ++ com/hbm/entity/EntityHunterChopper.java | 396 ++++++++++++++ com/hbm/entity/EntityRocket.java | 11 +- com/hbm/explosion/ExplosionChaos.java | 46 ++ com/hbm/gui/MachineRecipes.java | 501 +++++++++--------- com/hbm/items/GunXVL1456.java | 33 +- com/hbm/items/ItemDrop.java | 49 ++ com/hbm/items/ItemGrenade.java | 7 +- com/hbm/items/ItemStarterKit.java | 2 + com/hbm/items/ItemWandD.java | 48 ++ com/hbm/items/ModItems.java | 55 +- com/hbm/lib/HbmChestContents.java | 2 +- com/hbm/lib/Library.java | 29 + com/hbm/lib/ModDamageSource.java | 36 ++ com/hbm/main/ClientProxy.java | 9 + com/hbm/main/CraftingManager.java | 3 +- com/hbm/main/MainRegistry.java | 16 +- com/hbm/render/ModelBullet.java | 45 ++ com/hbm/render/ModelChopperMine.java | 45 ++ com/hbm/render/ModelRocket.java | 108 ++-- com/hbm/render/ProtoCopter.java | 128 +++++ com/hbm/render/RenderChopperMine.java | 38 ++ com/hbm/render/RenderHunterChopper.java | 41 ++ com/hbm/render/RenderRocket.java | 59 ++- 71 files changed, 1916 insertions(+), 400 deletions(-) create mode 100644 assets/hbm/textures/blocks/block_combine_steel.png create mode 100644 assets/hbm/textures/blocks/block_magnetized_tungsten.png create mode 100644 assets/hbm/textures/blocks/fwatz_computer.png create mode 100644 assets/hbm/textures/blocks/fwatz_conductor_side.png create mode 100644 assets/hbm/textures/blocks/fwatz_cooler.png create mode 100644 assets/hbm/textures/blocks/fwatz_cooler_top.png create mode 100644 assets/hbm/textures/blocks/fwatz_core.png create mode 100644 assets/hbm/textures/blocks/fwatz_hatch.png create mode 100644 assets/hbm/textures/blocks/fwatz_plasma.png create mode 100644 assets/hbm/textures/blocks/fwatz_plasma.png.mcmeta create mode 100644 assets/hbm/textures/blocks/fwatz_scaffold.png create mode 100644 assets/hbm/textures/blocks/fwatz_tank.png create mode 100644 assets/hbm/textures/blocks/reix_bottom.png create mode 100644 assets/hbm/textures/blocks/reix_side.png create mode 100644 assets/hbm/textures/blocks/reix_side.png.mcmeta create mode 100644 assets/hbm/textures/blocks/reix_top.png create mode 100644 assets/hbm/textures/blocks/white_cable.png create mode 100644 assets/hbm/textures/blocks/white_cable_icon.png create mode 100644 assets/hbm/textures/blocks/white_wire_coated.png create mode 100644 assets/hbm/textures/gui/gui_cmb_manufactory.png create mode 100644 assets/hbm/textures/items/chopper_blades.png create mode 100644 assets/hbm/textures/items/chopper_gun.png create mode 100644 assets/hbm/textures/items/chopper_head.png create mode 100644 assets/hbm/textures/items/chopper_tail.png create mode 100644 assets/hbm/textures/items/chopper_torso.png create mode 100644 assets/hbm/textures/items/chopper_wing.png create mode 100644 assets/hbm/textures/items/combine_scrap.png create mode 100644 assets/hbm/textures/items/grenade_tau.png create mode 100644 assets/hbm/textures/items/ingot_combine_steel.png create mode 100644 assets/hbm/textures/items/ingot_magnetized_tungsten.png create mode 100644 assets/hbm/textures/items/plate_combine_steel.png create mode 100644 assets/hbm/textures/items/wand_d.png create mode 100644 assets/hbm/textures/items/wire_magnetized_tungsten.png create mode 100644 assets/hbm/textures/models/bullet.png create mode 100644 assets/hbm/textures/models/chopperBomb.png create mode 100644 assets/hbm/textures/models/emplacer.png create mode 100644 assets/hbm/textures/models/tau.png create mode 100644 com/hbm/blocks/FWatzCore.java create mode 100644 com/hbm/blocks/FWatzHatch.java create mode 100644 com/hbm/entity/EntityChopperMine.java create mode 100644 com/hbm/entity/EntityGrenadeTau.java create mode 100644 com/hbm/entity/EntityHunterChopper.java create mode 100644 com/hbm/items/ItemDrop.java create mode 100644 com/hbm/items/ItemWandD.java create mode 100644 com/hbm/render/ModelBullet.java create mode 100644 com/hbm/render/ModelChopperMine.java create mode 100644 com/hbm/render/ProtoCopter.java create mode 100644 com/hbm/render/RenderChopperMine.java create mode 100644 com/hbm/render/RenderHunterChopper.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 6e09105aa..8ea52e93e 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -11,6 +11,7 @@ death.attack.euthanizedSelf=%1$s hat sich selbst eingeschläfert, was für ein V death.attack.euthanizedSelf2=%1$s gewinnt den Darwin Award. death.attack.tau=%1$s wurde von %2$s mit negativ geladenen Tauonen durchsiebt. death.attack.tauBlast=%1$s lud die XVL1456 zu lange auf und wurde in Stücke gerissen. +death.attack.chopperBullet=%1$s wurde von %2$s gerekt. item.redstone_sword.name=Redstoneschwert item.big_sword.name=Großes Schwert @@ -185,6 +186,10 @@ item.wire_advanced_alloy.name=Supraleiter item.coil_advanced_alloy.name=Supraleitende Magnetspule item.coil_advanced_torus.name=Supraleitende Ringspule item.lithium.name=Lithiumwürfel +item.ingot_magnetized_tungsten.name=Magnetisierter Wolframbarren +item.ingot_combine_steel.name=CMB-Stahlbarren +item.plate_combine_steel.name=CMB-Stahlplatte +item.wire_magnetized_tungsten.name=4000K Hochtemperaturensupraleiter item.nugget_u235.name=U235-Nugget item.nugget_u238.name=U238-Nugget @@ -222,6 +227,8 @@ tile.block_trinitite.name=Trinititblock tile.block_beryllium.name=Berylliumblock tile.block_waste.name=Atommüllblock tile.block_advanced_alloy.name=Fortgeschrittener Legierungsblock +tile.block_magnetized_tungsten.name=Magnetisierter Wolframblock +tile.block_combine_steel.name=CMB-Stahlblock tile.ore_aluminium.name=Aluminiumerz tile.ore_copper.name=Kupfererz @@ -414,6 +421,7 @@ item.grenade_electric.name=Blitzbombe item.grenade_poison.name=Giftgranate item.grenade_gas.name=Gasgranate item.grenade_plasma.name=Plasmagranate +item.grenade_tau.name=Taugranate item.grenade_schrabidium.name=Schrabidiumgranate item.grenade_nuke.name=Mark VI Bohrgranate item.grenade_nuclear.name=Nuka-Granate @@ -508,6 +516,7 @@ entity.hbm.entity_bullet.name=Patrone entity.hbm.entity_rocket.name=Rakete entity.hbm.entity_schrabnel.name=Schrabnel entity.entity_mob_nuclear_creeper.name=Nuklearer Creeper +entity.entity_mob_hunter_chopper.name=Jagdschrauber item.cap_aluminium.name=Aluminiumdeckel item.hull_small_steel.name=Kleine Stahlhülle diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index a2b12e133..db71ee205 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -11,6 +11,7 @@ death.attack.euthanizedSelf=%1$s euthanized himself, what a dork. death.attack.euthanizedSelf2=%1$s wins the Darwin Award. death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. +death.attack.chopperBullet=%1$s was rekt by %2$s. item.redstone_sword.name=Redstone Sword item.big_sword.name=Great Sword @@ -185,6 +186,10 @@ item.wire_advanced_alloy.name=Super Conductor item.coil_advanced_alloy.name=Super Conducting Coil item.coil_advanced_torus.name=Super Conducting Ring Coil item.lithium.name=Lithium Cube +item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot +item.ingot_combine_steel.name=CMB Steel Ingot +item.plate_combine_steel.name=CMB Steel Plate +item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor item.nugget_u235.name=U235 Nugget item.nugget_u238.name=U238 Nugget @@ -222,6 +227,8 @@ tile.block_trinitite.name=Block of Trinitite tile.block_beryllium.name=Block of Beryllium tile.block_waste.name=Block of Nuclear Waste tile.block_advanced_alloy.name=Block of Advanced Alloy +tile.block_magnetized_tungsten.name=Block of Magnetized Tungsten +tile.block_combine_steel.name=Block of CMB Steel tile.ore_aluminium.name=Aluminium Ore tile.ore_copper.name=Copper Ore @@ -414,6 +421,7 @@ item.grenade_electric.name=Lightning Bomb item.grenade_poison.name=Poison Grenade item.grenade_gas.name=Gas Grenade item.grenade_plasma.name=Plasma Grenade +item.grenade_tau.name=Tau Grenade item.grenade_schrabidium.name=Schrabidium Grenade item.grenade_nuke.name=Mark VI Drill Grenade item.grenade_nuclear.name=Nuka Grenade @@ -508,6 +516,7 @@ entity.hbm.entity_bullet.name=Bullet entity.hbm.entity_rocket.name=Rocket entity.hbm.entity_schrabnel.name=Schrabnel entity.entity_mob_nuclear_creeper.name=Nuclear Creeper +entity.entity_mob_hunter_chopper.name=Hunter Chopper item.cap_aluminium.name=Aluminium Cap item.hull_small_steel.name=Small Steel Shell diff --git a/assets/hbm/textures/blocks/block_combine_steel.png b/assets/hbm/textures/blocks/block_combine_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..6bb9df62411c149ad82494dbb7f5a2d647af6042 GIT binary patch literal 434 zcmV;j0ZsmiP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^5z3JSmg00AONL_t(IPnD9%YC=H}MH_rL>%w8-2Z-W; zZbZdd2t*Riw1~R!142SH#7&5j!Qr=anv&+xfd|5&D4Oo7TenNaV)s7ZrQ?i3p-DXc zkVrfxlT)HV9td0qgJXd^DwA2%>z~kUZrknePUnXRwc5vjqR~4=4eQhc{lM?PDwp4i z#ig4{<=v3azvOby+3XW2b)h@-dOMVKyT3$o62U4D41As>{eaosVhV*--a!0a&lj85jmL?W>N cg5!+-0J(j`#LtFt?f?J)07*qoM6N<$f(G`tzyJUM literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/block_magnetized_tungsten.png b/assets/hbm/textures/blocks/block_magnetized_tungsten.png new file mode 100644 index 0000000000000000000000000000000000000000..1f121b0ccc49cdbc04c2596836ac81100539864d GIT binary patch literal 517 zcmV+g0{Z=lP)<{98FWQhbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMF)*zP3cvsW0fI?HK~y+TJ(63FfO*^-Wqj|31hAdo;{4Jt1&f|3Zh`8iDi zmHxO@RQEkpx3<6EPh+fax1Tf>y~#3`XzDD{yRy`_d7dOm6h-I0_rBjaj!DnMaC*HQ z$MHPRXd0ug(FCWc4ZiQYu1kkBkxCPS4HQX5uPztuH_uJeGz?=`6#KHY#yD0L?g(Ai z4^;&=njRX|hA<34f(H@=snd0&*kUMdqSx1}#*dq6pQNpT>d7fC10n=fj9d(c;Fb%B^W+7@IVmkd*cOfl!mF>j|%}!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVT(F9Ky z#}EtusS^%zHW=`@8aFM^dmxkdU}txQp5CK1ZbDB^ns)@$&Hl4TZSB{4XM?sso-wU; zrlDJQ?@xY*&yoRKJM!3G@4Iai?yzH_WI>o#_GLsH!K{pFW&7^ SsWt$*jlt8^&t;ucLK6TGr)OON literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/fwatz_conductor_side.png b/assets/hbm/textures/blocks/fwatz_conductor_side.png new file mode 100644 index 0000000000000000000000000000000000000000..822c86ba4bff2d0c3db4095f2383e4418c88e18d GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+L6~vJ#O${~LCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33Jwt=FTwDi$ivD`K zIEGmGZ=H0Ti!o55wS1;bkq2L}T*4xiJeAgmP7|H^#M`*}6}%p~8TDRHt_Zuo#aqfW z#-R4|_FHH7f4dT;BqLX8qwAW<&h*zKMW);LQDL*DB7U>%EkD%IV`? zM^}aU`)G)Lf8XNd+}Qs33TySj*KeN`&CV(N>t(mUcGAf;mtHPirt8qL?7_{u?`uy7 zg?_bOo4G7gs!j0f*ZwHI|G(Md!VC{Qlh!pz5M|D>%NAdL|E@zp-xaP_*%Mbfe4MgW zGT5j4oRjLEy)Hg$tFcqi`gqN$i^UVB>rb3v!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVTQIn^O zV~B5&OpYnO^>H6AoMui!lS z(u(>63BS$&Ssh>QMQ3N+dU%1swd>}GRmL~ESDd^y_n?_;ja|?ck&k;PZsQ49!mb?2 zrX#=WyZ5$tJUfm#hAuc{mX)V3etXrauPT4$eCBTQkN?&s*_#P;4TGnvpUXO@geCwi CfnR(8 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/fwatz_cooler_top.png b/assets/hbm/textures/blocks/fwatz_cooler_top.png new file mode 100644 index 0000000000000000000000000000000000000000..c4eb67842577df6f921aca1715a7f29cc78c13a5 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$ijI1^IEGmGmrgL`J7gfhQfU`!Wi@?@=H*MzqR-roc+HTcqPP0%y4pwI zvd*b7{rkC@;dr5i@~ybOI~pGk-uixbWyj)x^G<8hg=HC+UH2-pX*O&NW)w?UJLSmY zK!cC9U1w?zzE*shdt0RRpu{rIbyGL|dRo=;W$(si`OCTDwJQs`{yOYsh_n5#dcaFv zn~`tdOsx;Qm#GF8$SZu?C=@0XevoDTdM0^=w~dSR{s_uzvkG_lu%6sH$#i**N2bZe?^J zG%heMF)*zP3cvsW0dz@3K~y+Tg;GmO13?fiNSJ&lN)z$T?>UFm`jw7P%S-(GN z+u?}ox`ttdh^kKS;7VNaEvo;Fkl891mTcCJ&K@dYn95WpHV&`;Fn6r z#o`gGh%6}r7j&@g8`NtyuV3cmeo7vvjA_UZdrxGK4-<*>%2bN2bZe?^J zG%heMF)*zP3cvsW0WC>HK~y+Tb&=gm0#Ojf7Zi2wWiU1`5xlWK892oqKH~}BgOzg40 zh4;6ST!4k&YF(B}hvo879G|w^SJmoqt#%?3A%VJ#nhW~j&&gXB7#rt&n64-2B z6a-lKozAs>tCb1|fzq5nm&UJDHj~Noc>F{w&e7~tVZLU<%+zf>N)|Nk^s<0*y-j1EPyQFzX&oX0IFeafs%sv aljH|bCW0`mhKB0^0000rA(%SpIc+kW4i!qD@{%Dn z>~>l>^P41h&ws);9MlHqP60{UEPnNZTgJ+}Azmxl6zkz|Z9$pCB=xCqdlOViIDK64g{x-2gzdqo<{A zVWVT2nHW-}n->2~%kRs-cMAj4$m?`pv8%a?@KocQ=4yf;mA1CNEIs~nXuE*09MpsxTnBtMcw8Yar8Gl|ya0diTd(@_Hc_E~3*NDHavs@L9?mRf zx+ud`dv^4@>yr$26z7C)Q@t3vTn{qkzq5H1+_VGpv!xl{`8sn&{QS-;|BVGIW4M71 z`y=v9*njLf+_rjx`QW1K>JB-{x^$5d%J_qPQJd1`zaE>WkHmh=8a@}I{CO4Tw#$?= zIxbE#RxU+ShmqWy>%x+Jk0#m`c8;|kDipWy-Om=^J^q1BEK%~7{e|yM+{OOtbBNbs z`kha=SgwfQ-T8``>!!>YlW~f-KkdXGRqoF}xeC3g<+*C#!iW}x4nhZJsU2G2?&T(XXy zp@)|i8hs6$a(bI{C>mGL%5c1@^quCNuKelNxaDHuspZa26^(d=UZhG>dFgp0R}bIg zKghF4T+JqLWyXf#6+G1L8!Gcnc%Cpx^X2!*OT@NuJpH3#kV5fq>Y-@`q}@>_#rY)^ z=BSDYtsXpO)Of|9hWqUC(Qd~khX{TaGF=!1nrIp z<-DUis2)ObMey@qU`W8yhri7x9~L;{h1@GOm6BqI@B8MoOSMycbN8}r{9Q>eS+@7S z`QoU!0^`TCUyVT4j6Sk)hCTDN9dQh@uoqvL;I8N}qaURFWZmOTQDoraiY&0v>^qD;|Z1PRW z%DZ)RDFJn(vbSSOy@<-<659B47EF`<;!(FSI>mIlgy+#qN;>gCv_mc*B;Fh;jS-h| z>>~x1n99$U!WETzvkX>K$tuzAvkqo@r7zIW!|i?5`+Riz-&q9`{C)3 zXHL=@FKdsE;Pp~<&6$((jTy9fCQSb@mYj)K<^yZR_LZnd^^|5YFKHi@Vc!kCqnj$x zAQPqWx0ygLVuh4G&|ezCf96Z&3!}Kky%Npu`HkMC>Z>^D6i@MwuCdH#_pzrcE2oFN zRg}3ObOYpc3stns<>(9RU4lOtXP;|gxpbb5fHudJGKD@3Y8sb^sYL16xC=B`hI?jX z6wQh74{Ft(Le!#v4cS$L=xSo!Nl>&bL4~I4$lF%C9=_eA?%6(%Z?I!2DVFvkDoEq+ z7ds4T5W}iW=W?is3GO72r#964*vVlQSX3QjV{t>UTjJW)85^9Hr@!0_hNf` z@95{Dl+c&YefISHcOO|+Vyc>L^ypU_aqdsP)kZdEUUE7$%y7}Tx;>r z_f6^gL9YkGd={z5DYCVT{ftjbj%?W%!D%iNxxC9Z(iT2a2R0H}z8TGd{*}kBF#~KS>bG*5dARLpoww()UyFaT4tQlJz4OMZ4n5BUGjcf|t zRcQ;ULX#q2h{AeXeidT>M$JZ_@^_O7z)Zp>vyglD@cd!QmBL?d;Fl-3`tNV*%`8k* zZ<`c!;=1)s4^Vu6dc#ft3Mx=Gg(RKlU0JFsZ)`l2%Y1X^1^K`}C3Q}O)&gRVDFakS zX1Y{{k&6-y1(Q%t_~n}v5JJd8?8fnKT0*zU1vM(%c%pX$NTNQyJL&n6tkZ+3TPT%( zGNpkbcWfKyuPjg#)Jhu}6m!C5fDcfr=s0%X*z~^a+^W)i*?`<%)5TLo&`EI*+wO*q zG*<64TXnh;uvF(#jMW;Y>T2{?YRIiiXLK8}JA9=?UQds~iQ7^3S~oHEbF_ z2_3`~d)8Z$-bmip%f({LD_bUpi*+lqITrdVhqY~-Vqv6mytVN* z2Qtg8YRy$22CDXc$r_XY^xLYNLl>l7&GjCJ(k zp}Z*>tErm3)lU-3Z~j~BR+I?Wh!eEO&=_xMGc zT01$4At%Q97HBGV)K);n!R_AK)gWJ*x65Gp112~9z_%2FMa^7mAGfnvgA4)6u_c?g&0ccit>LF`$QMf=VZopth(CEq z=v{XdP*F&v_n}6;I+RM$PUa6^Pd%G%4%!WDu(se*pqLXBiYGWHvL)_29L6)B$bW+} zC;pLxMCkpa7YPg5xY=K9(M~Mz3|^0>vc4No$SOC~Hda%h>l%#Xc@}GO10Tq+S(fXZ zl*Txktn+yI?9G_+-^#Hb(h78wtf*2_qC95=2{d=FcyS$0Q2Ta1&Nt9JHPZi?pqoSa z5Vp_2ehMz}+=I3fp;oi=he0UCuyqC*xA&z6tRyJ1b>p<6+$DH{_!q(bu2*mHcTSa1 z4eSVHT)N>{t;7z?OdW2K%~m&4nwfh!iNWzQd@DMHY{|7Vsmw-8LWdf(78JNx+W}!` z97x8x8@>&zW01NV#os*T-oNIM!Qg|ye#|52a=6^{FkRtaP330!*VQzp#pyOXC?|PF z;9`f&Sa4L&)AoDb>?X8c@`2t>)>uwom_*KHD$;5@cI5R)_j_-Yi3kU7OAg|GJicD{ z8IxjQ|F#3Ba>z@AT?tBGmg|vFbrp?9xh?#F&;M%uc)r0?XnAXZyP-|aJ9HcQ5DNX2 zZ4m!j`rT_sp^-bF*dz^k5oJS`^Eez;z9`2IkIpV9jXm6NZc9;5^}J!52R7QA$Q$U` z17WY0q$`yT-HJvb2iO!?KAIyyT^j+oo(s#8^rgNDIf%Mq*TIQ|f{2Of3Y;wHDn>kl zffrUwiZ1(1EvYIctVJWzPE?CsQD(ubc6lyJj~HT=!teyBo2rI>x}PhW{#{eks1P;C z`ypfOgx6~x*r48qh|EwFQYT9D>}CIMGS+8{{$akV+B0w>*!W(UYz}s;SJP@ppRt8F zpCI_-1>P&&z*DRv8GfAfMJ->FLlhRn-E}?6`9Fhk`VC$yFGlm<5l>ODcS}x(0P3c& zD=t}Q^_P=_$@%^Q*@aaI+0+H|lFlJbSdVTrf7WNp^vG47xsyJtanq*ay0t!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVT(PK{+ z#}Etu(us~-hYSQ`bNV^X#Qk9VebwzT5Rq>W)-Izc$Mk)pcxFE}InAg@pt> zxg*hWCeXTF;>}slH9C@iGK!{a7Vp^nUG;|Hh8xBj#cy=EELI=nb_jp=Bq&>BVt@0k zy{BcqNwzii-;p>mJ=O8~z4Z&`K3<)}v$TB81kK_J6F1e@h51!)zG3?zUi$b&%WuAH z(UX{qQ_R=0DS1e*`LjB~n{9);G`Ftm^VmdKI;Vst0D1w5 AdH?_b literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/fwatz_tank.png b/assets/hbm/textures/blocks/fwatz_tank.png new file mode 100644 index 0000000000000000000000000000000000000000..248ae197db1c6cdc9f88ec051a088e33ae6166d0 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVT(HTz{ z#}Etuqm$2aH93g1vdjFr-ump2dO*R$Y?Z&)7tMF|54f=C`~K1v>pMn{${s&vd_4EC zz_K7jB=_W|WlKt(=WSnNaW8Pv8%0e3>!O&a~t+CP6zsn!PC{xWt~$(69BIthfV+h literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/reix_bottom.png b/assets/hbm/textures/blocks/reix_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c467cbb02dec5db22e1bb9b7378f3087bfba201b GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ zzQnY0b?MOU_JOtc@7FKW@xE%(TiVxsxT?R{p-n}hiG}f7!;SArp`r3j4Wb2`935sn zuaszOcU-0!=WisQxnO&)bzk!R@0qi{tl93)erwxT?}XTJALg71Vhwy|FCvwvr5@CX zGwoCEK9tRDD1K9Af$AC&*M+;*E#4@5`EjLIlg;_&{VKMCS414_J=`X8b8G}$nqCmB3l{an^LB{Ts526lu_ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/reix_side.png b/assets/hbm/textures/blocks/reix_side.png new file mode 100644 index 0000000000000000000000000000000000000000..91e155c8bb2135020f419ab63d761c9d55722a33 GIT binary patch literal 963 zcmeAS@N?(olHy`uVBq!ia0vp^0t^g{3>-{AmZ?FaB#>e(4sv&5Sa(k5C6L3C?&#~t zz_78O`%fY(kk47*5n0T@z;_sg8IR|$NC65;l(rIsj| z=o#o)<`~!cF)%Qjc)B=-WH`T_?wcpb#;@jj}>$J`uiOX zp871?b8t@{*^l;K73zFJAcaN!<(o;K6#Z{;q#T?(f4d-6yhqV_LX8kF{8MxBRA?c;^bO6-><`(s5AiceMp<#(&FpNxFn3x5^Xm%g1{dA(rw#b*`Tb_Ii|+T@Z;?3t^D1NSsb#8GQR_El;tZ9S z3SZLhZ9C%l;_RMWJc|DATccArp)NiQx5un5y+3_PNcQFTRNS_${1@}?^j_6h=b!Go zgUA2&)7gWjtpJlaqXKBg!y`gppMNSy!f^MW^tu^m|1r*}{5i+<<`qF;9%Jxy^>bP0 Hl+XkKas0Rj literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/reix_side.png.mcmeta b/assets/hbm/textures/blocks/reix_side.png.mcmeta new file mode 100644 index 000000000..d7b41bbd3 --- /dev/null +++ b/assets/hbm/textures/blocks/reix_side.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/assets/hbm/textures/blocks/reix_top.png b/assets/hbm/textures/blocks/reix_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6d8fc88b74aaf0b88468f4f2d941dd2298a5f02d GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJbC1rQ=rM> s`2%JRt~tfWB;Fln>Udz~tXa$aW)t)6efEvUK&LWzy85}Sb4q9e0Ik7p?*IS* literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/white_cable.png b/assets/hbm/textures/blocks/white_cable.png new file mode 100644 index 0000000000000000000000000000000000000000..c59723c58b18d1b6b2d04710c316f60a8ff17434 GIT binary patch literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmUKs7M+SzC{oH>NS%G}c0*}aI z1_r(ZAk3I`t&Du0a>Xs#->%zM=+$ud mdYNclT;Z}!lvI6;>1s;*b z3=Dh+L6~vJ#O${~L5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33JdXgi>&V1%sDzav4#C1_cmLn4HqqBLF&-C8w<^OVTW3KeKT6r%`i$3P9 z*9xD{iM&@GbG>!t*0w1^zh8*YdSr9{yPSzpugkvUOE$jrKew~-+Mflb$GJ*uz-Dg< hZ0Z%t`6ItfTz}p%Uw58a+(73tc)I$ztaD0e0ssPyY4QL7 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/white_wire_coated.png b/assets/hbm/textures/blocks/white_wire_coated.png new file mode 100644 index 0000000000000000000000000000000000000000..be4a5f12912290d41b9cce0fc3caa27d626566a8 GIT binary patch literal 424 zcmV;Z0ayNsP)<{97<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMIczh2P5=M_CP_p=R5(wSl1plZKoCXUm0+XsJMc4b0YUL0$s{BazuBF_19c#{ z2XP;{-PH#3A-s16MYmK}-MW_Ix~`^aj4{(RJo_s;az0(=n)iOC5qN%cg1S`~E6`9s;TmrKGlP$(%RAx~}`aZ`(GGqpWZ_aXrlPoWrTZjwKYQ(??uN6I{y1d}}{E({!Vb=;tjVHpJiX)m&McpikZY?F#XtbWHbas2m-Me>} zmzTMp^8f2URlv&m^YF?+A-g!Zay9&4Uf}wLZwFUDfhcSDSbz;JD;wF;zGsLVlptFW z$gYt=WQt$RL5T7TjUcN<93*44)HKvIHEIL}Spa-A8*>x4c%S#DkERY=if5O(@Y}OG z?jE*t(HSI958d|Ed;KhN$guE)=%!92+@kGgsvE}04nMu>X38&7! z34D_*Z#yZ(JbcSdYV7@dsiZ<~&rIa2ZRp~HU&ku#8_R5?PdcA!wa+~<#(Xi!mWVfd zKD9K{HBwy4S6UO$*h8EX=IqC*qPt5OZWT+tw#@l=l3UgK)P6akGk@yxACDYszM*DS zmU4NzOO5&Iu7a#uZ{}mI4gE4-<5J3vbe$sl%JlS}cG_hPzRYM9NJ9KgO_qGE20zE&OuFt{|TPZwA*afGwOvLuNCWjp_oQ!!k z7mqh3#g}WxeH)PFRZPYIeD-u%mt9uRgg)xoLvd-D+5sQk)WE2a>XrtNnt)2v7t_+n zbcmhoxhvuNF-wcP&<7q=e}ADEq~iADnaE7jT}LIy-0*QDkG3SUg{Qv7J-EMTPTuY8 z9DQ?swzBsdpXCoj&z-WYHHy*wOM9%WUZzTn)ibZgT^;q6;p)-TUJV9TS-A3S+;QRK zY1(pCO>bo!S+SA{c)01ZnV%JF&Wh1U*MHmmr=8}ZxX+Z2_+QWZo~6Fh{*(eSOvNm? z!<1u>iYI<~`yDv@>=jX6RciI>>?-P3p4AdXS+HC>ef#Uk)|m?S8@Me?^{TSjNo10! zUnb9i|7aW4Fmc{sv&A$Y_CVNAx@gWDb>H_w@umSEqAoj+dPPK(8o7l_El*3uFe@*> z$2&e-G@b3d>vpqAxi{}6Fb(RTvwqAPGd~Y3v=^vqmtiV+OKXd$by}5|bN4Y*I9=y2 zdlWb9K6>qzP(^SuCaFr(ne-@ZSm~t|rEkDZ>2N=ns^^Oy!UomWQPs89hN96Jgj+r+ zqv63tq`UZZr@&V)v(^4w1PL$pVwLAHNs?2y1-=)I%HbL>f#z;EpehRB3+ zTk-2vHN;SySSn*164SdqdzT?X;s3C1t)v}KrdKAs(BS?nUq0OO=R6U%eugVjC>bjt z;yXfl`cM&%yKl(SF@L6XMi#Pg?1rm!S2So)crbhM@aI}5X2yrLx-g9^VI*?L7JEe-qlE$RVJBwhqP zd$c{BY9((l#Z7G#+$fC5sPfOKCw%P6xxvd(kpum?44TdlnmY^4HX+u@(xpUxCw2*C z*c6gc9MM#~JefX`_G58(ssTn> zI$mL3!G$(e*pK?Kq6dS2h}iMO^udN>`CYRf7=zU@(Ks9qYI`se721?SOvLe0(! z6Dd^GZUYT=F0sQr(8tXV6`SoveHcs(vQ`X~WMF(5%L!@hwA34U#Hb1Lx>=qvSLdfG zXX+?O5L)10(XU_7Nmm_vg!V4hj*4(Lymm)^Xah}?uFtqphuBDM#^%ZKPNTY|2a8Z$ zX4IqCP@Qk{qsROS^mMntL4`_~CFfNMz!$f}p31UUf@V?fsb ztA$QjcT3)g7&Y}1pZGUqAkkkS#P85?+N|a zfu(8RJcS1fTt#uGcb{3H3aw?8}=?ZsMg9xFKgJ#CJIH?hS^;m{? zXYkgvzPUwIYn_Q7ov&<%n9)^&6I5UOZ`!(QjPW0`@@I|qqO(pDRxU&~77pgMro{BW E0dFxX*8l(j literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/chopper_blades.png b/assets/hbm/textures/items/chopper_blades.png new file mode 100644 index 0000000000000000000000000000000000000000..9907016d960aa6f75398e1da8ea95c588ddc8477 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$ipo7*978Ppm-YwpH7M{nm$UL8(zTiR-T#?U^ET$xZh8J)ZDInUe_Qp} z$}TILyv8`Do7KgPf6=k#{0|HVb5831y1ZJozoB4hib^$P76JjrEs{0 zsa_6X@xJhRueA1uuuqFW9$nMImvSKgM~}1YRN=6wwv!L|ZrK8zz~JfX=d#Wzp$Pz_ C%viqw literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/chopper_gun.png b/assets/hbm/textures/items/chopper_gun.png new file mode 100644 index 0000000000000000000000000000000000000000..acc106818d4ff89e8092779aa1d937711c81b811 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$iY9uxIEGmGFYR{}YEa;Cy}9cRTik)@E$_6>m27*Leu;;pW9rrlHv0;( zDM57?xguUImakYOD)8D+|KeG8PkA4&KLt*Y+D>>(`n=HS>!l>s9dj<7vpv+>%C?rJ zSToRD*@p9K)(1XK&cw&-3)(qlmPm3v2V2oJrxT`ncWdCJduO%+eCsy;hFF2AW eWM1RnD6F%0bK~BhqCbF+WAJqKb6Mw<&;$Ub0%Y(2 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/chopper_head.png b/assets/hbm/textures/items/chopper_head.png new file mode 100644 index 0000000000000000000000000000000000000000..6d6bbdfabf8a6a2d2624afd7f60f903270dbaece GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$iZ*(>IEGmGFYVtb+HAn%ayMw%!Ze9jIujIcw0UmwZ41=VOqciYlhZ%? z{N|&7id`LlT&-jRPX)<)+g|F?SB}|pa^L=x+wJ`p zKL1(pdpfVlf$Y^Qd@kR0n3x*5#WA<-4C@5Ps0nN5onF1yn=8htK!=|zCn0)`0#LT=By}Z;C1rt33 zJwt=FTwDi$ikduK978Ppm-d|&Y*65F*;%xNS!x0Id9mdG#uHoo6Jn;mc-XojWx9pZ zFIEv9VYump*iKCOukUrmsF- z)M81_#;>_9^6m2;FxZtg7quTQ{}R7C^4GN*)-JIH8H`=8Cs;EwFI*Iq=VdGkbPa>2 LtDnm{r-UW|9{pVQ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/chopper_torso.png b/assets/hbm/textures/items/chopper_torso.png new file mode 100644 index 0000000000000000000000000000000000000000..78ecfac237b37f09bb54b80b74b3bfe752b26b29 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$ik5h~IEGmGFYP}l*r33}^7*SLyIF$xzTBgd*_-X3v@|zdZ2Y*9lXE9` z$M=8YX~is?IbC8rcFl8U@QoLj;xTsK^8WeRO)?An%D>z4>)!F0`0Q$fQeIB0OZ{S@ zs70B#jNaJtWL)BMxi*K9cSDETsROCZTuM))O&F#+N^UApyAaBD;>NjINmt^J2(-Pn y|K91yleuHh0)L)Uin+3a%$qHnZoWBwn$>?o{9#75`wM~YW$<+Mb6Mw<&;$T318qzI literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/chopper_wing.png b/assets/hbm/textures/items/chopper_wing.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0c1ee440eac15d5f6b920359e763539c46ea31 GIT binary patch literal 326 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$ine*WIEGmGFYQ0ed)R=(t@f;;bV*~*#p3YJD~U#)+fEu>k?;7Byk^y_ zhmnTQYA3k4)CY>$uC@K8_{7{mL}X%E)U@j%Y^58y1zhWj0^S8aQuS%&Sn}+*O;JJc zJgv$7kCQ&UbA8I!vB{@($9r|-+lTBTx`IQuO(^WHc*#4JW82%aPbLT)XuW4JSykbm z*M#?rxIb=cy&=}TCc{INp=5H9$u%REulkJN=G&?4|G0bqnH4Un8h_Zf^1DsWpO^Ws RXbsQ@44$rjF6*2UngHuMd}aUu literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/combine_scrap.png b/assets/hbm/textures/items/combine_scrap.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5b8f3734b59a8169b1e6ccdd2cc3922f753747 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$ie`GcIEGmGFP(Uhw?RRG<>#*@%+edU?{9NTG7L*H7i%t`aaj19%cEqD zHE&oh9F?eNJS>-R!ovL0gUqh|+!jkdnXK)cwt_EYrevFHqUSvBP`*U}48cizrfq*) z(V=(J<2HBWoyi+dIaPM)oM1c~IMMO_L|>`extn6VcpB?9&mH-j?d!OD#`jmPZYp7c mE0}nvuUW(ZwBg6x7k*pYtII4TY~+BBWbkzLb6Mw<&;$Sm*lF?r literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/grenade_tau.png b/assets/hbm/textures/items/grenade_tau.png new file mode 100644 index 0000000000000000000000000000000000000000..64f6311cdb38904f6a1638f140ef1aba0e6a0a6d GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVT(Kb&P z#}EturG1KgOojrk-)&5J6Ps7O@)Y1;X=_#tR|=ey^}x|Cb2+P*fPRTx{k?N3Y4sO* z>laFQO_}s`&inKK{$F7EY!lsc(TU@jH0O_bE7(LMpNLOXIc4LkaPsMf%9zF{RW)2y zld=S!|Gg!!A)<-rRNhvO(|M`ySq_9Q_~+g@-QcpM&<|~uC7(kdtQSbx7tdR8>)7-K zQ$DDD|C`0Y>D4){oh87FW#)TFVGc2u_oo+0_a$HEO>bH6S@LGS1JDNyp00i_>zopr E0KI5(fdBvi literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/ingot_combine_steel.png b/assets/hbm/textures/items/ingot_combine_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..f2067374be697999e984ac8655b3eeb685598050 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$il%$IIEGmGU!Ay-w?RR`b^X#Uh8vR^(>H7^V-yZIC}c}75ZYcS@kF8g zQ0I!NAJx}CwsmT-_mw`sdg2n_%V+x7Cq_g~JKOX4RE*2HNg~cJF0*&di#XNEuy(gU*HBoc9C|I%rfHYM%Vb m!7Arf^ke(_rT*+2n57Rtnj^k{?J}Sf89ZJ6T-G@yGywomvT0`k literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/ingot_magnetized_tungsten.png b/assets/hbm/textures/items/ingot_magnetized_tungsten.png new file mode 100644 index 0000000000000000000000000000000000000000..edea1b776620baa01ce6769ca4288b3ea4c44d52 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwt=FTwDi$iZ*$=IEGmGU!CO0*P_7VYCY$GD7W}#Lp2q-L()Ev`nq?h#T{8)ma&no zt1Yt6-f%wK{r?Fq?wkwXe~kFQg2mv)oWtKYE!nA!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVTQJ1HS zV~B-+@{j-j?Oi2SD`-j_ObB2QI+DDG?aA}}g9pBS)0L1|&$w%sYlYzv2FE{a4KFe; z=QSH{^5&3Y2yR&;xJ+_UAft}|1%{H|6Kn-VzXZ(~VwHX7=rB9fNT{7;Na;1;2|9e> zLDOx97Nr`A<%~@U%np7o#{_s^NVGF9N#J2VaWsOp^Z0*B2ALh^A1?e5E&{rW!PC{x JWt~$(699xCS114g literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/wand_d.png b/assets/hbm/textures/items/wand_d.png new file mode 100644 index 0000000000000000000000000000000000000000..3524021bea820a8aca06a9e660693d3183f18a47 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVTQMsp! zV~B4aSU%sc>ecFwvoW%|8il?_ZD=mumIc!lvI6;>1s;*b z3=Dh+L6~vJ#O${~LCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33Jwt=FTwDi$ii$j4 z978Ppm-g)BJ)j`KqIpn|(X#YHW3p6XPex1Fb(>AB*Vy6&d6<>o@igdWge(YbbYqng z%?OcjpIW#sRz;ut+?vAJ6G`%W6$Y-K; kVTHqDrd}?Sf9%iLSo;?}i?i0t0NT#r>FVdQ&MBb@0AZU=-2eap literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/bullet.png b/assets/hbm/textures/models/bullet.png new file mode 100644 index 0000000000000000000000000000000000000000..2c6c09f0da15353fbdf8299d2cb8fff3c5eb1a8b GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^96-#%!3HEZpRM};b!1@J z*w6hZkrl}2EbxddW?llt5Xx+%A^r4=O Y!QU;?ltK5^d7vf+Pgg&ebxsLQ0G*LDH~;_u literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/chopperBomb.png b/assets/hbm/textures/models/chopperBomb.png new file mode 100644 index 0000000000000000000000000000000000000000..eafaceffa62e98a977a6c58e51e2445b34cdad07 GIT binary patch literal 404 zcmV;F0c-w=P)N2bZe?^J zG%heMF)*zP3cvsW0TD?=K~zXf#Z)m4gD?<_)IU^R`x8bsHa0evEKE#H{Gz|Bx_0k= z#ZeturwA6J4%P)bIv*w>nAtAodA4O)Y+YCDy3X3RO>1z_rfJ%R@8?k@6)>W4-}iZq z3JoSP##D76a=xEOkyPMqY53W;1Db>y0^>Ml^HT;;^Y;(W4NQYZFh)fRSThaZ&!b2x zU;;Bg08=QLo|=Gu0vM~g{{)PmX`C{E9zv$UH4mX00!V@>_43$H@2K z`*|E1)Yil6akKmNV*je?nl(+6Ct?MMX>050nqdsuP y1VHKr{|2@6Kmp+0)jye{h92|*YeJvv>CwK-IJ&HSV^;Y90000t{!21A{7U-yu=#Tm PP#=S*tDnm{r-UW|Gm;b!1@J z*w6hZkrl}2EbxddW?w Wb0QM&@2~*5h{4m<&t;ucLK6V*7&aRK literal 0 HcmV?d00001 diff --git a/com/hbm/blocks/BlockReactor.java b/com/hbm/blocks/BlockReactor.java index 5a7c00e61..e503a5f7a 100644 --- a/com/hbm/blocks/BlockReactor.java +++ b/com/hbm/blocks/BlockReactor.java @@ -81,6 +81,16 @@ public class BlockReactor extends Block { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":watz_conductor_top"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":watz_conductor_side"); } + if(this == ModBlocks.fwatz_conductor) + { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":block_combine_steel"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_conductor_side"); + } + if(this == ModBlocks.fwatz_cooler) + { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_cooler_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_cooler"); + } } @Override diff --git a/com/hbm/blocks/FWatzCore.java b/com/hbm/blocks/FWatzCore.java new file mode 100644 index 000000000..4c246cc7e --- /dev/null +++ b/com/hbm/blocks/FWatzCore.java @@ -0,0 +1,19 @@ +package com.hbm.blocks; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class FWatzCore extends BlockContainer { + + protected FWatzCore(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } + +} diff --git a/com/hbm/blocks/FWatzHatch.java b/com/hbm/blocks/FWatzHatch.java new file mode 100644 index 000000000..841adbae0 --- /dev/null +++ b/com/hbm/blocks/FWatzHatch.java @@ -0,0 +1,111 @@ +package com.hbm.blocks; + +import java.util.Random; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +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.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class FWatzHatch extends Block { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + private IIcon iconTop; + + protected FWatzHatch(Material p_i45394_1_) { + super(p_i45394_1_); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_hatch"); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_scaffold"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_scaffold"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : (metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon))); + } + + @Override + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) + { + return Item.getItemFromBlock(this); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + //this.setDefaultDirection(world, x, y, z); + } + + private void setDefaultDirection(World world, int x, int y, int z) { + if(!world.isRemote) + { + Block block1 = world.getBlock(x, y, z - 1); + Block block2 = world.getBlock(x, y, z + 1); + Block block3 = world.getBlock(x - 1, y, z); + Block block4 = world.getBlock(x + 1, y, z); + + byte b0 = 3; + + if(block1.func_149730_j() && !block2.func_149730_j()) + { + b0 = 3; + } + if(block2.func_149730_j() && !block1.func_149730_j()) + { + b0 = 2; + } + if(block3.func_149730_j() && !block4.func_149730_j()) + { + b0 = 5; + } + if(block4.func_149730_j() && !block3.func_149730_j()) + { + b0 = 4; + } + + world.setBlockMetadataWithNotify(x, y, z, b0, 2); + } + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) + { + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + } + if(i == 1) + { + world.setBlockMetadataWithNotify(x, y, z, 5, 2); + } + if(i == 2) + { + world.setBlockMetadataWithNotify(x, y, z, 3, 2); + } + if(i == 3) + { + world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + } +} diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 73007a3ca..ac0bcc208 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -64,6 +64,8 @@ public class ModBlocks { public static Block block_beryllium; public static Block block_schrabidium; public static Block block_advanced_alloy; + public static Block block_magnetized_tungsten; + public static Block block_combine_steel; public static Block reinforced_brick; public static Block reinforced_glass; @@ -220,6 +222,16 @@ public class ModBlocks { public static Block watz_core; public static final int guiID_watz_multiblock = 32; + public static Block fwatz_conductor; + public static Block fwatz_cooler; + public static Block fwatz_tank; + public static Block fwatz_scaffold; + public static Block fwatz_hatch; + public static Block fwatz_computer; + public static Block fwatz_core; + public static Block fwatz_plasma; + public static final int guiID_fwatz_multiblock = 33; + public static Block machine_converter_he_rf; public static final int guiID_converter_he_rf = 28; @@ -308,6 +320,8 @@ public class ModBlocks { block_beryllium = new BlockGeneric(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.tabBlock).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); block_schrabidium = new BlockGeneric(Material.iron).setBlockName("block_schrabidium").setCreativeTab(MainRegistry.tabBlock).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium"); block_advanced_alloy = new BlockGeneric(Material.iron).setBlockName("block_advanced_alloy").setCreativeTab(MainRegistry.tabBlock).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_advanced_alloy"); + block_magnetized_tungsten = new BlockGeneric(Material.iron).setBlockName("block_magnetized_tungsten").setCreativeTab(MainRegistry.tabBlock).setHardness(5.0F).setResistance(35.0F).setBlockTextureName(RefStrings.MODID + ":block_magnetized_tungsten"); + block_combine_steel = new BlockGeneric(Material.iron).setBlockName("block_combine_steel").setCreativeTab(MainRegistry.tabBlock).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_combine_steel"); reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.tabBlock).setLightOpacity(15).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); reinforced_glass = new ReinforcedBlock(Material.glass).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.tabBlock).setLightOpacity(0).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_glass"); @@ -432,6 +446,15 @@ public class ModBlocks { watz_conductor = new BlockReactor(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":watz_conductor"); watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":watz_computer"); + fwatz_conductor = new BlockReactor(Material.iron).setBlockName("fwatz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fwatz_conductor"); + fwatz_cooler = new BlockReactor(Material.iron).setBlockName("fwatz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fwatz_cooler"); + fwatz_tank = new ReinforcedBlock(Material.iron).setBlockName("fwatz_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fwatz_tank"); + fwatz_scaffold = new BlockGeneric(Material.iron).setBlockName("fwatz_scaffold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fwatz_scaffold"); + fwatz_hatch = new FWatzHatch(Material.iron).setBlockName("fwatz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fwatz_computer"); + fwatz_computer = new BlockGeneric(Material.iron).setBlockName("fwatz_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fwatz_computer"); + fwatz_core = new FWatzCore(Material.iron).setBlockName("fwatz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fwatz_core"); + fwatz_plasma = new BlockPlasma(Material.iron).setBlockName("fwatz_plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fwatz_plasma"); + machine_converter_he_rf = new BlockConverterHeRf(Material.iron).setBlockName("machine_converter_he_rf").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_converter_he_rf"); machine_converter_rf_he = new BlockConverterRfHe(Material.iron).setBlockName("machine_converter_rf_he").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_converter_rf_he"); @@ -512,6 +535,8 @@ public class ModBlocks { GameRegistry.registerBlock(block_trinitite, block_trinitite.getUnlocalizedName()); GameRegistry.registerBlock(block_waste, block_waste.getUnlocalizedName()); GameRegistry.registerBlock(block_schrabidium, ItemSchrabidiumBlock.class, block_schrabidium.getUnlocalizedName()); + GameRegistry.registerBlock(block_magnetized_tungsten, block_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(block_combine_steel, block_combine_steel.getUnlocalizedName()); //Reinforced Blocks GameRegistry.registerBlock(reinforced_brick, reinforced_brick.getUnlocalizedName()); @@ -633,6 +658,15 @@ public class ModBlocks { GameRegistry.registerBlock(watz_hatch, watz_hatch.getUnlocalizedName()); GameRegistry.registerBlock(watz_conductor, watz_conductor.getUnlocalizedName()); GameRegistry.registerBlock(watz_core, watz_core.getUnlocalizedName()); + + GameRegistry.registerBlock(fwatz_conductor, fwatz_conductor.getUnlocalizedName()); + GameRegistry.registerBlock(fwatz_scaffold, fwatz_scaffold.getUnlocalizedName()); + GameRegistry.registerBlock(fwatz_hatch, fwatz_hatch.getUnlocalizedName()); + GameRegistry.registerBlock(fwatz_computer, fwatz_computer.getUnlocalizedName()); + GameRegistry.registerBlock(fwatz_core, fwatz_core.getUnlocalizedName()); + GameRegistry.registerBlock(fwatz_cooler, fwatz_cooler.getUnlocalizedName()); + GameRegistry.registerBlock(fwatz_tank, fwatz_tank.getUnlocalizedName()); + GameRegistry.registerBlock(fwatz_plasma, fwatz_plasma.getUnlocalizedName()); //Launch Pads GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); diff --git a/com/hbm/blocks/MudBlock.java b/com/hbm/blocks/MudBlock.java index 7851d1259..007fa4e57 100644 --- a/com/hbm/blocks/MudBlock.java +++ b/com/hbm/blocks/MudBlock.java @@ -44,6 +44,7 @@ public class MudBlock extends BlockFluidClassic { damageSource = damage; setQuantaPerBlock(4); setCreativeTab(null); + displacements.put(this, false); } @SideOnly(Side.CLIENT) @@ -57,57 +58,63 @@ public class MudBlock extends BlockFluidClassic { flowingIcon = register.registerIcon(RefStrings.MODID + ":mud_flowing"); } + @Override public boolean canDisplace(IBlockAccess world, int x, int y, int z) { - if (world.getBlock(x, y, z).getMaterial().isLiquid()) + + if (world.getBlock(x, y, z).getMaterial().isLiquid()) { return false; + } return super.canDisplace(world, x, y, z); } + @Override public boolean displaceIfPossible(World world, int x, int y, int z) { - if (world.getBlock(x, y, z).getMaterial().isLiquid()) + + if (world.getBlock(x, y, z).getMaterial().isLiquid()) { return false; + } return super.displaceIfPossible(world, x, y, z); } public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { - entity.setInWeb(); - //if(entity instanceof EntityLivingBase) - //{ - // entity.attackEntityFrom(ModDamageSource.mudPoisoning, 8); - //} - if(entity instanceof EntityPlayer && Library.checkForHazmat((EntityPlayer)entity)) - { - /*Library.damageSuit(((EntityPlayer)entity), 0); - Library.damageSuit(((EntityPlayer)entity), 1); - Library.damageSuit(((EntityPlayer)entity), 2); - Library.damageSuit(((EntityPlayer)entity), 3);*/ - - } else if(entity instanceof EntityCreeper) { - EntityNuclearCreeper creep = new EntityNuclearCreeper(world); - creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - if(!entity.isDead) - if(!world.isRemote) - world.spawnEntityInWorld(creep); - entity.setDead(); - } else if(entity instanceof EntityVillager) { - EntityZombie creep = new EntityZombie(world); - creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - entity.setDead(); - if(!world.isRemote) - world.spawnEntityInWorld(creep); - } else if(entity instanceof EntityLivingBase && !(entity instanceof EntityNuclearCreeper) && !(entity instanceof EntityMooshroom) && !(entity instanceof EntityZombie)) - { - entity.attackEntityFrom(ModDamageSource.mudPoisoning, 8); - } + entity.setInWeb(); + // if(entity instanceof EntityLivingBase) + // { + // entity.attackEntityFrom(ModDamageSource.mudPoisoning, 8); + // } + if (entity instanceof EntityPlayer && Library.checkForHazmat((EntityPlayer) entity)) { + /* + * Library.damageSuit(((EntityPlayer)entity), 0); + * Library.damageSuit(((EntityPlayer)entity), 1); + * Library.damageSuit(((EntityPlayer)entity), 2); + * Library.damageSuit(((EntityPlayer)entity), 3); + */ + + } else if (entity instanceof EntityCreeper) { + EntityNuclearCreeper creep = new EntityNuclearCreeper(world); + creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); + if (!entity.isDead) + if (!world.isRemote) + world.spawnEntityInWorld(creep); + entity.setDead(); + } else if (entity instanceof EntityVillager) { + EntityZombie creep = new EntityZombie(world); + creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); + entity.setDead(); + if (!world.isRemote) + world.spawnEntityInWorld(creep); + } else if (entity instanceof EntityLivingBase && !(entity instanceof EntityNuclearCreeper) + && !(entity instanceof EntityMooshroom) && !(entity instanceof EntityZombie)) { + entity.attackEntityFrom(ModDamageSource.mudPoisoning, 8); + } } public void updateTick(World world, int x, int y, int z, Random rand) { super.updateTick(world, x, y, z, rand); } - - public int tickRate(World p_149738_1_) - { - return 15; - } + + public int tickRate(World p_149738_1_) { + return 15; + } } diff --git a/com/hbm/blocks/ReinforcedBlock.java b/com/hbm/blocks/ReinforcedBlock.java index e2ebff5cf..4c7b9714a 100644 --- a/com/hbm/blocks/ReinforcedBlock.java +++ b/com/hbm/blocks/ReinforcedBlock.java @@ -27,7 +27,7 @@ public class ReinforcedBlock extends Block { { Block block = p_149646_1_.getBlock(p_149646_2_, p_149646_3_, p_149646_4_); - if (this == ModBlocks.reinforced_glass) + if (this == ModBlocks.reinforced_glass || this == ModBlocks.fwatz_tank) { if (p_149646_1_.getBlockMetadata(p_149646_2_, p_149646_3_, p_149646_4_) != p_149646_1_.getBlockMetadata(p_149646_2_ - Facing.offsetsXForSide[p_149646_5_], p_149646_3_ - Facing.offsetsYForSide[p_149646_5_], p_149646_4_ - Facing.offsetsZForSide[p_149646_5_])) { diff --git a/com/hbm/entity/EntityBullet.java b/com/hbm/entity/EntityBullet.java index cb92d5110..b291029e4 100644 --- a/com/hbm/entity/EntityBullet.java +++ b/com/hbm/entity/EntityBullet.java @@ -154,6 +154,31 @@ public class EntityBullet extends Entity implements IProjectile { this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); this.setTau(isTau == "tauDay"); + this.setChopper(isTau == "chopper"); + this.setIsCritical(isTau != "chopper"); + } + + public EntityBullet(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, int dmgMin, int dmgMax, + boolean instakill, String isTau, EntityGrenadeTau grenade) { + super(p_i1756_1_); + this.renderDistanceWeight = 10.0D; + this.shootingEntity = p_i1756_2_; + + this.setSize(0.5F, 0.5F); + this.setLocationAndAngles(grenade.posX, grenade.posY + grenade.getEyeHeight(), grenade.posZ, + grenade.rotationYaw, grenade.rotationPitch); + this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; + this.posY -= 0.10000000149011612D; + this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; + this.setPosition(this.posX, this.posY, this.posZ); + this.yOffset = 0.0F; + this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) + * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) + * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); + this.setTau(isTau == "tauDay"); this.setIsCritical(true); } @@ -174,6 +199,7 @@ public class EntityBullet extends Entity implements IProjectile { protected void entityInit() { this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); this.dataWatcher.addObject(17, Byte.valueOf((byte) 0)); + this.dataWatcher.addObject(18, Byte.valueOf((byte) 0)); } /** @@ -241,7 +267,6 @@ public class EntityBullet extends Entity implements IProjectile { /** * Called to update the entity's position/logic. */ - // @Override @Override public void onUpdate() { super.onUpdate(); @@ -364,18 +389,35 @@ public class EntityBullet extends Entity implements IProjectile { DamageSource damagesource = null; - if (!this.getIsCritical()) { + //L: Crit + //R: Chop + //X: NOT + //O: Direct + + // X X Bullet + // \ | + // O-X Tau + // | / + // X-O Displacer + + if (!this.getIsCritical() && !this.getIsChopper()) { if (this.shootingEntity == null) { damagesource = ModDamageSource.causeBulletDamage(this, this); } else { damagesource = ModDamageSource.causeBulletDamage(this, shootingEntity); } - } else { + } else if(!this.getIsChopper()) { if (this.shootingEntity == null) { damagesource = ModDamageSource.causeTauDamage(this, this); } else { damagesource = ModDamageSource.causeTauDamage(this, shootingEntity); } + } else if(!this.getIsCritical()) { + if (this.shootingEntity == null) { + damagesource = ModDamageSource.causeDisplacementDamage(this, this); + } else { + damagesource = ModDamageSource.causeDisplacementDamage(this, shootingEntity); + } } if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) { @@ -426,12 +468,13 @@ public class EntityBullet extends Entity implements IProjectile { this.setDead(); } } else if (!this.getIsCritical()) { - this.motionX *= -0.10000000149011612D; + /*this.motionX *= -0.10000000149011612D; this.motionY *= -0.10000000149011612D; this.motionZ *= -0.10000000149011612D; this.rotationYaw += 180.0F; this.prevRotationYaw += 180.0F; - this.ticksInAir = 0; + this.ticksInAir = 0;*/ + this.setDead(); } } } else if (!this.getIsCritical()) { @@ -657,6 +700,16 @@ public class EntityBullet extends Entity implements IProjectile { } } + public void setChopper(boolean p_70243_1_) { + byte b0 = this.dataWatcher.getWatchableObjectByte(18); + + if (p_70243_1_) { + this.dataWatcher.updateObject(18, Byte.valueOf((byte) (b0 | 1))); + } else { + this.dataWatcher.updateObject(18, Byte.valueOf((byte) (b0 & -2))); + } + } + /** * Whether the arrow has a stream of critical hit particles flying behind * it. @@ -670,4 +723,28 @@ public class EntityBullet extends Entity implements IProjectile { byte b0 = this.dataWatcher.getWatchableObjectByte(17); return (b0 & 1) != 0; } + + public boolean getIsChopper() { + byte b0 = this.dataWatcher.getWatchableObjectByte(18); + return (b0 & 1) != 0; + } + + @Override + @SideOnly(Side.CLIENT) + public int getBrightnessForRender(float p_70070_1_) + { + if(this.getIsCritical() || this.getIsChopper()) + return 15728880; + else + return super.getBrightnessForRender(p_70070_1_); + } + + @Override + public float getBrightness(float p_70013_1_) + { + if(this.getIsCritical() || this.getIsChopper()) + return 1.0F; + else + return super.getBrightness(p_70013_1_); + } } diff --git a/com/hbm/entity/EntityChopperMine.java b/com/hbm/entity/EntityChopperMine.java new file mode 100644 index 000000000..1f3288369 --- /dev/null +++ b/com/hbm/entity/EntityChopperMine.java @@ -0,0 +1,146 @@ +package com.hbm.entity; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityChopperMine extends Entity implements IProjectile { + + public int timer = 0; + public Entity shooter; + private int field_145791_d = -1; + private int field_145792_e = -1; + private int field_145789_f = -1; + private boolean inGround; + + public EntityChopperMine(World p_i1582_1_) { + super(p_i1582_1_); + } + + public EntityChopperMine(World p_i1582_1_, double x, double y, double z, double moX, double moY, double moZ, Entity shooter) { + super(p_i1582_1_); + this.posX = x; + this.posY = y; + this.posZ = z; + + this.motionX = moX; + this.motionY = moY; + this.motionZ = moZ; + + this.shooter = shooter; + + this.setSize(12, 12); + + this.isImmuneToFire = true; + } + + @Override + public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, + float p_70186_8_) { + + } + + @Override + protected void entityInit() { + + } + + @Override + protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { + + } + + @Override + protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { + + } + + @Override + public void onUpdate() { + super.onUpdate(); + + + Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, + this.posZ + this.motionZ); + MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); + vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, + this.posZ + this.motionZ); + + if (movingobjectposition != null) { + vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, + movingobjectposition.hitVec.zCoord); + } + + Entity entity = null; + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, + this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + double d0 = 0.0D; + int i; + float f1; + + for (i = 0; i < list.size(); ++i) { + Entity entity1 = (Entity) list.get(i); + + if (entity1.canBeCollidedWith() && (entity1 != this.shooter)) { + f1 = 0.3F; + AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); + MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); + + if (movingobjectposition1 != null) { + double d1 = vec31.distanceTo(movingobjectposition1.hitVec); + + if (d1 < d0 || d0 == 0.0D) { + entity = entity1; + d0 = d1; + } + } + } + } + + if (entity != null) { + movingobjectposition = new MovingObjectPosition(entity); + } + + if (movingobjectposition != null && movingobjectposition.entityHit != null + && movingobjectposition.entityHit instanceof EntityPlayer) { + + worldObj.createExplosion(shooter, this.posX, this.posY, this.posZ, 5F, false); + this.setDead(); + } + + if(timer % 10 == 0 && timer % 20 != 0) + worldObj.playSoundAtEntity(this, "random.click", 10.0F, 1F); + if(timer % 20 == 0) + worldObj.playSoundAtEntity(this, "random.click", 10.0F, 1.5F); + + if(timer >= 100 || worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ).getMaterial() != Material.air) + { + worldObj.createExplosion(shooter, this.posX, this.posY, this.posZ, 5F, false); + this.setDead(); + } + + if(motionY > -0.85) + this.motionY -= 0.05; + + this.motionX *= 0.9; + this.motionZ *= 0.9; + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + + timer++; + } + +} diff --git a/com/hbm/entity/EntityGrenadeTau.java b/com/hbm/entity/EntityGrenadeTau.java new file mode 100644 index 000000000..970990ca2 --- /dev/null +++ b/com/hbm/entity/EntityGrenadeTau.java @@ -0,0 +1,55 @@ +package com.hbm.entity; + +import com.hbm.explosion.ExplosionChaos; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.monster.EntityBlaze; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityGrenadeTau extends EntityThrowable +{ + private static final String __OBFID = "CL_00001722"; + + public EntityGrenadeTau(World p_i1773_1_) + { + super(p_i1773_1_); + } + + public EntityGrenadeTau(World p_i1774_1_, EntityLivingBase p_i1774_2_) + { + super(p_i1774_1_, p_i1774_2_); + } + + public EntityGrenadeTau(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) + { + super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + } + + @Override + protected void onImpact(MovingObjectPosition p_70184_1_) + { + if (p_70184_1_.entityHit != null) + { + byte b0 = 0; + + if (p_70184_1_.entityHit instanceof EntityBlaze) + { + b0 = 3; + } + + p_70184_1_.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), b0); + } + + if (!this.worldObj.isRemote) + { + this.setDead(); + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, true); + ExplosionChaos.tauMeSinPi(this.worldObj, this.posX, this.posY, this.posZ, 100, this.getThrower(), this); + } + } +} diff --git a/com/hbm/entity/EntityHunterChopper.java b/com/hbm/entity/EntityHunterChopper.java new file mode 100644 index 000000000..3b295eca1 --- /dev/null +++ b/com/hbm/entity/EntityHunterChopper.java @@ -0,0 +1,396 @@ +package com.hbm.entity; + +import com.hbm.items.ModItems; +import com.hbm.lib.Library; +import com.hbm.lib.ModDamageSource; +import com.hbm.particles.EntitySmokeFX; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityFlying; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.boss.IBossDisplayData; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityLargeFireball; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.AchievementList; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.EnumDifficulty; +import net.minecraft.world.World; + +public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisplayData { + public int courseChangeCooldown; + public double waypointX; + public double waypointY; + public double waypointZ; + private Entity targetedEntity; + /** Cooldown time between target loss and new target aquirement. */ + private int aggroCooldown; + public int prevAttackCounter; + public int attackCounter; + public int mineDropCounter; + /** The explosion radius of spawned fireballs. */ + private int explosionStrength = 1; + private static final String __OBFID = "CL_00001689"; + public boolean isDying = false; + + public EntityHunterChopper(World p_i1735_1_) { + super(p_i1735_1_); + this.setSize(8.25F, 3.0F); + this.isImmuneToFire = true; + this.experienceValue = 500; + } + + @SideOnly(Side.CLIENT) + public boolean func_110182_bF() { + return this.dataWatcher.getWatchableObjectByte(16) != 0; + } + + /** + * Called when the entity is attacked. + */ + public boolean attackEntityFrom(DamageSource source, float amount) { + if (this.isEntityInvulnerable() || !(source.isExplosion() || ModDamageSource.getIsTau(source) || (ModDamageSource.getIsEmplacer(source) && source.getEntity() != this))) { + return false; + } else if(amount >= this.getHealth()) { + this.initDeath(); + return false; + } + + if(rand.nextInt(20) == 0) + { + if(!worldObj.isRemote) + { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); + this.dropDamageItem(); + } + } + + for (int j = 0; j < 3; j++) { + double d0 = rand.nextDouble() / 20 * rand.nextInt(2) == 0 ? -1 : 1; + double d1 = rand.nextDouble() / 20 * rand.nextInt(2) == 0 ? -1 : 1; + double d2 = rand.nextDouble() / 20 * rand.nextInt(2) == 0 ? -1 : 1; + + for (int i = 0; i < 8; i++) + if(this.worldObj.isRemote) + worldObj.spawnParticle("fireworksSpark", this.posX, this.posY, this.posZ, d0 * i, d1 * i, d2 * i); + } + + return super.attackEntityFrom(source, amount); + } + + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); + } + + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(1000.0D); + } + + protected void updateEntityActionState() { + if (!this.worldObj.isRemote && this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL) { + this.setDead(); + } + + if (!isDying) { + if (this.ticksExisted % 2 == 0) + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "fireworks.blast", 10.0F, 0.5F); + + this.despawnEntity(); + this.prevAttackCounter = this.attackCounter; + double d0 = this.waypointX - this.posX; + double d1 = this.waypointY - this.posY; + double d2 = this.waypointZ - this.posZ; + double d3 = d0 * d0 + d1 * d1 + d2 * d2; + + if (d3 < 1.0D || d3 > 3600.0D) { + if (this.targetedEntity != null) { + this.waypointX = targetedEntity.posX + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); + this.waypointZ = targetedEntity.posZ + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); + this.waypointY = this.worldObj.getHeightValue((int) waypointX, (int) waypointZ) + 10 + + rand.nextInt(15); + } else { + this.waypointX = this.posX + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); + this.waypointZ = this.posZ + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); + this.waypointY = this.worldObj.getHeightValue((int) waypointX, (int) waypointZ) + 10 + + rand.nextInt(15); + } + } + + if (this.courseChangeCooldown-- <= 0) { + this.courseChangeCooldown += this.rand.nextInt(5) + 2; + d3 = (double) MathHelper.sqrt_double(d3); + + if (this.isCourseTraversable(this.waypointX, this.waypointY, this.waypointZ, d3)) { + this.motionX += d0 / d3 * 0.1D; + this.motionY += d1 / d3 * 0.1D; + this.motionZ += d2 / d3 * 0.1D; + } else { + this.waypointX = this.posX + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); + this.waypointZ = this.posZ + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); + this.waypointY = this.worldObj.getHeightValue((int) waypointX, (int) waypointZ) + 10 + + rand.nextInt(15); + } + } + + if (this.targetedEntity != null && this.targetedEntity.isDead) { + this.targetedEntity = null; + } + + if (this.targetedEntity == null || this.attackCounter <= 0) { + // this.targetedEntity = + // this.worldObj.getClosestVulnerablePlayerToEntity(this, + // 100.0D); + this.targetedEntity = Library.getClosestEntityForChopper(worldObj, this.posX, this.posY, this.posZ, + 250); + + if (this.targetedEntity != null) { + this.aggroCooldown = 20; + } + } + + double d4 = 64.0D; + + if (this.targetedEntity != null && this.targetedEntity.getDistanceSqToEntity(this) < d4 * d4) { + double d8 = 2.0D; + Vec3 vec3 = this.getLook(1.0F); + double xStart = this.posX + vec3.xCoord * d8; + double yStart = this.posY - 0.5; + double zStart = this.posZ + vec3.zCoord * d8; + double d5 = this.targetedEntity.posX - xStart; + double d6 = this.targetedEntity.boundingBox.minY + (double) (this.targetedEntity.height / 2.0F) + - yStart; + double d7 = this.targetedEntity.posZ - zStart; + + ++this.attackCounter; + if (attackCounter >= 200) { + attackCounter -= 200; + System.out.println(this.targetedEntity.toString()); + } + + if (this.attackCounter % 2 == 0 && attackCounter >= 120) { + worldObj.playSoundAtEntity(this, "random.explode", 10.0F, 3.0F); + // EntityLargeFireball entitylargefireball = new + // EntityLargeFireball(this.worldObj, this, d5, d6, d7); + EntityBullet entityarrow = new EntityBullet(this.worldObj, this, 3.0F, 35, 45, false, "chopper"); + Vec3 vec2 = Vec3.createVectorHelper(d5 - 1 + rand.nextInt(3), d6 - 1 + rand.nextInt(3), + d7 - 1 + rand.nextInt(3)).normalize(); + double motion = 3; + entityarrow.motionX = vec2.xCoord * motion; + entityarrow.motionY = vec2.yCoord * motion; + entityarrow.motionZ = vec2.zCoord * motion; + // entitylargefireball.field_92057_e = + // this.explosionStrength; + entityarrow.setDamage(3 + rand.nextInt(5)); + // entitylargefireball.posX = this.posX + vec3.xCoord * d8; + // entitylargefireball.posY = this.posY + + // (double)(this.height / + // 2.0F) + 0.5D; + // entitylargefireball.posZ = this.posZ + vec3.zCoord * d8; + entityarrow.posX = xStart; + entityarrow.posY = yStart; + entityarrow.posZ = zStart; + // this.worldObj.spawnEntityInWorld(entitylargefireball); + this.worldObj.spawnEntityInWorld(entityarrow); + } + if (this.attackCounter >= 80 && this.attackCounter < 120) { + worldObj.playSoundAtEntity(this, "random.click", 10.0F, 0.5F + ((attackCounter / 100) - 0.8F)); + } + + this.mineDropCounter++; + if (mineDropCounter > 100 && rand.nextInt(15) == 0) { + EntityChopperMine mine = new EntityChopperMine(worldObj, this.posX, this.posY - 0.5, this.posZ, 0, -0.3, 0, this); + this.mineDropCounter = 0; + this.worldObj.spawnEntityInWorld(mine); + + if(rand.nextInt(3) == 0) + { + EntityChopperMine mine1 = new EntityChopperMine(worldObj, this.posX, this.posY - 0.5, this.posZ, 1, -0.3, 0, this); + EntityChopperMine mine2 = new EntityChopperMine(worldObj, this.posX, this.posY - 0.5, this.posZ, 0, -0.3, 1, this); + EntityChopperMine mine3 = new EntityChopperMine(worldObj, this.posX, this.posY - 0.5, this.posZ, -1, -0.3, 0, this); + EntityChopperMine mine4 = new EntityChopperMine(worldObj, this.posX, this.posY - 0.5, this.posZ, 0, -0.3, -1, this); + this.worldObj.spawnEntityInWorld(mine1); + this.worldObj.spawnEntityInWorld(mine2); + this.worldObj.spawnEntityInWorld(mine3); + this.worldObj.spawnEntityInWorld(mine4); + } + } + + } else { + + if (this.attackCounter > 0) { + this.attackCounter = 0; + } + } + + if (!this.worldObj.isRemote) { + byte b1 = this.dataWatcher.getWatchableObjectByte(16); + byte b0 = (byte) (this.attackCounter > 10 ? 1 : 0); + + if (b1 != b0) { + this.dataWatcher.updateObject(16, Byte.valueOf(b0)); + } + } + } else { + motionY -= 0.08; + if(Math.sqrt(Math.pow(this.motionX, 2) + Math.pow(this.motionZ, 2)) * 1.2 < 1.8) + { + this.motionX *= 1.2; + this.motionZ *= 1.2; + } + + if(rand.nextInt(30) == 0) + { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); + } + + this.worldObj.spawnEntityInWorld(new EntitySmokeFX(worldObj, this.posX, this.posY, this.posZ, 0, 0, 0)); + + if(this.onGround) + { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true); + this.dropItems(); + this.setDead(); + } + } + + float f3 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + if(this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) >= 10) + this.prevRotationYaw = this.rotationYaw -= 10; + if(this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) <= -10) + this.prevRotationYaw = this.rotationYaw += 10; + if(this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) < 10 && this.rotationYaw - (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI) > 10) + this.prevRotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(this.motionY, f3) * 180.0D / Math.PI); + } + + /** + * True if the ghast has an unobstructed line of travel to the waypoint. + */ + private boolean isCourseTraversable(double p_70790_1_, double p_70790_3_, double p_70790_5_, double p_70790_7_) { + double d4 = (this.waypointX - this.posX) / p_70790_7_; + double d5 = (this.waypointY - this.posY) / p_70790_7_; + double d6 = (this.waypointZ - this.posZ) / p_70790_7_; + AxisAlignedBB axisalignedbb = this.boundingBox.copy(); + + for (int i = 1; (double) i < p_70790_7_; ++i) { + axisalignedbb.offset(d4, d5, d6); + + if (!this.worldObj.getCollidingBoundingBoxes(this, axisalignedbb).isEmpty()) { + return false; + } + } + + return true; + } + + protected String getHurtSound() { + return "none"; + } + + protected String getDeathSound() { + return "none"; + } + + /** + * Drop 0-2 items of this living's type. @param par1 - Whether this entity + * has recently been hit by a player. @param par2 - Level of Looting used to + * kill this mob. + */ + protected void dropItems() { + + if(rand.nextInt(2) == 0) + this.dropItem(ModItems.chopper_head, 1); + if(rand.nextInt(2) == 0) + this.dropItem(ModItems.chopper_torso, 1); + if(rand.nextInt(2) == 0) + this.dropItem(ModItems.chopper_wing, 1); + if(rand.nextInt(3) == 0) + this.dropItem(ModItems.chopper_tail, 1); + if(rand.nextInt(3) == 0) + this.dropItem(ModItems.chopper_gun, 1); + if(rand.nextInt(3) == 0) + this.dropItem(ModItems.chopper_blades, 1); + + this.dropItem(ModItems.combine_scrap, rand.nextInt(8) + 1); + this.dropItem(ModItems.plate_combine_steel, rand.nextInt(5) + 1); + this.dropItem(ModItems.wire_magnetized_tungsten, rand.nextInt(3) + 1); + } + + /** + * Returns the volume for the sounds this mob makes. + */ + protected float getSoundVolume() { + return 10.0F; + } + + /** + * Checks if the entity's current position is a valid location to spawn this + * entity. + */ + public boolean getCanSpawnHere() { + return this.rand.nextInt(20) == 0 && super.getCanSpawnHere() + && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL; + } + + /** + * Will return how many at most can spawn in a chunk at once. + */ + public int getMaxSpawnedInChunk() { + return 1; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + public void writeEntityToNBT(NBTTagCompound p_70014_1_) { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setInteger("ExplosionPower", this.explosionStrength); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound p_70037_1_) { + super.readEntityFromNBT(p_70037_1_); + + if (p_70037_1_.hasKey("ExplosionPower", 99)) { + this.explosionStrength = p_70037_1_.getInteger("ExplosionPower"); + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) + { + return distance < 25000; + } + + public void initDeath() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10F, true); + isDying = true; + } + + public void dropDamageItem() { + int i = rand.nextInt(10); + + if(i < 6) + this.dropItem(ModItems.combine_scrap, 1); + else if(i > 7) + this.dropItem(ModItems.plate_combine_steel, 1); + else + this.dropItem(ModItems.wire_magnetized_tungsten, 1); + } +} diff --git a/com/hbm/entity/EntityRocket.java b/com/hbm/entity/EntityRocket.java index 1a8aefcdb..3c43c1eb4 100644 --- a/com/hbm/entity/EntityRocket.java +++ b/com/hbm/entity/EntityRocket.java @@ -403,12 +403,11 @@ public class EntityRocket extends Entity implements IProjectile } else { - this.motionX *= -0.10000000149011612D; - this.motionY *= -0.10000000149011612D; - this.motionZ *= -0.10000000149011612D; - this.rotationYaw += 180.0F; - this.prevRotationYaw += 180.0F; - this.ticksInAir = 0; + if (!this.worldObj.isRemote) + { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); + } + this.setDead(); } } else diff --git a/com/hbm/explosion/ExplosionChaos.java b/com/hbm/explosion/ExplosionChaos.java index 2bb90863b..9776d5641 100644 --- a/com/hbm/explosion/ExplosionChaos.java +++ b/com/hbm/explosion/ExplosionChaos.java @@ -5,6 +5,8 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.EntityBullet; +import com.hbm.entity.EntityGrenadeTau; import com.hbm.entity.EntityMirv; import com.hbm.entity.EntityMissileBase; import com.hbm.entity.EntityRocket; @@ -758,4 +760,48 @@ public class ExplosionChaos { } } + public static void tauMeSinPi(World world, double x, double y, double z, int count, Entity shooter, EntityGrenadeTau tau) { + + double d1 = 0; + double d2 = 0; + double d3 = 0; + EntityBullet fragment; + + if (shooter != null && shooter instanceof EntityPlayer) + for (int i = 0; i < count; i++) { + d1 = rand.nextDouble(); + d2 = rand.nextDouble(); + d3 = rand.nextDouble(); + + if (rand.nextInt(2) == 0) { + d1 *= -1; + } + + if (rand.nextInt(2) == 0) { + d2 *= -1; + } + + if (rand.nextInt(2) == 0) { + d3 *= -1; + } + + if (rand.nextInt(5) == 0) { + fragment = new EntityBullet(world, (EntityPlayer)shooter, 3.0F, 35, 45, false, "tauDay", tau); + fragment.setDamage(rand.nextInt(301) + 100); + } else { + fragment = new EntityBullet(world, (EntityPlayer)shooter, 3.0F, 35, 45, false, "eyyOk", tau); + fragment.setDamage(rand.nextInt(11) + 35); + } + + fragment.motionX = d1 * 5; + fragment.motionY = d2 * 5; + fragment.motionZ = d3 * 5; + fragment.shootingEntity = shooter; + + fragment.setIsCritical(true); + + world.spawnEntityInWorld(fragment); + } + } + } diff --git a/com/hbm/gui/MachineRecipes.java b/com/hbm/gui/MachineRecipes.java index 77e2c3deb..2acac51bd 100644 --- a/com/hbm/gui/MachineRecipes.java +++ b/com/hbm/gui/MachineRecipes.java @@ -14,363 +14,366 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class MachineRecipes { - + public MachineRecipes() { - + } - + public static MachineRecipes instance() { return new MachineRecipes(); } - + public static ItemStack getFurnaceProcessingResult(Item item, Item item2) { - return getFurnaceOutput(item ,item2); + return getFurnaceOutput(item, item2); } - + public static ItemStack getFurnaceOutput(Item item, Item item2) { - if(MainRegistry.enableDebugMode) { - if(item == Items.iron_ingot && item2 == Items.quartz || item == Items.quartz && item2 == Items.iron_ingot) { - return new ItemStack(ModBlocks.test_render, 1); + if (MainRegistry.enableDebugMode) { + if (item == Items.iron_ingot && item2 == Items.quartz + || item == Items.quartz && item2 == Items.iron_ingot) { + return new ItemStack(ModBlocks.test_render, 1); } } - if(item == ModItems.ingot_tungsten && item2 == Items.coal || item == Items.coal && item2 == ModItems.ingot_tungsten) { - return new ItemStack(ModItems.neutron_reflector, 2); + if (item == ModItems.ingot_tungsten && item2 == Items.coal + || item == Items.coal && item2 == ModItems.ingot_tungsten) { + return new ItemStack(ModItems.neutron_reflector, 2); } - - if(item == ModItems.ingot_lead && item2 == ModItems.ingot_copper || item == ModItems.ingot_copper && item2 == ModItems.ingot_lead) { - return new ItemStack(ModItems.neutron_reflector, 2); + if (item == ModItems.ingot_lead && item2 == ModItems.ingot_copper + || item == ModItems.ingot_copper && item2 == ModItems.ingot_lead) { + return new ItemStack(ModItems.neutron_reflector, 2); } - - if(item == ModItems.plate_lead && item2 == ModItems.plate_copper || item == ModItems.plate_copper && item2 == ModItems.plate_lead) { - return new ItemStack(ModItems.neutron_reflector, 1); + if (item == ModItems.plate_lead && item2 == ModItems.plate_copper + || item == ModItems.plate_copper && item2 == ModItems.plate_lead) { + return new ItemStack(ModItems.neutron_reflector, 1); } - - if(item == Items.iron_ingot && item2 == Items.coal || item == Items.coal && item2 == Items.iron_ingot) { - return new ItemStack(ModItems.ingot_steel, 2); + if (item == Items.iron_ingot && item2 == Items.coal || item == Items.coal && item2 == Items.iron_ingot) { + return new ItemStack(ModItems.ingot_steel, 2); } - - if(item == ModItems.ingot_copper && item2 == Items.redstone || item == Items.redstone && item2 == ModItems.ingot_copper) { - return new ItemStack(ModItems.ingot_red_copper, 2); + if (item == ModItems.ingot_copper && item2 == Items.redstone + || item == Items.redstone && item2 == ModItems.ingot_copper) { + return new ItemStack(ModItems.ingot_red_copper, 2); } - - if(item == ModItems.canister_empty && item2 == Items.coal || item == Items.coal && item2 == ModItems.canister_empty) { - return new ItemStack(ModItems.canister_fuel, 1); + if (item == ModItems.canister_empty && item2 == Items.coal + || item == Items.coal && item2 == ModItems.canister_empty) { + return new ItemStack(ModItems.canister_fuel, 1); } - - if(item == ModItems.ingot_red_copper && item2 == ModItems.ingot_steel || item == ModItems.ingot_steel && item2 == ModItems.ingot_red_copper) { - return new ItemStack(ModItems.ingot_advanced_alloy, 2); + if (item == ModItems.ingot_red_copper && item2 == ModItems.ingot_steel + || item == ModItems.ingot_steel && item2 == ModItems.ingot_red_copper) { + return new ItemStack(ModItems.ingot_advanced_alloy, 2); } - + + if (item == ModItems.ingot_tungsten && item2 == ModItems.nugget_schrabidium + || item == ModItems.nugget_schrabidium && item2 == ModItems.ingot_tungsten) { + return new ItemStack(ModItems.ingot_magnetized_tungsten, 1); + } + return null; } - - //Arrays! - + + // Arrays! + public static ItemStack[] getCentrifugeProcessingResult(Item item) { return getCentrifugeOutput(item); } - - public static ItemStack[] getCentrifugeOutput(Item item) { - - ItemStack[] uranium = new ItemStack[] {new ItemStack(ModItems.nugget_u238, 4), new ItemStack(ModItems.nugget_u238, 4), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.cell_empty, 1)}; - ItemStack[] plutonium = new ItemStack[] {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu239, 1), new ItemStack(ModItems.nugget_pu240, 5), new ItemStack(ModItems.cell_empty, 1)}; - 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[] euphemium = new ItemStack[] {new ItemStack(ModItems.nugget_euphemium, 1), new ItemStack(ModItems.nugget_euphemium, 1), new ItemStack(ModItems.nugget_euphemium, 1), new ItemStack(ModItems.rod_quad_empty, 1)}; - ItemStack[] schrabidium = new ItemStack[] {new ItemStack(ModItems.ingot_schrabidium, 1), new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.cell_empty, 1)}; - ItemStack[] lithium = new ItemStack[] {new ItemStack(ModItems.lithium, 1), new ItemStack(ModItems.lithium, 1), new ItemStack(ModItems.lithium, 1), new ItemStack(Item.getItemFromBlock(Blocks.gravel))}; - ItemStack[] lithium2 = new ItemStack[] {new ItemStack(ModItems.lithium, 1), new ItemStack(ModItems.lithium, 1), new ItemStack(ModItems.lithium, 1), new ItemStack(ModItems.lithium, 1)}; - ItemStack[] lithium3 = new ItemStack[] {new ItemStack(ModItems.lithium, 4), new ItemStack(ModItems.lithium, 4), new ItemStack(ModItems.lithium, 4), new ItemStack(ModItems.lithium, 4)}; - 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.rod_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.rod_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.rod_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.rod_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_euphemium, 1), new ItemStack(ModItems.rod_quad_waste, 1)}; - - if(item == ModItems.cell_uf6) - { + public static ItemStack[] getCentrifugeOutput(Item item) { + + ItemStack[] uranium = new ItemStack[] { new ItemStack(ModItems.nugget_u238, 4), + new ItemStack(ModItems.nugget_u238, 4), new ItemStack(ModItems.nugget_u235, 1), + new ItemStack(ModItems.cell_empty, 1) }; + ItemStack[] plutonium = new ItemStack[] { new ItemStack(ModItems.nugget_pu238, 3), + new ItemStack(ModItems.nugget_pu239, 1), new ItemStack(ModItems.nugget_pu240, 5), + new ItemStack(ModItems.cell_empty, 1) }; + 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[] euphemium = new ItemStack[] { new ItemStack(ModItems.nugget_euphemium, 1), + new ItemStack(ModItems.nugget_euphemium, 1), new ItemStack(ModItems.nugget_euphemium, 1), + new ItemStack(ModItems.rod_quad_empty, 1) }; + ItemStack[] schrabidium = new ItemStack[] { new ItemStack(ModItems.ingot_schrabidium, 1), + new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.sulfur, 1), + new ItemStack(ModItems.cell_empty, 1) }; + ItemStack[] lithium = new ItemStack[] { new ItemStack(ModItems.lithium, 1), new ItemStack(ModItems.lithium, 1), + new ItemStack(ModItems.lithium, 1), new ItemStack(Item.getItemFromBlock(Blocks.gravel)) }; + ItemStack[] lithium2 = new ItemStack[] { new ItemStack(ModItems.lithium, 1), new ItemStack(ModItems.lithium, 1), + new ItemStack(ModItems.lithium, 1), new ItemStack(ModItems.lithium, 1) }; + ItemStack[] lithium3 = new ItemStack[] { new ItemStack(ModItems.lithium, 4), new ItemStack(ModItems.lithium, 4), + new ItemStack(ModItems.lithium, 4), new ItemStack(ModItems.lithium, 4) }; + + 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.rod_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.rod_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.rod_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.rod_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_euphemium, 1), + new ItemStack(ModItems.rod_quad_waste, 1) }; + + if (item == ModItems.cell_uf6) { return uranium; } - - if(item == ModItems.cell_puf6) - { + + if (item == ModItems.cell_puf6) { return plutonium; } - - if(MainRegistry.enableDebugMode) { - if(item == Item.getItemFromBlock(ModBlocks.test_render)) - { + if (MainRegistry.enableDebugMode) { + if (item == Item.getItemFromBlock(ModBlocks.test_render)) { return test; } } - - if(item == ModItems.rod_quad_euphemium) - { + + if (item == ModItems.rod_quad_euphemium) { return euphemium; } - - if(item == ModItems.cell_sas3) - { + + if (item == ModItems.cell_sas3) { return schrabidium; } - - if(item == ModItems.rod_uranium_fuel_depleted) - { + + if (item == ModItems.rod_uranium_fuel_depleted) { return uran1; } - - if(item == ModItems.rod_dual_uranium_fuel_depleted) - { + + if (item == ModItems.rod_dual_uranium_fuel_depleted) { return uran2; } - - if(item == ModItems.rod_quad_uranium_fuel_depleted) - { + + if (item == ModItems.rod_quad_uranium_fuel_depleted) { return uran3; } - - if(item == ModItems.rod_plutonium_fuel_depleted) - { + + if (item == ModItems.rod_plutonium_fuel_depleted) { return plutonium1; } - - if(item == ModItems.rod_dual_plutonium_fuel_depleted) - { + + if (item == ModItems.rod_dual_plutonium_fuel_depleted) { return plutonium2; } - - if(item == ModItems.rod_quad_plutonium_fuel_depleted) - { + + if (item == ModItems.rod_quad_plutonium_fuel_depleted) { return plutonium3; } - - if(item == ModItems.rod_mox_fuel_depleted) - { + + if (item == ModItems.rod_mox_fuel_depleted) { return mox1; } - - if(item == ModItems.rod_dual_mox_fuel_depleted) - { + + if (item == ModItems.rod_dual_mox_fuel_depleted) { return mox2; } - - if(item == ModItems.rod_quad_mox_fuel_depleted) - { + + if (item == ModItems.rod_quad_mox_fuel_depleted) { return mox3; } - - if(item == ModItems.rod_schrabidium_fuel_depleted) - { + + if (item == ModItems.rod_schrabidium_fuel_depleted) { return schrabidium1; } - - if(item == ModItems.rod_dual_schrabidium_fuel_depleted) - { + + if (item == ModItems.rod_dual_schrabidium_fuel_depleted) { return schrabidium2; } - - if(item == ModItems.rod_quad_schrabidium_fuel_depleted) - { + + if (item == ModItems.rod_quad_schrabidium_fuel_depleted) { return schrabidium3; } - - if(item == item.getItemFromBlock(Blocks.cobblestone) || item == item.getItemFromBlock(Blocks.stone)) - { + + if (item == item.getItemFromBlock(Blocks.cobblestone) || item == item.getItemFromBlock(Blocks.stone)) { return lithium; } - - if(item == item.getItemFromBlock(Blocks.quartz_block) || item == item.getItemFromBlock(Blocks.quartz_stairs)) - { + + if (item == item.getItemFromBlock(Blocks.quartz_block) || item == item.getItemFromBlock(Blocks.quartz_stairs)) { return lithium3; } - - if(item == Items.quartz) - { + + if (item == Items.quartz) { return lithium2; } - + return null; } - + public static ItemStack getReactorProcessingResult(Item item) { return getReactorOutput(item); } - + public static ItemStack getReactorOutput(Item item) { - - if(item == ModItems.rod_uranium) - { + + if (item == ModItems.rod_uranium) { return new ItemStack(ModItems.rod_plutonium, 1); } - - if(item == ModItems.rod_u235) - { + + if (item == ModItems.rod_u235) { return new ItemStack(ModItems.rod_neptunium, 1); } - - if(item == ModItems.rod_u238) - { + + if (item == ModItems.rod_u238) { return new ItemStack(ModItems.rod_pu239, 1); } - - if(item == ModItems.rod_neptunium) - { + + if (item == ModItems.rod_neptunium) { return new ItemStack(ModItems.rod_pu238, 1); } - - if(item == ModItems.rod_plutonium) - { + + if (item == ModItems.rod_plutonium) { return new ItemStack(ModItems.rod_lead, 1); } - - if(item == ModItems.rod_pu238) - { + + if (item == ModItems.rod_pu238) { return new ItemStack(ModItems.rod_pu239, 1); } - - if(item == ModItems.rod_pu239) - { + + if (item == ModItems.rod_pu239) { return new ItemStack(ModItems.rod_pu240, 1); } - - if(item == ModItems.rod_pu240) - { + + if (item == ModItems.rod_pu240) { return new ItemStack(ModItems.rod_lead, 1); } - - if(item == ModItems.rod_dual_uranium) - { + + if (item == ModItems.rod_dual_uranium) { return new ItemStack(ModItems.rod_dual_plutonium, 1); } - - if(item == ModItems.rod_dual_u235) - { + + if (item == ModItems.rod_dual_u235) { return new ItemStack(ModItems.rod_dual_neptunium, 1); } - - if(item == ModItems.rod_dual_u238) - { + + if (item == ModItems.rod_dual_u238) { return new ItemStack(ModItems.rod_dual_pu239, 1); } - - if(item == ModItems.rod_dual_neptunium) - { + + if (item == ModItems.rod_dual_neptunium) { return new ItemStack(ModItems.rod_dual_pu238, 1); } - - if(item == ModItems.rod_dual_plutonium) - { + + if (item == ModItems.rod_dual_plutonium) { return new ItemStack(ModItems.rod_dual_lead, 1); } - - if(item == ModItems.rod_dual_pu238) - { + + if (item == ModItems.rod_dual_pu238) { return new ItemStack(ModItems.rod_dual_pu239, 1); } - - if(item == ModItems.rod_dual_pu239) - { + + if (item == ModItems.rod_dual_pu239) { return new ItemStack(ModItems.rod_dual_pu240, 1); } - - if(item == ModItems.rod_dual_pu240) - { + + if (item == ModItems.rod_dual_pu240) { return new ItemStack(ModItems.rod_dual_lead, 1); } - - if(item == ModItems.rod_quad_uranium) - { + + if (item == ModItems.rod_quad_uranium) { return new ItemStack(ModItems.rod_quad_plutonium, 1); } - - if(item == ModItems.rod_quad_u235) - { + + if (item == ModItems.rod_quad_u235) { return new ItemStack(ModItems.rod_quad_neptunium, 1); } - - if(item == ModItems.rod_quad_u238) - { + + if (item == ModItems.rod_quad_u238) { return new ItemStack(ModItems.rod_quad_pu239, 1); } - - if(item == ModItems.rod_quad_neptunium) - { + + if (item == ModItems.rod_quad_neptunium) { return new ItemStack(ModItems.rod_quad_pu238, 1); } - - if(item == ModItems.rod_quad_plutonium) - { + + if (item == ModItems.rod_quad_plutonium) { return new ItemStack(ModItems.rod_quad_lead, 1); } - - if(item == ModItems.rod_quad_pu238) - { + + if (item == ModItems.rod_quad_pu238) { return new ItemStack(ModItems.rod_quad_pu239, 1); } - - if(item == ModItems.rod_quad_pu239) - { + + if (item == ModItems.rod_quad_pu239) { return new ItemStack(ModItems.rod_quad_pu240, 1); } - - if(item == ModItems.rod_quad_pu240) - { + + if (item == ModItems.rod_quad_pu240) { return new ItemStack(ModItems.rod_quad_lead, 1); } - - if(item == ModItems.rod_quad_schrabidium) - { + + if (item == ModItems.rod_quad_schrabidium) { return new ItemStack(ModItems.rod_quad_euphemium, 1); } - - if(item == ModItems.rod_lithium) - { + + if (item == ModItems.rod_lithium) { return new ItemStack(ModItems.rod_tritium, 1); } - - if(item == ModItems.rod_dual_lithium) - { + + if (item == ModItems.rod_dual_lithium) { return new ItemStack(ModItems.rod_dual_tritium, 1); } - - if(item == ModItems.rod_quad_lithium) - { + + if (item == ModItems.rod_quad_lithium) { return new ItemStack(ModItems.rod_quad_tritium, 1); } - + return null; } - + public Map getAlloyRecipes() { Map recipes = new HashMap(); - if(MainRegistry.enableDebugMode) { - recipes.put(new ItemStack[] {new ItemStack(Items.iron_ingot), new ItemStack(Items.quartz)}, new ItemStack(Item.getItemFromBlock(ModBlocks.test_render))); + if (MainRegistry.enableDebugMode) { + recipes.put(new ItemStack[] { new ItemStack(Items.iron_ingot), new ItemStack(Items.quartz) }, + new ItemStack(Item.getItemFromBlock(ModBlocks.test_render))); } - recipes.put(new ItemStack[] {new ItemStack(Items.iron_ingot), new ItemStack(Items.coal)}, new ItemStack(ModItems.ingot_steel)); - recipes.put(new ItemStack[] {new ItemStack(ModItems.ingot_lead), new ItemStack(ModItems.ingot_copper)}, new ItemStack(ModItems.neutron_reflector, 2)); - recipes.put(new ItemStack[] {new ItemStack(ModItems.plate_lead), new ItemStack(ModItems.plate_copper)}, new ItemStack(ModItems.neutron_reflector)); - recipes.put(new ItemStack[] {new ItemStack(ModItems.ingot_tungsten), new ItemStack(Items.coal)}, new ItemStack(ModItems.neutron_reflector, 2)); - recipes.put(new ItemStack[] {new ItemStack(ModItems.ingot_copper), new ItemStack(Items.redstone)}, new ItemStack(ModItems.ingot_red_copper, 2)); - recipes.put(new ItemStack[] {new ItemStack(ModItems.ingot_red_copper), new ItemStack(ModItems.ingot_steel)}, new ItemStack(ModItems.ingot_advanced_alloy, 2)); - recipes.put(new ItemStack[] {new ItemStack(ModItems.canister_empty), new ItemStack(Items.coal)}, new ItemStack(ModItems.canister_fuel, 1)); + recipes.put(new ItemStack[] { new ItemStack(Items.iron_ingot), new ItemStack(Items.coal) }, + new ItemStack(ModItems.ingot_steel)); + recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_lead), new ItemStack(ModItems.ingot_copper) }, + new ItemStack(ModItems.neutron_reflector, 2)); + recipes.put(new ItemStack[] { new ItemStack(ModItems.plate_lead), new ItemStack(ModItems.plate_copper) }, + new ItemStack(ModItems.neutron_reflector)); + recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_tungsten), new ItemStack(Items.coal) }, + new ItemStack(ModItems.neutron_reflector, 2)); + recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_copper), new ItemStack(Items.redstone) }, + new ItemStack(ModItems.ingot_red_copper, 2)); + recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_red_copper), new ItemStack(ModItems.ingot_steel) }, + new ItemStack(ModItems.ingot_advanced_alloy, 2)); + recipes.put(new ItemStack[] { new ItemStack(ModItems.canister_empty), new ItemStack(Items.coal) }, + new ItemStack(ModItems.canister_fuel, 1)); + recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_tungsten), new ItemStack(ModItems.nugget_schrabidium) }, + new ItemStack(ModItems.ingot_magnetized_tungsten, 1)); return recipes; } - + public ArrayList getAlloyFuels() { ArrayList fuels = new ArrayList(); fuels.add(new ItemStack(Items.coal)); @@ -383,37 +386,54 @@ public class MachineRecipes { fuels.add(new ItemStack(Items.blaze_powder)); return fuels; } - + public Map getCentrifugeRecipes() { Map recipes = new HashMap(); recipes.put(new ItemStack(ModItems.cell_uf6), getCentrifugeOutput(ModItems.cell_uf6)); recipes.put(new ItemStack(ModItems.cell_puf6), getCentrifugeOutput(ModItems.cell_puf6)); - if(MainRegistry.enableDebugMode) { - recipes.put(new ItemStack(Item.getItemFromBlock(ModBlocks.test_render)), getCentrifugeOutput(Item.getItemFromBlock(ModBlocks.test_render))); + if (MainRegistry.enableDebugMode) { + recipes.put(new ItemStack(Item.getItemFromBlock(ModBlocks.test_render)), + getCentrifugeOutput(Item.getItemFromBlock(ModBlocks.test_render))); } - //[REDACTED] - //recipes.put(new ItemStack(ModItems.rod_quad_euphemium), getCentrifugeOutput(ModItems.rod_quad_euphemium)); + // [REDACTED] + // recipes.put(new ItemStack(ModItems.rod_quad_euphemium), + // getCentrifugeOutput(ModItems.rod_quad_euphemium)); recipes.put(new ItemStack(ModItems.cell_sas3), getCentrifugeOutput(ModItems.cell_sas3)); - recipes.put(new ItemStack(Item.getItemFromBlock(Blocks.stone)), getCentrifugeOutput(Item.getItemFromBlock(Blocks.stone))); - recipes.put(new ItemStack(Item.getItemFromBlock(Blocks.cobblestone)), getCentrifugeOutput(Item.getItemFromBlock(Blocks.cobblestone))); - recipes.put(new ItemStack(ModItems.rod_uranium_fuel_depleted), getCentrifugeOutput(ModItems.rod_uranium_fuel_depleted)); - recipes.put(new ItemStack(ModItems.rod_dual_uranium_fuel_depleted), getCentrifugeOutput(ModItems.rod_dual_uranium_fuel_depleted)); - recipes.put(new ItemStack(ModItems.rod_quad_uranium_fuel_depleted), getCentrifugeOutput(ModItems.rod_quad_uranium_fuel_depleted)); - recipes.put(new ItemStack(ModItems.rod_plutonium_fuel_depleted), getCentrifugeOutput(ModItems.rod_plutonium_fuel_depleted)); - recipes.put(new ItemStack(ModItems.rod_dual_plutonium_fuel_depleted), getCentrifugeOutput(ModItems.rod_dual_plutonium_fuel_depleted)); - recipes.put(new ItemStack(ModItems.rod_quad_plutonium_fuel_depleted), getCentrifugeOutput(ModItems.rod_quad_plutonium_fuel_depleted)); + recipes.put(new ItemStack(Item.getItemFromBlock(Blocks.stone)), + getCentrifugeOutput(Item.getItemFromBlock(Blocks.stone))); + recipes.put(new ItemStack(Item.getItemFromBlock(Blocks.cobblestone)), + getCentrifugeOutput(Item.getItemFromBlock(Blocks.cobblestone))); + recipes.put(new ItemStack(ModItems.rod_uranium_fuel_depleted), + getCentrifugeOutput(ModItems.rod_uranium_fuel_depleted)); + recipes.put(new ItemStack(ModItems.rod_dual_uranium_fuel_depleted), + getCentrifugeOutput(ModItems.rod_dual_uranium_fuel_depleted)); + recipes.put(new ItemStack(ModItems.rod_quad_uranium_fuel_depleted), + getCentrifugeOutput(ModItems.rod_quad_uranium_fuel_depleted)); + recipes.put(new ItemStack(ModItems.rod_plutonium_fuel_depleted), + getCentrifugeOutput(ModItems.rod_plutonium_fuel_depleted)); + recipes.put(new ItemStack(ModItems.rod_dual_plutonium_fuel_depleted), + getCentrifugeOutput(ModItems.rod_dual_plutonium_fuel_depleted)); + recipes.put(new ItemStack(ModItems.rod_quad_plutonium_fuel_depleted), + getCentrifugeOutput(ModItems.rod_quad_plutonium_fuel_depleted)); recipes.put(new ItemStack(ModItems.rod_mox_fuel_depleted), getCentrifugeOutput(ModItems.rod_mox_fuel_depleted)); - recipes.put(new ItemStack(ModItems.rod_dual_mox_fuel_depleted), getCentrifugeOutput(ModItems.rod_dual_mox_fuel_depleted)); - recipes.put(new ItemStack(ModItems.rod_quad_mox_fuel_depleted), getCentrifugeOutput(ModItems.rod_quad_mox_fuel_depleted)); - recipes.put(new ItemStack(ModItems.rod_schrabidium_fuel_depleted), getCentrifugeOutput(ModItems.rod_schrabidium_fuel_depleted)); - recipes.put(new ItemStack(ModItems.rod_dual_schrabidium_fuel_depleted), getCentrifugeOutput(ModItems.rod_dual_schrabidium_fuel_depleted)); - //[REDACTED] - //recipes.put(new ItemStack(ModItems.rod_quad_schrabidium_fuel_depleted), getCentrifugeOutput(ModItems.rod_quad_schrabidium_fuel_depleted)); - recipes.put(new ItemStack(Item.getItemFromBlock(Blocks.quartz_block)), getCentrifugeOutput(Item.getItemFromBlock(Blocks.quartz_block))); + recipes.put(new ItemStack(ModItems.rod_dual_mox_fuel_depleted), + getCentrifugeOutput(ModItems.rod_dual_mox_fuel_depleted)); + recipes.put(new ItemStack(ModItems.rod_quad_mox_fuel_depleted), + getCentrifugeOutput(ModItems.rod_quad_mox_fuel_depleted)); + recipes.put(new ItemStack(ModItems.rod_schrabidium_fuel_depleted), + getCentrifugeOutput(ModItems.rod_schrabidium_fuel_depleted)); + recipes.put(new ItemStack(ModItems.rod_dual_schrabidium_fuel_depleted), + getCentrifugeOutput(ModItems.rod_dual_schrabidium_fuel_depleted)); + // [REDACTED] + // recipes.put(new + // ItemStack(ModItems.rod_quad_schrabidium_fuel_depleted), + // getCentrifugeOutput(ModItems.rod_quad_schrabidium_fuel_depleted)); + recipes.put(new ItemStack(Item.getItemFromBlock(Blocks.quartz_block)), + getCentrifugeOutput(Item.getItemFromBlock(Blocks.quartz_block))); recipes.put(new ItemStack(Items.quartz), getCentrifugeOutput(Items.quartz)); return recipes; } - + public ArrayList getCentrifugeFuels() { ArrayList fuels = new ArrayList(); fuels.add(new ItemStack(Items.coal)); @@ -426,7 +446,7 @@ public class MachineRecipes { fuels.add(new ItemStack(Items.blaze_powder)); return fuels; } - + public Map getReactorRecipes() { Map recipes = new HashMap(); recipes.put(new ItemStack(ModItems.rod_uranium), getReactorOutput(ModItems.rod_uranium)); @@ -453,8 +473,9 @@ public class MachineRecipes { recipes.put(new ItemStack(ModItems.rod_neptunium), getReactorOutput(ModItems.rod_neptunium)); recipes.put(new ItemStack(ModItems.rod_dual_neptunium), getReactorOutput(ModItems.rod_dual_neptunium)); recipes.put(new ItemStack(ModItems.rod_quad_neptunium), getReactorOutput(ModItems.rod_quad_neptunium)); - //[REDACTED] - //recipes.put(new ItemStack(ModItems.rod_quad_schrabidium), getReactorOutput(ModItems.rod_quad_schrabidium)); + // [REDACTED] + // recipes.put(new ItemStack(ModItems.rod_quad_schrabidium), + // getReactorOutput(ModItems.rod_quad_schrabidium)); recipes.put(new ItemStack(ModItems.rod_lithium), getReactorOutput(ModItems.rod_lithium)); recipes.put(new ItemStack(ModItems.rod_dual_lithium), getReactorOutput(ModItems.rod_dual_lithium)); recipes.put(new ItemStack(ModItems.rod_quad_lithium), getReactorOutput(ModItems.rod_quad_lithium)); diff --git a/com/hbm/items/GunXVL1456.java b/com/hbm/items/GunXVL1456.java index 548b336ba..98e9a8386 100644 --- a/com/hbm/items/GunXVL1456.java +++ b/com/hbm/items/GunXVL1456.java @@ -95,24 +95,6 @@ public class GunXVL1456 extends Item { return p_77659_1_; } - public void onUpdate(ItemStack p_77663_1_, World p_77663_2_, Entity p_77663_3_, int p_77663_4_, - boolean p_77663_5_) { - if(p_77663_3_ instanceof EntityPlayer) - { - if(((EntityPlayer)p_77663_3_).getItemInUseCount() < getMaxItemUseDuration(p_77663_1_) - 200 && p_77663_3_.isSneaking() && ((EntityPlayer)p_77663_3_).getItemInUseCount() != 0) - { - if(!p_77663_2_.isRemote) - { - p_77663_1_.damageItem(1250, (EntityLivingBase) p_77663_3_); - - p_77663_2_.createExplosion(p_77663_3_, p_77663_3_.posX, p_77663_3_.posY, p_77663_3_.posZ, 10.0F, true); - p_77663_3_.attackEntityFrom(ModDamageSource.tauBlast, 1000F); - ((EntityPlayer)p_77663_3_).dropOneItem(false); - } - } - } - } - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { World world = player.worldObj; @@ -154,6 +136,21 @@ public class GunXVL1456 extends Item { world.playSoundAtEntity(player, "random.click", 1.0F, (this.getMaxItemUseDuration(stack) - count) * 0.01F); } } + + if(player instanceof EntityPlayer) + { + if(((EntityPlayer)player).getItemInUseCount() < getMaxItemUseDuration(stack) - 200 && player.isSneaking() && ((EntityPlayer)player).getItemInUseCount() != 0) + { + if(!world.isRemote) + { + stack.damageItem(1250, (EntityLivingBase) player); + + world.createExplosion(player, player.posX, player.posY, player.posZ, 10.0F, true); + player.attackEntityFrom(ModDamageSource.tauBlast, 1000F); + ((EntityPlayer)player).dropOneItem(false); + } + } + } } @Override diff --git a/com/hbm/items/ItemDrop.java b/com/hbm/items/ItemDrop.java new file mode 100644 index 000000000..3b00a4d76 --- /dev/null +++ b/com/hbm/items/ItemDrop.java @@ -0,0 +1,49 @@ +package com.hbm.items; + +import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemDrop extends Item { + + public boolean onEntityItemUpdate(EntityItem entityItem) { + if (entityItem != null) { + if (entityItem.onGround) { + + ItemStack stack = entityItem.getEntityItem(); + + if (stack.getItem() != null && stack.getItem() == ModItems.cell_antimatter) { + if (!entityItem.worldObj.isRemote) { + entityItem.worldObj.createExplosion(entityItem, entityItem.posX, entityItem.posY, + entityItem.posZ, 10.0F, true); + } + } + if (stack.getItem() != null && stack.getItem() == ModItems.cell_anti_schrabidium) { + if (!entityItem.worldObj.isRemote) { + entityItem.worldObj.playSoundEffect(entityItem.posX, entityItem.posY, entityItem.posZ, + "random.explode", 1.0f, entityItem.worldObj.rand.nextFloat() * 0.1F + 0.9F); + + EntityNukeExplosionAdvanced entity = new EntityNukeExplosionAdvanced(entityItem.worldObj); + entity.posX = entityItem.posX; + entity.posY = entityItem.posY; + entity.posZ = entityItem.posZ; + entity.destructionRange = MainRegistry.aSchrabRadius; + entity.speed = 25; + entity.coefficient = 1.0F; + entity.waste = false; + + entityItem.worldObj.spawnEntityInWorld(entity); + } + } + + entityItem.setDead(); + return true; + } + } + return false; + } + +} diff --git a/com/hbm/items/ItemGrenade.java b/com/hbm/items/ItemGrenade.java index fd68b01db..e18eb8f05 100644 --- a/com/hbm/items/ItemGrenade.java +++ b/com/hbm/items/ItemGrenade.java @@ -13,6 +13,7 @@ import com.hbm.entity.EntityGrenadePlasma; import com.hbm.entity.EntityGrenadePoison; import com.hbm.entity.EntityGrenadeSchrabidium; import com.hbm.entity.EntityGrenadeStrong; +import com.hbm.entity.EntityGrenadeTau; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; @@ -95,6 +96,10 @@ public class ItemGrenade extends Item { { p_77659_2_.spawnEntityInWorld(new EntityGrenadePlasma(p_77659_2_, p_77659_3_)); } + if(this == ModItems.grenade_tau) + { + p_77659_2_.spawnEntityInWorld(new EntityGrenadeTau(p_77659_2_, p_77659_3_)); + } } return p_77659_1_; @@ -113,7 +118,7 @@ public class ItemGrenade extends Item { return EnumRarity.epic; } - if(this == ModItems.grenade_nuke || this == ModItems.grenade_nuclear) + if(this == ModItems.grenade_nuke || this == ModItems.grenade_nuclear || this == ModItems.grenade_tau) { return EnumRarity.uncommon; } diff --git a/com/hbm/items/ItemStarterKit.java b/com/hbm/items/ItemStarterKit.java index 65427e6e8..7990598ce 100644 --- a/com/hbm/items/ItemStarterKit.java +++ b/com/hbm/items/ItemStarterKit.java @@ -239,6 +239,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.grenade_electric, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.grenade_poison, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.grenade_gas, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.grenade_plasma, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.grenade_tau, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.grenade_schrabidium, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.grenade_nuke, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.grenade_nuclear, 16)); diff --git a/com/hbm/items/ItemWandD.java b/com/hbm/items/ItemWandD.java new file mode 100644 index 000000000..afa7872f3 --- /dev/null +++ b/com/hbm/items/ItemWandD.java @@ -0,0 +1,48 @@ +package com.hbm.items; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; + +public class ItemWandD extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) + { + Block b = world.getBlock(x, y, z); + + if(b == ModBlocks.ore_aluminium) + MainRegistry.x++; + if(b == ModBlocks.block_aluminium) + MainRegistry.x--; + if(b == ModBlocks.ore_beryllium) + MainRegistry.y++; + if(b == ModBlocks.block_beryllium) + MainRegistry.y--; + if(b == ModBlocks.ore_copper) + MainRegistry.z++; + if(b == ModBlocks.block_copper) + MainRegistry.z--; + + return false; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(player.isSneaking()) + { + if(world.isRemote) + player.addChatMessage(new ChatComponentText(MainRegistry.x + " " + MainRegistry.y + " " + MainRegistry.z)); + } + + return stack; + } + +} diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 6f3ae0a6f..37c578b0d 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -66,6 +66,8 @@ public class ModItems { public static Item ingot_les; public static Item nugget_hes; public static Item nugget_les; + public static Item ingot_magnetized_tungsten; + public static Item ingot_combine_steel; public static Item nugget_uranium; public static Item nugget_u235; @@ -93,6 +95,7 @@ public class ModItems { public static Item plate_gold; public static Item hazmat_cloth; public static Item plate_advanced_alloy; + public static Item plate_combine_steel; public static Item powder_lead; public static Item powder_neptunium; @@ -118,6 +121,7 @@ public class ModItems { public static Item wire_advanced_alloy; public static Item coil_advanced_alloy; public static Item coil_advanced_torus; + public static Item wire_magnetized_tungsten; public static Item circuit_aluminium; public static Item circuit_copper; @@ -166,6 +170,14 @@ public class ModItems { public static Item thruster_medium; public static Item thruster_large; + public static Item chopper_head; + public static Item chopper_gun; + public static Item chopper_torso; + public static Item chopper_tail; + public static Item chopper_wing; + public static Item chopper_blades; + public static Item combine_scrap; + public static Item pellet_rtg; public static Item tritium_deuterium_cake; @@ -357,6 +369,7 @@ public class ModItems { public static Item grenade_poison; public static Item grenade_gas; public static Item grenade_plasma; + public static Item grenade_tau; public static Item grenade_schrabidium; public static Item grenade_nuke; public static Item grenade_nuclear; @@ -487,6 +500,7 @@ public class ModItems { public static Item wand; public static Item wand_s; + public static Item wand_d; public static Item cape_test; public static Item cape_radiation; @@ -596,6 +610,8 @@ public class ModItems { wire_advanced_alloy = new Item().setUnlocalizedName("wire_advanced_alloy").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":wire_advanced_alloy"); coil_advanced_alloy = new Item().setUnlocalizedName("coil_advanced_alloy").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":coil_advanced_alloy"); coil_advanced_torus = new Item().setUnlocalizedName("coil_advanced_torus").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":coil_advanced_torus"); + ingot_magnetized_tungsten = new Item().setUnlocalizedName("ingot_magnetized_tungsten").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_magnetized_tungsten"); + ingot_combine_steel = new Item().setUnlocalizedName("ingot_combine_steel").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_combine_steel"); nugget_uranium = new Item().setUnlocalizedName("nugget_uranium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":nugget_uranium"); nugget_u235 = new Item().setUnlocalizedName("nugget_u235").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":nugget_uranium"); @@ -618,6 +634,7 @@ public class ModItems { ingot_les = new Item().setUnlocalizedName("ingot_les").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_les"); nugget_hes = new Item().setUnlocalizedName("nugget_hes").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":nugget_hes"); nugget_les = new Item().setUnlocalizedName("nugget_les").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":nugget_les"); + plate_combine_steel = new Item().setUnlocalizedName("plate_combine_steel").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":plate_combine_steel"); powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_lead"); powder_neptunium = new Item().setUnlocalizedName("powder_neptunium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_neptunium"); @@ -640,6 +657,7 @@ public class ModItems { wire_copper = new Item().setUnlocalizedName("wire_copper").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":wire_copper"); wire_gold = new Item().setUnlocalizedName("wire_gold").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":wire_gold"); wire_schrabidium = new ItemCustomLore().setUnlocalizedName("wire_schrabidium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":wire_schrabidium"); + wire_magnetized_tungsten = new Item().setUnlocalizedName("wire_magnetized_tungsten").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":wire_magnetized_tungsten"); cap_aluminium = new Item().setUnlocalizedName("cap_aluminium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":cap_aluminium"); hull_small_steel = new Item().setUnlocalizedName("hull_small_steel").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":hull_small_steel"); @@ -681,6 +699,14 @@ public class ModItems { thruster_small = new Item().setUnlocalizedName("thruster_small").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":thruster_small"); thruster_medium = new Item().setUnlocalizedName("thruster_medium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":thruster_medium"); thruster_large = new Item().setUnlocalizedName("thruster_large").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":thruster_large"); + + chopper_head = new Item().setUnlocalizedName("chopper_head").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":chopper_head"); + chopper_gun = new Item().setUnlocalizedName("chopper_gun").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":chopper_gun"); + chopper_torso = new Item().setUnlocalizedName("chopper_torso").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":chopper_torso"); + chopper_tail = new Item().setUnlocalizedName("chopper_tail").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":chopper_tail"); + chopper_wing = new Item().setUnlocalizedName("chopper_wing").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":chopper_wing"); + chopper_blades = new Item().setUnlocalizedName("chopper_blades").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":chopper_blades"); + combine_scrap = new Item().setUnlocalizedName("combine_scrap").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":combine_scrap"); circuit_aluminium = new Item().setUnlocalizedName("circuit_aluminium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":circuit_aluminium"); circuit_copper = new Item().setUnlocalizedName("circuit_copper").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":circuit_copper"); @@ -694,11 +720,11 @@ public class ModItems { cell_empty = new ItemCell().setUnlocalizedName("cell_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":cell_empty"); cell_uf6 = new Item().setUnlocalizedName("cell_uf6").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_uf6"); cell_puf6 = new Item().setUnlocalizedName("cell_puf6").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_puf6"); - cell_antimatter = new Item().setUnlocalizedName("cell_antimatter").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_antimatter"); + cell_antimatter = new ItemDrop().setUnlocalizedName("cell_antimatter").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_antimatter"); cell_deuterium = new Item().setUnlocalizedName("cell_deuterium").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_deuterium"); cell_tritium = new Item().setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium"); cell_sas3 = new ItemCustomLore().setUnlocalizedName("cell_sas3").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_sas3"); - cell_anti_schrabidium = new Item().setUnlocalizedName("cell_anti_schrabidium").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_anti_schrabidium"); + cell_anti_schrabidium = new ItemDrop().setUnlocalizedName("cell_anti_schrabidium").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_anti_schrabidium"); inf_water = new Item().setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":inf_water"); inf_coolant = new Item().setUnlocalizedName("inf_coolant").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":inf_coolant"); inf_deuterium = new Item().setUnlocalizedName("inf_deuterium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":inf_deuterium"); @@ -871,6 +897,7 @@ public class ModItems { grenade_poison = new ItemGrenade().setUnlocalizedName("grenade_poison").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_poison"); grenade_gas = new ItemGrenade().setUnlocalizedName("grenade_gas").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_gas"); grenade_plasma = new ItemGrenade().setUnlocalizedName("grenade_plasma").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_plasma"); + grenade_tau = new ItemGrenade().setUnlocalizedName("grenade_tau").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_tau"); grenade_schrabidium = new ItemGrenade().setUnlocalizedName("grenade_schrabidium").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_schrabidium"); grenade_nuke = new ItemGrenade().setUnlocalizedName("grenade_nuke").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_nuke"); grenade_nuclear = new ItemGrenade().setUnlocalizedName("grenade_nuclear").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_nuclear"); @@ -929,6 +956,7 @@ public class ModItems { wand = new ItemWand().setUnlocalizedName("wand_k").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setFull3D().setTextureName(RefStrings.MODID + ":wand"); wand_s = new ItemWandS().setUnlocalizedName("wand_s").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setFull3D().setTextureName(RefStrings.MODID + ":wand_s"); + wand_d = new ItemWandD().setUnlocalizedName("wand_d").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setFull3D().setTextureName(RefStrings.MODID + ":wand_d"); nuke_starter_kit = new ItemStarterKit().setUnlocalizedName("nuke_starter_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":nuke_starter_kit"); nuke_advanced_kit = new ItemStarterKit().setUnlocalizedName("nuke_advanced_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":nuke_advanced_kit"); @@ -1093,6 +1121,8 @@ public class ModItems { GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName()); GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_magnetized_tungsten, ingot_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(ingot_combine_steel, ingot_combine_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_uranium_fuel, ingot_uranium_fuel.getUnlocalizedName()); GameRegistry.registerItem(ingot_plutonium_fuel, ingot_plutonium_fuel.getUnlocalizedName()); GameRegistry.registerItem(ingot_mox_fuel, ingot_mox_fuel.getUnlocalizedName()); @@ -1133,16 +1163,17 @@ public class ModItems { GameRegistry.registerItem(nugget_les, nugget_les.getUnlocalizedName()); //Plates + GameRegistry.registerItem(plate_iron, plate_iron.getUnlocalizedName()); + GameRegistry.registerItem(plate_gold, plate_gold.getUnlocalizedName()); GameRegistry.registerItem(plate_titanium, plate_titanium.getUnlocalizedName()); GameRegistry.registerItem(plate_aluminium, plate_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(plate_iron, plate_iron.getUnlocalizedName()); GameRegistry.registerItem(plate_steel, plate_steel.getUnlocalizedName()); GameRegistry.registerItem(plate_lead, plate_lead.getUnlocalizedName()); - GameRegistry.registerItem(neutron_reflector, neutron_reflector.getUnlocalizedName()); - GameRegistry.registerItem(plate_schrabidium, plate_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(plate_copper, plate_copper.getUnlocalizedName()); GameRegistry.registerItem(plate_advanced_alloy, plate_advanced_alloy.getUnlocalizedName()); - GameRegistry.registerItem(plate_gold, plate_gold.getUnlocalizedName()); + GameRegistry.registerItem(neutron_reflector, neutron_reflector.getUnlocalizedName()); + GameRegistry.registerItem(plate_schrabidium, plate_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(plate_combine_steel, plate_combine_steel.getUnlocalizedName()); GameRegistry.registerItem(hazmat_cloth, hazmat_cloth.getUnlocalizedName()); //Wires @@ -1153,6 +1184,7 @@ public class ModItems { GameRegistry.registerItem(wire_advanced_alloy, wire_advanced_alloy.getUnlocalizedName()); GameRegistry.registerItem(wire_gold, wire_gold.getUnlocalizedName()); GameRegistry.registerItem(wire_schrabidium, wire_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(wire_magnetized_tungsten, wire_magnetized_tungsten.getUnlocalizedName()); //Parts GameRegistry.registerItem(coil_copper, coil_copper.getUnlocalizedName()); @@ -1210,6 +1242,15 @@ public class ModItems { GameRegistry.registerItem(thruster_medium, thruster_medium.getUnlocalizedName()); GameRegistry.registerItem(thruster_large, thruster_large.getUnlocalizedName()); + //Chopper parts + GameRegistry.registerItem(chopper_head, chopper_head.getUnlocalizedName()); + GameRegistry.registerItem(chopper_gun, chopper_gun.getUnlocalizedName()); + GameRegistry.registerItem(chopper_torso, chopper_torso.getUnlocalizedName()); + GameRegistry.registerItem(chopper_tail, chopper_tail.getUnlocalizedName()); + GameRegistry.registerItem(chopper_wing, chopper_wing.getUnlocalizedName()); + GameRegistry.registerItem(chopper_blades, chopper_blades.getUnlocalizedName()); + GameRegistry.registerItem(combine_scrap, combine_scrap.getUnlocalizedName()); + //Circuits GameRegistry.registerItem(circuit_aluminium, circuit_aluminium.getUnlocalizedName()); GameRegistry.registerItem(circuit_copper, circuit_copper.getUnlocalizedName()); @@ -1428,6 +1469,7 @@ public class ModItems { GameRegistry.registerItem(grenade_poison, grenade_poison.getUnlocalizedName()); GameRegistry.registerItem(grenade_gas, grenade_gas.getUnlocalizedName()); GameRegistry.registerItem(grenade_plasma, grenade_plasma.getUnlocalizedName()); + GameRegistry.registerItem(grenade_tau, grenade_tau.getUnlocalizedName()); GameRegistry.registerItem(grenade_schrabidium, grenade_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(grenade_nuke, grenade_nuke.getUnlocalizedName()); GameRegistry.registerItem(grenade_nuclear, grenade_nuclear.getUnlocalizedName()); @@ -1571,6 +1613,7 @@ public class ModItems { //OP Tools GameRegistry.registerItem(wand, wand.getUnlocalizedName()); GameRegistry.registerItem(wand_s, wand_s.getUnlocalizedName()); + GameRegistry.registerItem(wand_d, wand_d.getUnlocalizedName()); GameRegistry.registerItem(euphemium_stopper, euphemium_stopper.getUnlocalizedName()); //Kits diff --git a/com/hbm/lib/HbmChestContents.java b/com/hbm/lib/HbmChestContents.java index 19b9f6f15..34a3497ce 100644 --- a/com/hbm/lib/HbmChestContents.java +++ b/com/hbm/lib/HbmChestContents.java @@ -52,7 +52,7 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.gun_fatman_ammo, 0, 1, 8, 2), new WeightedRandomChestContent(ModItems.gun_xvl1456, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_xvl1456_ammo, 0, 1, 8, 2), + new WeightedRandomChestContent(ModItems.gun_xvl1456_ammo, 0, 16, 64, 2), new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 1, 2), new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 2), new WeightedRandomChestContent(ModItems.battery_advanced, 200, 1, 1, 3), diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index f10b81c48..bbee13261 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -10,11 +10,13 @@ import com.hbm.blocks.TileEntityMachineDeuterium; import com.hbm.blocks.TileEntityMachineElectricFurnace; import com.hbm.blocks.TileEntityWireCoated; import com.hbm.calc.UnionOfTileEntitiesAndBooleans; +import com.hbm.entity.EntityHunterChopper; import com.hbm.interfaces.IConductor; import com.hbm.interfaces.IConsumer; import com.hbm.interfaces.ISource; import com.hbm.items.ModItems; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; @@ -213,4 +215,31 @@ public class Library { return false; } + + public static EntityLivingBase getClosestEntityForChopper(World world, double x, double y, double z, double radius) { + double d4 = -1.0D; + EntityLivingBase entityplayer = null; + + for (int i = 0; i < world.loadedEntityList.size(); ++i) { + if (world.loadedEntityList.get(i) instanceof EntityLivingBase && !(world.loadedEntityList.get(i) instanceof EntityHunterChopper)) { + EntityLivingBase entityplayer1 = (EntityLivingBase) world.loadedEntityList.get(i); + + if (entityplayer1.isEntityAlive() && !(entityplayer1 instanceof EntityPlayer && ((EntityPlayer)entityplayer1).capabilities.disableDamage)) { + double d5 = entityplayer1.getDistanceSq(x, y, z); + double d6 = radius; + + if (entityplayer1.isSneaking()) { + d6 = radius * 0.800000011920929D; + } + + if ((radius < 0.0D || d5 < d6 * d6) && (d4 == -1.0D || d5 < d4)) { + d4 = d5; + entityplayer = entityplayer1; + } + } + } + } + + return entityplayer; + } } diff --git a/com/hbm/lib/ModDamageSource.java b/com/hbm/lib/ModDamageSource.java index 7d27475ce..0c4ee09c4 100644 --- a/com/hbm/lib/ModDamageSource.java +++ b/com/hbm/lib/ModDamageSource.java @@ -22,6 +22,10 @@ public class ModDamageSource extends DamageSource { { return (new EntityDamageSourceIndirect("revolverBullet", p_76353_0_, p_76353_1_)).setProjectile(); } + public static DamageSource causeDisplacementDamage(EntityBullet p_76353_0_, Entity p_76353_1_) + { + return (new EntityDamageSourceIndirect("chopperBullet", p_76353_0_, p_76353_1_)).setProjectile(); + } public static DamageSource causeTauDamage(EntityBullet p_76353_0_, Entity p_76353_1_) { return (new EntityDamageSourceIndirect("tau", p_76353_0_, p_76353_1_)).setProjectile().setDamageBypassesArmor(); @@ -30,5 +34,37 @@ public class ModDamageSource extends DamageSource { { return (new EntityDamageSourceIndirect("euthanized", p_76353_0_, p_76353_1_)).setDamageBypassesArmor(); } + + public static boolean getIsBullet(DamageSource source) { + if(source instanceof EntityDamageSourceIndirect) + { + return ((EntityDamageSourceIndirect)source).damageType.equals("revolverBullet"); + } + return false; + } + + public static boolean getIsEmplacer(DamageSource source) { + if(source instanceof EntityDamageSourceIndirect) + { + return ((EntityDamageSourceIndirect)source).damageType.equals("chopperBullet"); + } + return false; + } + + public static boolean getIsTau(DamageSource source) { + if(source instanceof EntityDamageSourceIndirect) + { + return ((EntityDamageSourceIndirect)source).damageType.equals("tau"); + } + return false; + } + + public static boolean getIsPoison(DamageSource source) { + if(source instanceof EntityDamageSourceIndirect) + { + return ((EntityDamageSourceIndirect)source).damageType.equals("euthanized"); + } + return false; + } } diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 6df796eb2..2e943f366 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -36,6 +36,7 @@ import com.hbm.blocks.TileEntityTestContainer; import com.hbm.blocks.TileEntityTestRender; import com.hbm.blocks.TileEntityYellowBarrel; import com.hbm.entity.EntityBullet; +import com.hbm.entity.EntityChopperMine; import com.hbm.entity.EntityGrenadeCluster; import com.hbm.entity.EntityGrenadeElectric; import com.hbm.entity.EntityGrenadeFire; @@ -49,6 +50,8 @@ import com.hbm.entity.EntityGrenadePlasma; import com.hbm.entity.EntityGrenadePoison; import com.hbm.entity.EntityGrenadeSchrabidium; import com.hbm.entity.EntityGrenadeStrong; +import com.hbm.entity.EntityGrenadeTau; +import com.hbm.entity.EntityHunterChopper; import com.hbm.entity.EntityMiniNuke; import com.hbm.entity.EntityMirv; import com.hbm.entity.EntityMissileAntiBallistic; @@ -102,10 +105,12 @@ import com.hbm.render.RenderBigNuke; import com.hbm.render.RenderBombMulti; import com.hbm.render.RenderCable; import com.hbm.render.RenderCentrifuge; +import com.hbm.render.RenderChopperMine; import com.hbm.render.RenderCrashedBomb; import com.hbm.render.RenderDecoBlock; import com.hbm.render.RenderDecoBlockAlt; import com.hbm.render.RenderFlare; +import com.hbm.render.RenderHunterChopper; import com.hbm.render.RenderLaunchPadTier1; import com.hbm.render.RenderMiniNuke; import com.hbm.render.RenderMirv; @@ -194,6 +199,7 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeNuke.class, new RenderSnowball(ModItems.grenade_nuke)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeNuclear.class, new RenderSnowball(ModItems.grenade_nuclear)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadePlasma.class, new RenderSnowball(ModItems.grenade_plasma)); + RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeTau.class, new RenderSnowball(ModItems.grenade_tau)); RenderingRegistry.registerEntityRenderingHandler(EntitySchrab.class, new RenderFlare()); @@ -273,6 +279,9 @@ public class ClientProxy extends ServerProxy MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.steel_scaffold), new ItemRenderDecoBlock()); RenderingRegistry.registerEntityRenderingHandler(EntityNuclearCreeper.class, new RenderNuclearCreeper()); + RenderingRegistry.registerEntityRenderingHandler(EntityHunterChopper.class, new RenderHunterChopper()); + + RenderingRegistry.registerEntityRenderingHandler(EntityChopperMine.class, new RenderChopperMine()); RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new ModEffectRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new BSmokeRenderer(ModItems.nuclear_waste)); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index d07ec41d4..443be7e4a 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -471,8 +471,9 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.grenade_poison, 2), new Object[] { " G ", "PGP", " P ", 'G', ModItems.grenade_generic, 'P', ModItems.powder_poison }); GameRegistry.addRecipe(new ItemStack(ModItems.grenade_gas, 2), new Object[] { " G ", "CGC", " C ", 'G', ModItems.grenade_generic, 'C', ModItems.pellet_gas }); GameRegistry.addRecipe(new ItemStack(ModItems.grenade_schrabidium, 2), new Object[] { " G ", "CFC", " C ", 'G', ModItems.grenade_generic, 'C', ModItems.ingot_schrabidium, 'F', ModItems.grenade_flare }); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.grenade_nuclear, 1), new Object[] {"RS ", "ITI", " I ", 'I', "plateIron", 'R', ModItems.wire_red_copper, 'S', ModItems.plate_steel, 'T', ModItems.gun_fatman_ammo })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.grenade_nuclear, 1), new Object[] {"RS ", "ITI", " I ", 'I', "plateIron", 'R', ModItems.wire_red_copper, 'S', "plateSteel", 'T', ModItems.gun_fatman_ammo })); GameRegistry.addRecipe(new ItemStack(ModItems.grenade_plasma, 2), new Object[] { " G ", "SGS", " S ", 'G', ModItems.grenade_generic, 'S', ModItems.wire_advanced_alloy }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.grenade_tau, 1), new Object[] {"RS ", "ITI", "UIU", 'I', "plateLead", 'R', ModItems.wire_red_copper, 'S', "plateAdvanced", 'T', ModItems.coil_advanced_torus, 'U', ModItems.gun_xvl1456_ammo })); GameRegistry.addRecipe(new ItemStack(ModItems.bomb_waffle, 1), new Object[] { "WEW", "MPM", "WEW", 'W', Items.wheat, 'E', Items.egg, 'M', Items.milk_bucket, 'P', ModItems.man_core }); GameRegistry.addRecipe(new ItemStack(ModItems.schnitzel_vegan, 3), new Object[] { "RWR", "WPW", "RWR", 'W', ModItems.nuclear_waste, 'R', Items.reeds, 'P', Items.pumpkin_seeds }); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 777ebe649..d56fa5716 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -69,6 +69,7 @@ import com.hbm.creativetabs.NukeTab; import com.hbm.creativetabs.PartsTab; import com.hbm.creativetabs.TestTab; import com.hbm.entity.EntityBullet; +import com.hbm.entity.EntityChopperMine; import com.hbm.entity.EntityGrenadeCluster; import com.hbm.entity.EntityGrenadeElectric; import com.hbm.entity.EntityGrenadeFire; @@ -82,6 +83,8 @@ import com.hbm.entity.EntityGrenadePlasma; import com.hbm.entity.EntityGrenadePoison; import com.hbm.entity.EntityGrenadeSchrabidium; import com.hbm.entity.EntityGrenadeStrong; +import com.hbm.entity.EntityGrenadeTau; +import com.hbm.entity.EntityHunterChopper; import com.hbm.entity.EntityMiniNuke; import com.hbm.entity.EntityMirv; import com.hbm.entity.EntityMissileAntiBallistic; @@ -185,6 +188,7 @@ public class MainRegistry public static int mirvRadius = 100; public static int fatmanRadius = 35; public static int nukaRadius = 25; + public static int aSchrabRadius = 20; public static int radioStructure = 500; public static int antennaStructure = 250; public static int atomStructure = 500; @@ -197,6 +201,10 @@ public class MainRegistry public static int factoryStructure = 1000; public static int dudStructure = 500; public static int spaceshipStructure = 1000; + + public static int x; + public static int y; + public static int z; @EventHandler public void PreLoad(FMLPreInitializationEvent PreEvent) @@ -310,8 +318,11 @@ public class MainRegistry EntityRegistry.registerModEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 39, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityBSmokeFX.class, "entity_b_smoke_fx", 40, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityGrenadePlasma.class, "entity_grenade_plasma", 41, this, 500, 1, true); - + EntityRegistry.registerModEntity(EntityGrenadeTau.class, "entity_grenade_tau", 42, this, 500, 1, true); + EntityRegistry.registerModEntity(EntityChopperMine.class, "entity_chopper_mine", 43, this, 1000, 1, true); + EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); + EntityRegistry.registerGlobalEntityID(EntityHunterChopper.class, "entity_mob_hunter_chopper", EntityRegistry.findGlobalUniqueEntityId(), 0xffffff, 0xffffff); } @EventHandler @@ -486,6 +497,9 @@ public class MainRegistry Property propNuka = config.get(Configuration.CATEGORY_GENERAL, "3.91_nukaRadius", 25); propNuka.comment = "Radius of the nuka grenade"; nukaRadius = propNuka.getInt(); + Property propASchrab = config.get(Configuration.CATEGORY_GENERAL, "3.92_aSchrabRadius", 20); + propASchrab.comment = "Radius of dropped anti schrabidium"; + aSchrabRadius = propASchrab.getInt(); Property propRadio = config.get(Configuration.CATEGORY_GENERAL, "4.0_radioSpawn", 500); propRadio.comment = "Spawn radio station on every nTH chunk"; diff --git a/com/hbm/render/ModelBullet.java b/com/hbm/render/ModelBullet.java new file mode 100644 index 000000000..edf824414 --- /dev/null +++ b/com/hbm/render/ModelBullet.java @@ -0,0 +1,45 @@ +package com.hbm.render; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelBullet extends ModelBase { + + ModelRenderer bullet; + + public ModelBullet() { + textureWidth = 8; + textureHeight = 4; + + bullet = new ModelRenderer(this, 0, 0); + bullet.addBox(0F, 0F, 0F, 2, 1, 1); + bullet.setRotationPoint(1F, -0.5F, -0.5F); + bullet.setTextureSize(8, 4); + bullet.mirror = true; + setRotation(bullet, 0F, 0F, 0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + bullet.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + 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); + } + + public void renderAll(float f5) { + bullet.render(f5); + } + +} \ No newline at end of file diff --git a/com/hbm/render/ModelChopperMine.java b/com/hbm/render/ModelChopperMine.java new file mode 100644 index 000000000..c3d5bfd16 --- /dev/null +++ b/com/hbm/render/ModelChopperMine.java @@ -0,0 +1,45 @@ +package com.hbm.render; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelChopperMine extends ModelBase { + + ModelRenderer bullet; + + public ModelChopperMine() { + textureWidth = 32; + textureHeight = 16; + + bullet = new ModelRenderer(this, 0, 0); + bullet.addBox(0F, 0F, 0F, 8, 8, 8); + bullet.setRotationPoint(-4F, -4F, -4F); + bullet.setTextureSize(32, 16); + bullet.mirror = true; + setRotation(bullet, 0F, 0F, 0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + bullet.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + 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); + } + + public void renderAll(float f5) { + bullet.render(f5); + } + +} \ No newline at end of file diff --git a/com/hbm/render/ModelRocket.java b/com/hbm/render/ModelRocket.java index 0666df9ea..bf5296f72 100644 --- a/com/hbm/render/ModelRocket.java +++ b/com/hbm/render/ModelRocket.java @@ -4,70 +4,60 @@ // Keep in mind that you still need to fill in some blanks // - ZeuX - - - - - package com.hbm.render; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -public class ModelRocket extends ModelBase -{ - //fields - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelRocket() - { - textureWidth = 64; - textureHeight = 32; - - Shape7 = new ModelRenderer(this, 10, 0); - Shape7.addBox(0F, 0F, 0F, 1, 2, 2); - Shape7.setRotationPoint(-3F, -2F, -0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 0, 4); - Shape8.addBox(0F, 0F, 0F, 10, 1, 1); - Shape8.setRotationPoint(-8F, -1.5F, 0F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 0); - Shape9.addBox(0F, 0F, 0F, 3, 2, 2); - Shape9.setRotationPoint(-6.5F, -2F, -0.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -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); - } +public class ModelRocket extends ModelBase { + // fields + ModelRenderer Shape7; + ModelRenderer Shape8; + ModelRenderer Shape9; + + public ModelRocket() { + textureWidth = 64; + textureHeight = 32; + + Shape7 = new ModelRenderer(this, 10, 0); + Shape7.addBox(0F, 0F, 0F, 1, 2, 2); + Shape7.setRotationPoint(-3F, -2F, -0.5F); + Shape7.setTextureSize(64, 32); + Shape7.mirror = true; + setRotation(Shape7, 0F, 0F, 0F); + Shape8 = new ModelRenderer(this, 0, 4); + Shape8.addBox(0F, 0F, 0F, 10, 1, 1); + Shape8.setRotationPoint(-8F, -1.5F, 0F); + Shape8.setTextureSize(64, 32); + Shape8.mirror = true; + setRotation(Shape8, 0F, 0F, 0F); + Shape9 = new ModelRenderer(this, 0, 0); + Shape9.addBox(0F, 0F, 0F, 3, 2, 2); + Shape9.setRotationPoint(-6.5F, -2F, -0.5F); + Shape9.setTextureSize(64, 32); + Shape9.mirror = true; + setRotation(Shape9, 0F, 0F, 0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape7.render(f5); + Shape8.render(f5); + Shape9.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + 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/render/ProtoCopter.java b/com/hbm/render/ProtoCopter.java new file mode 100644 index 000000000..c508bcc3f --- /dev/null +++ b/com/hbm/render/ProtoCopter.java @@ -0,0 +1,128 @@ +// Date: 23.07.2016 18:06:22 +// 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; + +import com.hbm.main.MainRegistry; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ProtoCopter extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer Shape3; + ModelRenderer Shape4; + ModelRenderer Shape5; + ModelRenderer Shape6; + ModelRenderer Shape7; + ModelRenderer Shape8; + + public ProtoCopter() + { + textureWidth = 128; + textureHeight = 64; + + int x = 0; + int z = -2; + + Shape1 = new ModelRenderer(this, 0, 0); + Shape1.addBox(0F, 0F, 0F, 16, 4, 4); + Shape1.setRotationPoint(-8F + x, 0F, 0F + z); + Shape1.setTextureSize(128, 64); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 0); + Shape2.addBox(0F, 0F, 0F, 4, 8, 4); + Shape2.setRotationPoint(-12F + x, 0F, 0F + z); + Shape2.setTextureSize(128, 64); + Shape2.mirror = true; + setRotation(Shape2, 0F, 0F, 0F); + Shape3 = new ModelRenderer(this, 0, 0); + Shape3.addBox(0F, 0F, 0F, 7, 3, 2); + Shape3.setRotationPoint(8F + x, 0F, 1F + z); + Shape3.setTextureSize(128, 64); + Shape3.mirror = true; + setRotation(Shape3, 0F, 0F, 0F); + Shape4 = new ModelRenderer(this, 0, 0); + Shape4.addBox(0F, 0F, 0F, 6, 6, 2); + Shape4.setRotationPoint(15F + x, 0F, 1F + z); + Shape4.setTextureSize(128, 64); + Shape4.mirror = true; + setRotation(Shape4, 0F, 0F, 0F); + Shape5 = new ModelRenderer(this, 0, 0); + Shape5.addBox(0F, 0F, 0F, 5, 5, 2); + Shape5.setRotationPoint(-8F + x, 3F, 1F + z); + Shape5.setTextureSize(128, 64); + Shape5.mirror = true; + setRotation(Shape5, 0F, 0F, 0F); + Shape6 = new ModelRenderer(this, 0, 0); + Shape6.addBox(0F, 0F, 0F, 4, 2, 14); + Shape6.setRotationPoint(-3F + x, 4F, -5F + z); + Shape6.setTextureSize(128, 64); + Shape6.mirror = true; + setRotation(Shape6, 0F, 0F, 0F); + Shape7 = new ModelRenderer(this, 0, 0); + Shape7.addBox(0F, 0F, 0F, 2, 4, 2); + Shape7.setRotationPoint(-1F + x, -4F, 1F + z); + Shape7.setTextureSize(128, 64); + Shape7.mirror = true; + setRotation(Shape7, 0F, 0F, 0F); + Shape8 = new ModelRenderer(this, 0, 0); + Shape8.addBox(-14F, 0F, -14F, 28, 1, 28); + Shape8.setRotationPoint(0F + x, -3F, 2F + z); + Shape8.setTextureSize(128, 64); + Shape8.mirror = true; + setRotation(Shape8, 0F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + Shape3.render(f5); + Shape4.render(f5); + Shape5.render(f5); + Shape6.render(f5); + Shape7.render(f5); + Shape8.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); + } + + public void renderAll(float f5) + { + Shape1.render(f5); + Shape2.render(f5); + Shape3.render(f5); + Shape4.render(f5); + Shape5.render(f5); + Shape6.render(f5); + Shape7.render(f5); + Shape8.render(f5); + } + +} diff --git a/com/hbm/render/RenderChopperMine.java b/com/hbm/render/RenderChopperMine.java new file mode 100644 index 000000000..591cc1dea --- /dev/null +++ b/com/hbm/render/RenderChopperMine.java @@ -0,0 +1,38 @@ +package com.hbm.render; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.EntityBullet; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderChopperMine extends Render { + + ModelChopperMine mine; + + public RenderChopperMine() { + mine = new ModelChopperMine(); + } + + @Override + public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, + float p_76986_9_) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glRotatef(180, 1, 0, 0); + + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/chopperBomb.png")); + + mine.renderAll(0.0625F); + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return new ResourceLocation(RefStrings.MODID + ":textures/models/chopperBomb.png"); + } +} diff --git a/com/hbm/render/RenderHunterChopper.java b/com/hbm/render/RenderHunterChopper.java new file mode 100644 index 000000000..bb29bbc53 --- /dev/null +++ b/com/hbm/render/RenderHunterChopper.java @@ -0,0 +1,41 @@ +package com.hbm.render; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderHunterChopper extends Render { + + ProtoCopter mine; + + public RenderHunterChopper() { + mine = new ProtoCopter(); + } + + @Override + public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, + float p_76986_9_) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glTranslatef(0.0625F * 0, 0.0625F * 32, 0.0625F * 0); + GL11.glScalef(4F, 4F, 4F); + GL11.glRotatef(180, 1, 0, 0); + GL11.glRotatef(rocket.prevRotationYaw + (rocket.rotationYaw - rocket.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(rocket.prevRotationPitch + (rocket.rotationPitch - rocket.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/TheGadget3_.png")); + + mine.renderAll(0.0625F); + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return new ResourceLocation(RefStrings.MODID + ":textures/models/TheGadget3_.png"); + } +} diff --git a/com/hbm/render/RenderRocket.java b/com/hbm/render/RenderRocket.java index beae15fd6..70d9677c7 100644 --- a/com/hbm/render/RenderRocket.java +++ b/com/hbm/render/RenderRocket.java @@ -9,43 +9,52 @@ import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; +import com.hbm.entity.EntityBullet; import com.hbm.entity.EntityRocket; import com.hbm.lib.RefStrings; @SideOnly(Side.CLIENT) public class RenderRocket extends Render { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelRocket.png"); - ModelRocket md; + private ModelBullet miniNuke; - public RenderRocket() - { - this.md = new ModelRocket(); + public RenderRocket() { + miniNuke = new ModelBullet(); } - + @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - } - - public void render(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - GL11.glEnable(2896); - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(rocket.prevRotationYaw + (rocket.rotationYaw - rocket.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(rocket.prevRotationPitch + (rocket.rotationPitch - rocket.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - Minecraft.getMinecraft().renderEngine.bindTexture(texture); - this.md.render(rocket, p_76986_9_, p_76986_9_, p_76986_9_, p_76986_9_, p_76986_9_, p_76986_9_); - GL11.glPopMatrix(); - } - - protected ResourceLocation getEntityTexture(EntityRocket p_110775_1_) { - return texture; + public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, + float p_76986_9_) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glRotatef(rocket.prevRotationYaw + (rocket.rotationYaw - rocket.prevRotationYaw) * p_76986_9_ - 90.0F, + 0.0F, 1.0F, 0.0F); + GL11.glRotatef(rocket.prevRotationPitch + (rocket.rotationPitch - rocket.prevRotationPitch) * p_76986_9_ + 180, + 0.0F, 0.0F, 1.0F); + GL11.glScalef(1.5F, 1.5F, 1.5F); + + if (rocket instanceof EntityBullet && ((EntityBullet) rocket).getIsChopper()) { + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/emplacer.png")); + } else if (rocket instanceof EntityBullet && ((EntityBullet) rocket).getIsCritical()) { + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/tau.png")); + } else if (rocket instanceof EntityBullet) { + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/bullet.png")); + } + miniNuke.renderAll(0.0625F); + GL11.glPopMatrix(); } @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return this.getEntityTexture((EntityRocket) p_110775_1_); + if (p_110775_1_ instanceof EntityBullet && ((EntityBullet) p_110775_1_).getIsChopper()) { + return new ResourceLocation(RefStrings.MODID + ":textures/models/emplacer.png"); + } else if (p_110775_1_ instanceof EntityBullet && ((EntityBullet) p_110775_1_).getIsCritical()) { + return new ResourceLocation(RefStrings.MODID + ":textures/models/tau.png"); + } else if (p_110775_1_ instanceof EntityBullet) { + return new ResourceLocation(RefStrings.MODID + ":textures/models/bullet.png"); + } + + return null; } - + } \ No newline at end of file