From 41623ce697a8e7d1a36cc32d64bfc8fd989d03bd Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sat, 4 Aug 2018 11:44:45 +0200 Subject: [PATCH] Sat SMP fix, missile textures, crafting recipes --- assets/hbm/lang/de_DE.lang | 7 +- assets/hbm/lang/en_US.lang | 7 +- assets/hbm/textures/gui/centrifuge.png | Bin 3002 -> 3007 bytes assets/hbm/textures/items/missile_bhole.png | Bin 0 -> 299 bytes assets/hbm/textures/items/missile_emp.png | Bin 0 -> 304 bytes .../textures/items/missile_schrabidium.png | Bin 0 -> 296 bytes .../hbm/textures/models/missileMicroBHole.png | Bin 0 -> 8379 bytes .../hbm/textures/models/missileMicroEMP.png | Bin 0 -> 6286 bytes .../textures/models/missileMicroSchrab.png | Bin 0 -> 6667 bytes .../entity/grenade/EntityGrenadeASchrab.java | 2 + .../missile/EntityMissileSchrabidium.java | 2 +- com/hbm/entity/projectile/EntityBullet.java | 3 +- com/hbm/items/tool/ItemSatInterface.java | 7 +- com/hbm/items/weapon/ItemClip.java | 8 ++ com/hbm/lib/RefStrings.java | 2 +- com/hbm/main/CraftingManager.java | 5 ++ com/hbm/main/ResourceManager.java | 3 + com/hbm/packet/PacketDispatcher.java | 2 + com/hbm/packet/SatPanelPacket.java | 78 ++++++++++++++++++ com/hbm/render/entity/RenderMissileTaint.java | 9 ++ .../tileentity/RenderLaunchPadTier1.java | 6 +- 21 files changed, 130 insertions(+), 11 deletions(-) create mode 100644 assets/hbm/textures/items/missile_bhole.png create mode 100644 assets/hbm/textures/items/missile_emp.png create mode 100644 assets/hbm/textures/items/missile_schrabidium.png create mode 100644 assets/hbm/textures/models/missileMicroBHole.png create mode 100644 assets/hbm/textures/models/missileMicroEMP.png create mode 100644 assets/hbm/textures/models/missileMicroSchrab.png create mode 100644 com/hbm/packet/SatPanelPacket.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index f3a629899f..dc9a68435b 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -1318,6 +1318,9 @@ item.missile_exo.name=Exothermische Rakete item.missile_doomsday.name=Doomsday Rakete item.missile_taint.name=Verdorbene Rakete item.missile_micro.name=Mikro-Atomrakete +item.missile_bhole.name=Schwarzes-Loch-Rakete +item.missile_schrabidium.name=Schrabidiumrakete +item.missile_emp.name=EMP-Rakete item.missile_carrier.name=HTR-01 Trägerrakete item.sat_mapper.name=Oberflächen-Abtastungssatellit @@ -1531,14 +1534,14 @@ item.bottle2_korl.name=Korl item.bottle2_fritz.name=Fritz-Kola item.bottle2_korl_special.name=Das erste Korl item.bottle2_fritz_special.name=Die erste Fritz-Kola -item.bottle2_sunset.name=Sunset Saraparilla +item.bottle2_sunset.name=Sunset Sarsaparilla item.chocolate_milk.name=Schokomilch item.cap_nuka.name=Nuka-Cola Kronkorken item.cap_quantum.name=Nuka Cola Quantum Kronkorken item.cap_sparkle.name=S~Cola Kronkorken item.cap_korl.name=Korl Kronkorken item.cap_fritz.name=Fritz-Kola Kronkorken -item.cap_sunset.name=Sunset Saraparilla Kronkorken +item.cap_sunset.name=Sunset Sarsaparilla Kronkorken item.ring_pull.name=Dosenring item.bottle_opener.name=Hbms eigener selbstgebauter Flaschenöffner diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index d72211c662..72d4f6d8fb 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -1318,6 +1318,9 @@ item.missile_exo.name=Exothermic Missile item.missile_doomsday.name=Doomsday Missile item.missile_taint.name=Taint-Tipped Missile item.missile_micro.name=Micro-Nuclear Missile +item.missile_bhole.name=Black Hole Missile +item.missile_schrabidium.name=Schrabidium Missile +item.missile_emp.name=EMP Missile item.missile_carrier.name=HTR-01 Carrier Rocket item.sat_mapper.name=Surface Mapping Satellite @@ -1531,14 +1534,14 @@ item.bottle2_korl.name=Korl item.bottle2_fritz.name=Fritz Cola item.bottle2_korl_special.name=The First Korl item.bottle2_fritz_special.name=The First Fritz Cola -item.bottle2_sunset.name=Sunset Saraparilla +item.bottle2_sunset.name=Sunset Sarsaparilla item.chocolate_milk.name=Chocolate Milk item.cap_nuka.name=Nuka Cola Bottle Cap item.cap_quantum.name=Nuka Cola Quantum Bottle Cap item.cap_sparkle.name=S~Cola Bottle Cap item.cap_korl.name=Korl Bottle Cap item.cap_fritz.name=Fritz Cola Bottle Cap -item.cap_sunset.name=Sunset Saraparilla Bottle Cap +item.cap_sunset.name=Sunset Sarsaparilla Bottle Cap item.ring_pull.name=Ring Pull item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener diff --git a/assets/hbm/textures/gui/centrifuge.png b/assets/hbm/textures/gui/centrifuge.png index 04d90340a0d5729cbfd07365d519169a824d1409..36d3712547f6cd9096ff6b92769617b746106787 100644 GIT binary patch delta 2453 zcmXX@d0f)j7XN{$s3~9;Jj(@5%TmcHGs6WJ%H3>Ss*yx#)ZBAzc?dd{lep&0Xlc1- z=GM63r~@+j5o^@UAwx4o%^h*y5qS9CyZ?Oe_uO;N_j}H5MYbce&Vu5zOG;r4C^{evJz8Sovl#RW+ zy%f=0D$agXaw7hUQc_(Qjaj42^&jILEZ)w}>kZVMDC)Y9-&>$YsfZ_^C_?}SFOjRU zadCP&I$SQ-3x!f36r3|XMA=ov*`G*s`JuWYx`~j!v2kou1waSSJ_#L6(FX%LuU;>o z70{p{>SK;~luqmBT$u!odlsf7SXk(pU1@G^W)DlnPO>3Tz~#xU6)uh0+D%+*)Auhz z?}suRSA04{udl~#@M^vsQHRvoQ2|z2-eF1JTkGIWMZjYjJ~a@9CD zIws~@+4If-lU9xO{CU1+>9%QDoAVNZIu&gmB2zWs6cG_o(0EYz;#U5~z3`3u&t!~V zatUig`1TeUIYG{rhZs9oq&Hj=8EO}UaKMKVTpuPHdw^Lt>z%6w!ujw)i{o-KZOWEMx-4X1Bk{A&>h}P|q;EAd zSPZD-zzh|PoPeW81}|)ietEN_0BUX=O+7Q@od)WC?}`gYacnyA_)K0V;{hpz|l2dd=OFy3e#Pk;Xz)+G#Ll4cky?ut8!rlmwJhmcL(A zci(Bb<&V`Lqvh}*Mu-g23QY90oBXqvC-Vi;GBq(rL-w@74}V~ColCilsvK`w9SVPt z68d)ts**M|-UIpl61)AIkeXnq$(DzT7daLZPo+;e5-=go{y_Pmw zOf8YeH4G!`tE?N5a9zmRMB-!bgl37xhOoIFlZfPdm+Q}4Py>#ZhbSwW-^dylLr zW{XwhL&Ii2ox`r*euh_~()k@9DQIG}oU%vWb*qZA28HfyvZ)0{G@d_UwJBQTYCVDR zXDxwja=(v%QIq`Tm7U~Q;x4t`nWZkWX;@*zoi-{I@_+!vEm7~fPNz=&h*O++I5cu-4G3y(VC+ryB>Enrn zQTZ^5c-{{xS>9~4)dn(h_T)}d4nI?L<1i~enZA`wO)gh0og1^uZoj{?_U$$=qIl5X-`*z z@URi^C1UI0bxcG>X8__QloW2}*qba~XAJrDcKN{YiHW;Sp?=tIZX`u%QA<)<<}zgg zq*o$Gw>C8Kk$;Vcv$}+P>1}|t_dwx~ZG=x^(ef2EzCThX#Ay2*Gg*7ex@7jK9E%y+ zejha@;fPa~B)ZYYI?)(@TnnXU6sa?Vy(Wq^_`xyZB5@}B3?Y)2fPFS->_7VXk^Xze zqRI?N`jd0VyJe1o2qJN_(xvm~GQGdt;;N&pRu&i{kAz4}su@ z*vp{2t6DhVP#6az&cvEsu?Mutc084W zDRbr#5OuwY09Gp)7fKWSM5@#hGh69%1`_gKfpSS@P8X=YJ(*<%W~oa_4CC05rDKK>3(_61+%TSV7d-RU3b`ibNALa@%{WH1 zlO~4-_Z@sw{jZUIkOrS_0(qF_pQWX{Y#>kWYpV2?K>(u)rn=cP;;9ExYE}5Lrg?v0 zzwI;hUqAidWq>BN=|iS`5MKLB|3|kNd{Ly8=AIcvt0{fNnsN&7ans!MT`JD8v6T5- zd?+bTo=9UJ{HMzW7kbpZEYk$ohsYj1+;lTcLAs4eRqeIpNF5-naVpxN`IH&#x|!#2VR6Y1#aok1F}rOz&jKOxLF+o&+y9(!P`_zV75{K}Dpz`1g~ipLA5R7NZn^n`r>>opjv>URzob1wT7@sC7m(3`IpH z^>|uR1FQ-!jUZSM8EV8?*qHI(H-PCAi8*Mcq@2@A5EKg{()uw#!QLR(UJOW&Bi_xv I)|Qz3A8uu-r2qf` delta 2474 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 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/missileMicroBHole.png b/assets/hbm/textures/models/missileMicroBHole.png new file mode 100644 index 0000000000000000000000000000000000000000..f76cc8c55ae72db98e3bc4b1e325282614d76073 GIT binary patch literal 8379 zcmXYX1zc0__x}LtMq<(^sep8j5Ct49A`%l35RmTf5M`8fNr~{GJ4W|tR8V@1oRka@ z7>xK`zyJSU+wR@#?m727=e*B3@AEwOqk*0#H3cgL2n3>rK7C>c9K-&7$VhY^45JSHYU_wTI2BbUQ?v16 z{k9&|S`M=EDpRbz<&rnuSBWz_f6Cj=@&YH1k3z4fJoWiV<%b`+)KKBpNmX!`dJxo**OeF!P`gg)kBgq;+dY)_}1};9pkJ~on=I3V|R~lD% zpnf`}t-57)9gIn*r0!1GHjHDA$DZrn>jqM_CZ^Ic6<|E#cqojaC^U zOxF2&rGc4UQ{AadtnnII6Si;H>h9mz_Fi;NZEwE=RA-us>3;)ENKubKf7^gx^Fz9#w(Pbh;6Y(JmTTB6$2aP6;F_08Av{|D{>|tBUP>sOSbm1 zl8Zoj-$rZ%wbeafLeCyvag^5LUeyGX};(VE)ChsN3>z6wcy-TVY#skJb zs!oq3Max!qAK(e8;yc`@JCs@DDfE+yTW``gR>2{)*m)=8T9UP-{=i9g14GrXk_1D+ zNfloO!{`H(DfVlOD|Gl%B4$iYieC_}b+Hgrp?57i^(gB?Za-EgRe`loYeG3h0o;r_ zg!Q#oj{&%H?;KfpfWE`+ZNkpX*7CVnP`h5^NRL`q!aao9Q{l7m-aR2fWU}-ek*SdR zTjgP&vU(7+hfEGrhQ2XKOZMsdaqIGk%|COm?a0?4LMnIf}co`r;=K3*EdWLg>7VyCkC!$3B{^OT$I}Uof^UZw7~}bn~z!55i0P24@!(( zdK{+KbVUq}-AvT@aMFN-EBU;IaypBs63(*qc|JiWF#Rr{$Q=Cg0|rLM$f z415qAdL$WivL-OnA4B`#Zb|&0Eq)yB?wq=z_TA_8?taUPs7W99H$OCputwkoE7=cH zSm(_(o&_#-ITX!iOaH!xzds|TOZ!5AMWy2GpGF%aDHPx$DjPzBNoe^bidN+k+volI z*vzjq<8=sv@xR<`&W!-W6Clm|*UM?#M2nft}{Q|W0yt%$AGAJ%};hg7fUs!RqX7m3^7Xi!e z`Pn|Q(+OX>y5Wt4Cc8^?;6Fxp87@guq6z8eL6+ZwNnD8Vp4IBjYb8m>1R|o^E&B&8 z&&oY&!&zM}nr1DuC2Ck~Ph5UniEfAFS6)BZzLCA7qkO)X&G6o|m^8^@6-dkTVTy6x zXPpPH@MdR!mMdzBtQ`DO_8daH;|vD+ z11j)8XK9_lUaMZ_<>R*T$`8A6Ru^5}2CX8qeJ9Pb3iopsZbx8n!IS2^MrcTB ziG5A7PAJ}0PA1?lpq?37t2$PfQC^uCo<;(eyO=)Q|m?s)8h_}*}}Y}h#P z?t<3fu3D1gC6r>=(UA&1SR|}GCGZdVkRBj)rBvc~%v$1b!PA}0G2y4J#r)Z1^f^hb ziK`9D-HDh3pAOP_kr%U16zg(Yy&vYL4Io=Mt)>yd6T0y3?WR|w&HE>jd+9}>mFv@% z2b96g%^&=6*wwFW*N2IrOOpIUyN(xiGHTR3RKi|fUa8f)NATB|Ysu-?zcp2MQlx3Z zucQ(r@(PJ6s*-?-y}mxmkfpJ5U1k;+4#N|Vll(Ap2vVER3W;o%b)S~byk}^!^$p|w z@ZS2|7QL&M3-CW0MHgM5dorCBnuaRBKmMHO%i*qnQO{j1akM_;l@r|@mOg?xCq8DVHbws!dD1Kd z!Z?Q4nrf%serS1sWIw1VJ27^l@5e05#Y!~INX$Bl_yB{p#a~T{+>SMTY;Pi6Eh@7(EZ6MK(Gu2D_0rAtG{pGnYez1RGLfL$ntw*tH0JKUpK~3< z4$+{vt(5aIKy9=S@$iR(h2I|^B6L#{?}~?1?)?2L1z3$m7FFx6Y4}o9H|qQjR2!~s zCO#wv9g^m7sNy}%)~ot|_ojL1!sW?+nphW?AAovKfGt{5%=c`zi9CKi+(762ZgzOtJ znZ6HkkFjm|B=Z(^s?iagTntN89on?R*D8m@nIWt)jcIdL8CLg~lR`O!%P<<`@+~ni z5DtErsp6Xb_wusC!!feAz)Ak`3TJGiS(TQtrJC&`vv^qjuO@{QboQcH81%sxY;#ND zrn1?6zZ^okBV3MG@}MRag}m!7$0<*X3p~@f7t39Rm&WuUG`~EnTXJT07<78Bu;nzp zHSes^bS8{$cA~cy8=aG5`Kd0M6Qa@g#xbWra6i5MGuvGGMtdO7$B8CsTTRdymnqjm$CXYkux(qZJ{Q9`3o*A0oUZqTgJCJI1x-hT zR?ki^AEhAZ6T1H}i;F~PAk5HGoQa+Q4Ije2YyKcUi@wQndyx04zNS-~Kqu05$KKXj zhmk^c$?U32rd9AdHCoEd_fZU+BQ&oU9noNC<+p+&>WwE%-s{@;XNTK0n0}lpc{d?1 zC(=&w$kk!}!f|ve^!j+}X9JmH%Ln&vj+*Zg>U(-Sx#?Ie2Jpn&btLiKNqD=m6a8_< z*rbTn(w&($jc=j#lOI3sYV73uz`=pUi~~#>kpunA;-LtmcLn}fnNF+K6iU}m#cG>q zg4rMPLvWkyRBMiDcRah@=3QQYr#~zk4S1{XdBpPw^|)7xxBvK2qmLqZPpq&vFU$vO z=lnQ2KBg5=Ykv9u`?)K$iQ2 z<6$I&EyW#573ciVjucgHE)WLFQKc-uyBvdptz4)T{z?2RHgvXFX~)(#d)G!=J&8mb{s)6ylC7|AH`nkwfG~>uxhS`#R$f06*GMY9 zj6YjFwtbAi1P=qw0vfydc~ke5RHyxNSd*uqTU^83{W$c#1o<67CgX%gBWI5*5i7Hn zNiaFJNtyfm1EesDzjsiw^m0hsePvwoB+RG!^bdiV8zF_jkUoD3(2XZoJCCj+#M@=s zgZM*$;6D}an2c(tK`*O=DeErF8NX4YkJ*CcZxa?YPY5qoN4B8NhIr}hVci_Esi(^F zaYZ0TH*lQ5a$U}Bou6|5-RxQ(=9d3L%-dVWI-Eli)mfty@)V=JA{`#s^2H0-(|A+& zgOPu3a5%r+FXk0L2m2*JW~H@AB$8>ZrKQns;U%9K!U_&fkv9(er4=75|9(WQZ*yyp z+C;E&qKxI&q?H>Dgdyb;h#mK;2t4R_oe9vv1H<`J3$TBmz+TX3$Y(zEWI2^Gwu~Iq zEj%vS0E)_EzxCrNKH;0+zyG_N-l{AbFdLb(MJ0GIaB_i_c-C7WiSm`K$O{$KdY2F} zu#?cd%`$~c{jffPe~baju2=9cHtSao?o*@gyBv|&L9Y=X7DJ@c?Zsyu)6>)UFX;`J z-rfSEzFMA&LOToJD+&EdcvJvhT0!9n=1%%JdtAnrYegPK89FWaq_Jm%W1=&k_bg^p7f4+<*? zXRbj+GCy$k^l7)ZV+fNhb(@M>tbXvd`o3`KNeEoz-_lNG%Egykd&GAYi2 zy7FP<9f)1~?5gDQG}np#^O>A~-)p6PM5T(_$)sbnIWt&~J8f2!gbbQHIS5T%@qa%m{YzuL2trKk(N zn9dKW&Zd7rXWzz9&Zs(56ySMF6g}4&=w3Sg?$L2VU4p+K+X1B;Py@rYre`jF{^*E1 z=9kT2Oz+R!N+L3O_RVd<+7Kz;P(?bYo82RxHdfba(_$m%lnutp&g#sy;ZPPp zSZC}Svm;UYTpA|-UjUm@ToIOabS)@rw@r1rIlM4+(!dP#F3}@t7aC0LqsXgpZX%Br79soYkOP}-Hh zOE<>suWO08=@~UHNSN-YPQqe3vD`YyCIE7YMVylJGB5CqH&G|XBOK43qw~%c%M|lZ zg)%s)tv`L{Tx~YrnhIPiJgjv$Asy}K%?5c4qk~m=e;AWdD^#g^q4>*Ey;CxstO{Qx zT7HL(*u12RoZRrZr|m)DGmk6R>Xi6?`IxnyL)NvdewjJPcce&42ckqnd0K&db#xeol}hZ z)+pnd^5zc``YMfp!;$tyHZ(4M&dmh-gf}Bcp==%hjw6ORwRE@bNT;yO_}UkL!XJJQ zTQcKE&$tr%Zt8a)!Q|V)m>R!72+XLG1Z{KBtQy&C=(2jpL!k%GAxoRu%+XMf{iU)( zbL7))n3an!dTlGq2y+Ik%NkKFdvAmUrcR*lBQCy+t@H!SZzpa-qnm$!VCvEgjU>?0 zbB>Q{B_FU%$Ju)pm7w_@Nh}?|)ygXz31%E}1Z9NQw3FV*H<=bMw!SGd_ zu(2k>muoWQc~P#MO_Zl7jV*cHN}9q-q;}iPJ?>(InPzY5dJ)so<&o>|{#HX!#`9M= z_wgG(6So(#H;d42U^yN~Ob zSAb*V>RN@^L``A;oF%}1ITy&Z}96TyR6`QlSSVlzoMk?2qVyMxCfdpIgwb| z^l`A@OyeEZU6=T8vgDittDobHR)VYMMH^cAb@uV`pIrQx?A^wYNniaE-d=!5f?9u-+3BoG!DA>JDUO z>BB)}LVod{4cyi>V%gnsuEZ9 z&Z+J~R}7eIdrLe{_}%R#(0rQ=Jt2rkJ|6}`c9 zaFq8e9>~-1R(JlG{UzO2Ka3cxfUD(n0PqkbS?SX!X}I++=3?KIlDV{KPjJCjXhfl- z^=Zls`qy?Xi*i{v^~B%CaPc$CrKTENga5I|p#NaZQ|jDOv%HBSF$Sw@PZh~KkVW(~ z$pKRY4~P9AqHJagQu4=cCJVgA%qjXNg#iz68>y$iIIYG^7svk!l3{`40$W7wl zHKFUD59*;qq9rCSgN?hD^8yas_A zeMdG5Gh<@YrCG=Dl_9}FV~h${QmzNldJZKCVzR99N6`<1Rt?iriXB|UClC8YNjjag z+aC&1pgT`5GgDc5M3<^7meaErP+iUTAj^?*62o?pOx$R>dqdq ziY_sax%%EKlnR+++;l#S!Sr#?Sl7PUe}10|&DmnpiS~&%Dci;9Fx&}$E;8`Ddx9)i zk2OjhIz*OGVL_LAR$h~cflYFcUn9UaPL{5NbG`QkQT#oQE??i0oG%uRrS%3sJ@LXi z<1YN78WU!wzAoyDXUBa|mk8cveUF)hkKKrBDmJuD(iF?`WGF=J886Sgfe+n(^j*Z= z1}+9YGR0lsY?ddZORbzv?+VjsZJLoY?*;Zt&M(}NB@7XF9>?{P=zk`Y==0IQRt5z_ zkOC(!C+OB7w9fsS6;5D6jOF2+(d`4I`2N~rfu(*vD=nIQu)a`%deW^a&xsQ>NC-1) zPQxKU%z+Tp%`CFT68;g>#Zhsm#{J{tTi)bq;Dbf$M*9_0)v+haKk3jTVuIox-uG>j zhlr{9htWf2_f+)Pch_~>zylr@lW!h=Z>~91&ZGId>6>f?DK2py7JsuDw_D~PmcA*u zp!xXGj)VLUqBsLatRa_Y`H55IbM{1BX*)AejfnLr_C?E2iW~1xL53 zdwqv4`J{`jQ{j%SzXxD@&qs$R##F{$bLqF`RI(`*WSLsJQEBxd5d2y@FqBrW(s#vA zGqklXR^US^JPkp{DXB@7@y}x%h)rs~Zu}Ni$_PoEaUMW$-`yxDY{D6xvvjJtZnuy= z-Em!gB0sL@(hm}8u;-_{hYo?*Ry(sy$&JIzcwk-4YK3lbND!_}Jlxr7@GIMYy!kgZ ziJIZ75T{@lh_qdACb>0@EVL6ITlPnWX~6Rb>F?C<=BWMWv80wfnIC*SQpSF&u-FFC zFeiN!AJsDq4iuc-7_lgg(MggFv%$|ICHZCFG!i;bOsfNwl$g##6ebmG6SiCP$=%1s zCI75*-46bGfrRlT-I)**?KkhK>se$A}>fi?{<$q<$at!1I z@`;QTju%ReXk(gbL-==%?PQg+!?k}I_wuf;B>~HxmAzB93qUUIwgeDS=E$kLIcoy9 zTPyAjmvN1%r$=VoyCp8V4qCs@TEi_C4jP z*IWm`s&%8{UdQ}tCcUSA(w7_`#)D-Ali=yNfsK=YOfUAwIb?At__;?Ja}s3nHJ9sI z!Wu5zU~<~~)f>5Z^#v@ZuINc|mQyA5hYe3)MS4o<40b3CjvkxGC&vPgk#TVgukf$6 zoE*7wUYn#?$Yo~yT&YC!XECqT83$}DX2`rlXT!$eb(BvFe{TTRA)K8CNV}%0_U-1rLS%_-fBRWVCPOh#pd}_qNwX-D3Lip zinPnq#h8DJE)37+H&j?N=oHmHt$r`h=e63;{IVKJ_{2=I1AeOQf7}H-{mD>d6u=fx<)3vy_9CJMmdYL&LjEii&j- z`ubH5=0v9>^?teBZux20RN^R~$0h6P5r?OGnv*GKo+<(#Ir)R4(R87x`vGfP)vrD> zl|KZY4Y2+9EI>x(E@81F|9`DqV)5YxyPy!M>dxj7z8Lu(zHzQPpyS4EhpW0om>}cD z?i5=sbs)l>J#`?tjR} a4S}I((Q#1+J#a%12&%64q*~1~;{N~+w%pSI literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/missileMicroEMP.png b/assets/hbm/textures/models/missileMicroEMP.png new file mode 100644 index 0000000000000000000000000000000000000000..43135573a74b0d8971a6fd19c743decc4f381979 GIT binary patch literal 6286 zcmeI0_dgYW^vCbQb+2`ejKW39ULospaj!itGAeP6%!`|q?YcIZNmj)*Q<;&B?2MEV zB`RdED0}37eg1~;kKgZkJkI+(9_KyIc|G4hydRHuBF;pY5yk@p004~odKmNbNczvA z;PY{JHsk0#KwLGAH35LyH2A3l4FCWJ;EZly&+|%3O3KR0Dk>_fs;X*gYA6&+U0q#6 zLj#RQYieq0X=!O|Yhy4NEEcPyqob><>*C_#>gwv|=H~A1?&0C#>FG%z5WKv+yuH1B ze0+#R;=OzKe0_cW{QUg={ey#pLqbAALqo&D!otJDBO)RqBO_TAscgzr5fiEyjw)$E zmAXNdwWiA1P!(=d6>X_Xc2pHS73D;oZUj�VEPBDk_RhCPzm{$Hc_M#>U3Q#l^?R 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 literal 0 HcmV?d00001 diff --git a/com/hbm/entity/grenade/EntityGrenadeASchrab.java b/com/hbm/entity/grenade/EntityGrenadeASchrab.java index bccd8e44ab..7a3091fc19 100644 --- a/com/hbm/entity/grenade/EntityGrenadeASchrab.java +++ b/com/hbm/entity/grenade/EntityGrenadeASchrab.java @@ -46,6 +46,8 @@ public void explode() { cloud.posY = this.posY; cloud.posZ = this.posZ; this.worldObj.spawnEntityInWorld(cloud); + + this.setDead(); } } } diff --git a/com/hbm/entity/missile/EntityMissileSchrabidium.java b/com/hbm/entity/missile/EntityMissileSchrabidium.java index ba5e565663..5e6e566b90 100644 --- a/com/hbm/entity/missile/EntityMissileSchrabidium.java +++ b/com/hbm/entity/missile/EntityMissileSchrabidium.java @@ -65,7 +65,7 @@ public List getDebris() { @Override public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.grenade_aschrab, 1); + return new ItemStack(ModItems.powder_schrabidium, 1); } @Override diff --git a/com/hbm/entity/projectile/EntityBullet.java b/com/hbm/entity/projectile/EntityBullet.java index 1875acef21..d3a9bc954f 100644 --- a/com/hbm/entity/projectile/EntityBullet.java +++ b/com/hbm/entity/projectile/EntityBullet.java @@ -32,6 +32,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.RedBarrel; import com.hbm.entity.grenade.EntityGrenadeTau; +import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.entity.particle.EntityBSmokeFX; import com.hbm.items.ModItems; @@ -582,7 +583,7 @@ public void onUpdate() { ; } } else { - if (movingobjectposition.entityHit instanceof EntityLivingBase) { + if (movingobjectposition.entityHit instanceof EntityLivingBase && !(movingobjectposition.entityHit instanceof EntityHunterChopper)) { EntityLivingBase target = (EntityLivingBase) movingobjectposition.entityHit; target.setHealth((float) (target.getHealth() - damage)); } diff --git a/com/hbm/items/tool/ItemSatInterface.java b/com/hbm/items/tool/ItemSatInterface.java index 895d182e95..bbedf92ab0 100644 --- a/com/hbm/items/tool/ItemSatInterface.java +++ b/com/hbm/items/tool/ItemSatInterface.java @@ -3,6 +3,8 @@ import com.hbm.inventory.gui.GUIScreenSatInterface; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.SatPanelPacket; import com.hbm.saveddata.SatelliteSavedData; import net.minecraft.entity.Entity; @@ -29,7 +31,10 @@ public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean if(!world.isRemote) { SatelliteSavedData data = (SatelliteSavedData)entity.worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - satData = data; + + for(int j = 0; j < data.satellites.size(); j++) { + PacketDispatcher.wrapper.sendToAll(new SatPanelPacket(data.satellites.get(j))); + } } } diff --git a/com/hbm/items/weapon/ItemClip.java b/com/hbm/items/weapon/ItemClip.java index 77f93b4895..360fd9d823 100644 --- a/com/hbm/items/weapon/ItemClip.java +++ b/com/hbm/items/weapon/ItemClip.java @@ -300,12 +300,18 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_bf_ammo, 1)); if(player.inventory.hasItem(ModItems.gun_mp40)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_mp40_ammo, 32)); + if(player.inventory.hasItem(ModItems.gun_uzi)) + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_uzi_ammo, 32)); + if(player.inventory.hasItem(ModItems.gun_uzi_silencer)) + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_uzi_ammo, 32)); if(player.inventory.hasItem(ModItems.gun_uboinik)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_uboinik_ammo, 12)); if(player.inventory.hasItem(ModItems.gun_lever_action)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lever_action_ammo, 12)); if(player.inventory.hasItem(ModItems.gun_lever_action_dark)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lever_action_ammo, 12)); + if(player.inventory.hasItem(ModItems.gun_lever_action_sonata)) + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lever_action_ammo, 1)); if(player.inventory.hasItem(ModItems.gun_bolt_action)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_bolt_action_ammo, 12)); if(player.inventory.hasItem(ModItems.gun_bolt_action_green)) @@ -328,6 +334,8 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_emp_ammo, 8)); if(player.inventory.hasItem(ModItems.gun_revolver_inverted)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 1)); + if(player.inventory.hasItem(ModItems.gun_revolver_inverted)) + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 1)); if(player.inventory.hasItem(ModItems.gun_jack)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_jack_ammo, 3)); if(player.inventory.hasItem(ModItems.gun_spark)) diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index 5da3c4b2ba..c03a41d24f 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (2835)"; + public static final String VERSION = "1.0.27 BETA (2855)"; //HBM's Beta Naming Convention: //V T (X-Y-Z) //V -> next release version diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 5c0fe5dd46..5d8b77d74d 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -516,6 +516,10 @@ public static void AddCraftingRec() //GameRegistry.addRecipe(new ItemStack(ModItems.missile_exo, 1), new Object[] { "W", "T", "M", 'W', ModItems.warhead_thermo_exo, 'T', ModItems.fuel_tank_large, 'M', ModItems.thruster_large }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_taint, 1), new Object[] { ModItems.missile_assembly, ModItems.bucket_mud, ModItems.powder_spark_mix, ModItems.powder_magic }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_micro, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.gun_fatman_ammo }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_bhole, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_black_hole }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_aschrab }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.cell_sas3, ModItems.circuit_targeting_tier4 }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_emp, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModBlocks.emp_bomb, ModItems.circuit_targeting_tier3 }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "AHA", "TCT", "TPT", 'T', "plateIron", 'A', "plateAluminum", 'S', "plateSteel", 'C', "ingotCopper", 'P', Item.getItemFromBlock(Blocks.piston), 'H', Item.getItemFromBlock(Blocks.hopper) })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_centrifuge), 1), new Object[] { " T ", "RDR", "RSR", 'S', "plateSteel", 'T', ModItems.centrifuge_tower, 'W', ModItems.coil_tungsten, 'R', ModItems.coil_copper, 'D', Item.getItemFromBlock(ModBlocks.machine_difurnace_off) })); @@ -813,6 +817,7 @@ public static void AddCraftingRec() GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle2_fritz, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, ModItems.powder_tungsten }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle2_korl_special, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, ModItems.powder_copper, ModItems.powder_strontium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle2_fritz_special, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, ModItems.powder_tungsten, ModItems.powder_thorium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle2_sunset, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, ModItems.powder_gold }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.syringe_empty, 6), new Object[] { "P", "C", "B", 'B', Item.getItemFromBlock(Blocks.iron_bars), 'C', ModItems.cell_empty, 'P', "plateIron" })); GameRegistry.addRecipe(new ItemStack(ModItems.syringe_antidote, 6), new Object[] { "SSS", "PMP", "SSS", 'S', ModItems.syringe_empty, 'P', Items.pumpkin_seeds, 'M', Items.milk_bucket }); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index d4edf3ca0f..5cf056b223 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -249,4 +249,7 @@ public class ResourceManager { public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicro.png"); public static final ResourceLocation missileCarrier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileCarrier.png"); public static final ResourceLocation missileBooster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileBooster.png"); + public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroBHole.png"); + public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroSchrab.png"); + public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroEMP.png"); } diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index a872337304..88ee8c2d04 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -67,6 +67,8 @@ public static final void registerPackets() wrapper.registerMessage(AuxButtonPacket.Handler.class, AuxButtonPacket.class, i++, Side.SERVER); //Siren packet for looped sounds wrapper.registerMessage(TEVaultPacket.Handler.class, TEVaultPacket.class, i++, Side.CLIENT); + //Packet to send sat info to players + wrapper.registerMessage(SatPanelPacket.Handler.class, SatPanelPacket.class, i++, Side.CLIENT); } } diff --git a/com/hbm/packet/SatPanelPacket.java b/com/hbm/packet/SatPanelPacket.java new file mode 100644 index 0000000000..c1a3389712 --- /dev/null +++ b/com/hbm/packet/SatPanelPacket.java @@ -0,0 +1,78 @@ +package com.hbm.packet; + +import com.hbm.items.tool.ItemSatInterface; +import com.hbm.saveddata.SatelliteSaveStructure; +import com.hbm.saveddata.SatelliteSaveStructure.SatelliteType; +import com.hbm.saveddata.SatelliteSavedData; +import com.hbm.tileentity.machine.TileEntityMachineRadar; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; + +public class SatPanelPacket implements IMessage { + + int id; + int dim; + SatelliteType type; + long lastOp; + + public SatPanelPacket() { + + } + + public SatPanelPacket(SatelliteSaveStructure sat) { + id = sat.satelliteID; + dim = sat.satDim; + type = sat.satelliteType; + lastOp = sat.lastOp; + } + + @Override + public void fromBytes(ByteBuf buf) { + id = buf.readInt(); + dim = buf.readInt(); + type = SatelliteType.getEnum(buf.readInt()); + lastOp = buf.readLong(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(id); + buf.writeInt(dim); + buf.writeInt(type.getID()); + buf.writeLong(lastOp); + } + + public static class Handler implements IMessageHandler { + + @Override + @SideOnly(Side.CLIENT) + public IMessage onMessage(SatPanelPacket m, MessageContext ctx) { + + EntityPlayer p = Minecraft.getMinecraft().thePlayer; + + try { + + if(ItemSatInterface.satData == null) { + ItemSatInterface.satData = new SatelliteSavedData(p.worldObj); + } + + SatelliteSaveStructure sat = new SatelliteSaveStructure(m.id, m.type, m.dim); + sat.lastOp = m.lastOp; + ItemSatInterface.satData.satellites.add(sat); + + ItemSatInterface.satData.satCount = ItemSatInterface.satData.satellites.size(); + + } catch (Exception x) { + } + return null; + } + } +} diff --git a/com/hbm/render/entity/RenderMissileTaint.java b/com/hbm/render/entity/RenderMissileTaint.java index 155419052a..598f5debaa 100644 --- a/com/hbm/render/entity/RenderMissileTaint.java +++ b/com/hbm/render/entity/RenderMissileTaint.java @@ -2,6 +2,9 @@ import org.lwjgl.opengl.GL11; +import com.hbm.entity.missile.EntityMissileBHole; +import com.hbm.entity.missile.EntityMissileEMP; +import com.hbm.entity.missile.EntityMissileSchrabidium; import com.hbm.entity.missile.EntityMissileTaint; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; @@ -37,6 +40,12 @@ public void doRender(Entity missile, double x, double y, double z, float f1, flo protected ResourceLocation getEntityTexture(Entity p_110775_1_) { if(p_110775_1_ instanceof EntityMissileTaint) return ResourceManager.missileTaint_tex; + if(p_110775_1_ instanceof EntityMissileBHole) + return ResourceManager.missileMicroBHole_tex; + if(p_110775_1_ instanceof EntityMissileSchrabidium) + return ResourceManager.missileMicroSchrab_tex; + if(p_110775_1_ instanceof EntityMissileEMP) + return ResourceManager.missileMicroEMP_tex; return ResourceManager.missileMicro_tex; } diff --git a/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/com/hbm/render/tileentity/RenderLaunchPadTier1.java index 2b40bdd24c..b900a558b3 100644 --- a/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -196,19 +196,19 @@ public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double if(state == 22) { GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicro_tex); + bindTexture(ResourceManager.missileMicroBHole_tex); ResourceManager.missileTaint.renderAll(); } if(state == 23) { GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicro_tex); + bindTexture(ResourceManager.missileMicroSchrab_tex); ResourceManager.missileTaint.renderAll(); } if(state == 24) { GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicro_tex); + bindTexture(ResourceManager.missileMicroEMP_tex); ResourceManager.missileTaint.renderAll(); }