From 0d4e75fc4292b99f70b3764ec35428a6ffddddff Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 4 Aug 2020 13:38:40 -0400 Subject: [PATCH] Re-added remote effect methods --- core/assets-raw/fonts/Arturito Slab_v2.ttf | Bin 0 -> 116268 bytes core/assets-raw/fonts/RussoOne-Regular.ttf | Bin 37292 -> 0 bytes core/src/mindustry/core/Control.java | 4 +- core/src/mindustry/core/NetClient.java | 5 +- core/src/mindustry/entities/Damage.java | 2 +- core/src/mindustry/entities/Effect.java | 110 ++++++++++++++++-- core/src/mindustry/entities/Effects.java | 92 --------------- .../mindustry/entities/bullet/BulletType.java | 2 +- .../bullet/ContinuousLaserBulletType.java | 2 +- .../mindustry/entities/comp/BuildingComp.java | 2 +- .../src/mindustry/entities/comp/LegsComp.java | 2 +- .../src/mindustry/entities/comp/UnitComp.java | 8 +- .../mindustry/entities/comp/WeaponsComp.java | 2 +- core/src/mindustry/io/TypeIO.java | 13 ++- core/src/mindustry/maps/SectorDamage.java | 4 +- .../mindustry/world/blocks/BuildBlock.java | 2 +- .../world/blocks/campaign/LaunchPad.java | 2 +- .../blocks/defense/turrets/LiquidTurret.java | 2 +- .../world/blocks/defense/turrets/Turret.java | 2 +- .../world/blocks/distribution/MassDriver.java | 4 +- .../world/blocks/power/ImpactReactor.java | 2 +- .../world/blocks/power/NuclearReactor.java | 2 +- .../world/blocks/units/Reconstructor.java | 2 +- 23 files changed, 137 insertions(+), 129 deletions(-) create mode 100755 core/assets-raw/fonts/Arturito Slab_v2.ttf delete mode 100644 core/assets-raw/fonts/RussoOne-Regular.ttf delete mode 100644 core/src/mindustry/entities/Effects.java diff --git a/core/assets-raw/fonts/Arturito Slab_v2.ttf b/core/assets-raw/fonts/Arturito Slab_v2.ttf new file mode 100755 index 0000000000000000000000000000000000000000..04096503fa97a01f1303d813ea387d2f1ebc89ad GIT binary patch literal 116268 zcmdSC2Y?(`eLw!*%ub)}*Q6`DBHf*Is&~?z)$gQJ@4d@Swq>~&aKQ%CY-0?jg<`;% z5^x9@2MDnbV+=7E9Ag9l0>m~p?MFhdAz-ckpU-}SSBWj5ZBk>d~VaWS-ra^edC?D#a%c)u-8esd?xp8lblE?h_AVhZIXu9g^Uk~i_Z2zZe=hd!c^6)DZtZtZ|9`mtT|!>7 z`tUht9;#b)@mkz}I?neWMu+oss)*x5IG%j?qARcd!kmtKgfLtoto0XOa`u^D>z#4G zkhlI2eRo}S=GB*)*BA?M{mr<(_2M%xI_JnI58ox^ZMO>H?Yi`mE3W+Mw(s61!}btj&Q{^U0H;PVdQs4o7J5H0*U33%c!Wegbi z3k!Jq3jPT>N$<^n7U%MjDu3@4#w9t?x-af&#h!`=)WHA zPpfvzvs~AcxUSJyC%Vjch;H)^Z0Cz9=0`=h_=Va!#ZR#RiRdyO5nZw%7I8Cr@r=Eq zlh?@E*ba!9##eBSFMMNy$jkkpnf-W@tfG>GomkUW8ZC@i);19cDFh=i2Yhz|3)#Fu#i7K{u|Ku z5YD%l7l_W((>T9hoCZ8~8;zio<=DR!zkLAvc8qByzB@y7a&IocZypiz#h=7<`5|ns z7~%$6>E>qc0(`$NI>oQWO!+f$nh?j|7Hyx$o*U%m@lRrdEIa;nY!_kM6K$`=eiOEj zVjIE+8G8KP*tUsdLV_lGyNlMe4iA2;&*tzw$ucgO|sY(LtXQG8t~-XvA+(#556@o!|$I4UWoY!e5qjmX~kQ0 ziVruSO&$dP<$r)j$XA~d(-e;#LVGD-+=geGk9H5nT#J1-wq>Fn{dLAlB`132dqfsu z)YKcUP;yo@p$9D-+n{dBS@oZ-Q~oo>JH=1LAMR2gQ5EBjRo1@5Nii z`^6RFO7SA`VsVwYT3jQp6)zFjiMNY)h_8vq#8L5X@igX=P^9s^IZ-F-MFZyY7BNY* ziZ;;>j+rW^i5@Xs%n&ohJkc)(KvfIG--!>14~u^jAD6yZD3*(1u~MuO>%|7KQEU?1 z#SXDk>=L^%o17ue6laOE#W~_!ae=r{TqG_Qmx>RGpNYG~w=im3xFQ3p>OgyrSR|H; z#bSvV5`$ueSS{9xHDayUEVhX)VyoCA_KAaHzc?UH7w3s1;;=X$QsY0w=fxMr4>7y_ zKpYZ37C#a{kv6#EtAa58w)lqlSMbEc5rn^s{ddG=;&SYlVY@>>^AP`z?VH%{6C>hw z@gU}351b@qR(w?4E&fq_O8k?!7jy0R#3kUqH;RYErv>Ls0d9DY_=NbRcmnMLX6B-( z5feotaNP`<(luVtKWE#<<^j)cCIPglU*5(=|hLve{+MNy*fv)RxTB zmit?s)?90C>%`WU*7nxU*4eFntqWR*TQ6u1{P+gjV&+qSjsYtOb9 z+H2b^%}R{1V@KjzHDpZvUhNIoWyO2}RL4f!qkUHLdqOVVWYXKXaK z8@n+d;Lq3(xvBR29PiKA823V2#()3+mIx1mAIZ-Ti=T@hf{T9yUcFCzMEn?>^B>^l z*N9uB4NiZLxEVY=BHkk2r1WJA97|c^Lz>h;o)o}|%@HSdfCtHo-QYs<;vC3{rI0m? zA!n9A(kz3lSqEuDS+fn&M$4LmkT&}vX%2wzk3il~+WbcR8a(@7;*(a&kn~DJ!?`?%30MOY1Fb4&Bnavi0zphwe#DQG1*?=axOQTJI6t zcAt;W?YrCV8QjxYZl1Ge&jQ>h#rxnZxcrtqxWkd?4%n-%S;ugZHGN&{J!a?T-CK6w zbHi}sJ%hu08r#}hSKRa9=H2%^INaE_XAiEj%TJ0YzW)4%=$Rcnvpo&xU455ryYCrn zyhrT0+Lc+Ne;_-$|cx^25x;7Qx~q&`7zj{&(IfjlS=1lNXm{6K*`{Q`kJb21>$o)pM) znjSdye*@x;YKPxmnag2^FHL2O35LWOP;62n2ab zH1^yp>NOLCTl7uRBIHfdxJer>s(~&GJ*?-mm<2kkdT`qi;(scXnfM~i9$DNrkJ|?E zZK3OqU{069(Dzr3&*Ev559#tDWz|EXYXsVTN;tTi(09X=)Ij@wHTLH5>98K5r5K-8 zy_cf*jpOu>ceO#EjQlO^s4VpI6@(vvSifR7gx9Rb`!MHCT(XA`T_fu8<8BVCI!`^V1ZfpNQ^KK5#32HVH}6`z1n`uH*98rX4-m}%#a|D4f- z*YLriDD%OafUEkR5kR9I``L43UvFJ~vChWx%#wVntYo`$ptwX9d;8JX!LGVK*|5{i znm@C0*-b@fx>G!=J~w4^*3ZoB`I)@6S~|9|+A6?5DSr513QW4!=(tB+@U2l22d9hppqoMo-_)j&}X@)A0QI=^eGtfGpxsL=V1H z_B$s%ri<6)v+go4H$R(q`t0S;HA2JIBQ)RKl({@JF>_h|+iIxw1rD`PuZOy^KJ!(} z(nAG}>akt}YoiT1&{|oS9PKm?Zdzir{p{%1qqPAaj&_L} zVoM(wvS0@JPzHTr@Zh`9@ct7U4jQ49RKKqZyqXR9tLk7 zMr$6bWL|t3TlxT=56{*J=J2s^$1}F`nbGb*yJHrZWZv9?esDuwv#ik+IBzbG>&qP{ zjn-Rh3e7=dcXuN`p1@~wp+>d0JQseY<497l*=MTnn7j!-a6dK=JO{E(;e#iyD${ip zSJo1-wFyjju%n}zt|jCP>ABd~J4wb&*)1zB&I zo87ge==|KuXE%Xw$*_9239R}v=gLgMT4UIjsfPRJ{AHl#%QH>iE`V|CefO#YH_~&V zR3T^5@-xOY@U%~WR!{HsV@XA&0(YKk zTJzjsH(Hj7qhPCxzpy6cj*Yal=DA5U5<%Z`=Q-(hR*;(Ky7N+jwJz<uelO? zo_`VcFN(hZQnX)+b{73FLz}<*D(rduI_zIJ3xxK1T+oc|_2`_9&e>?E@NhQTHqW6y zhc;((w(D??`&RUEmQSHQ4ee=Bdl}lx(4LL{RcNn@zPAx=_8r8Y--!psdtHRSi=yi; zMY|4tS7Xm}@gVq}o6&c3^gFj4RdS(!9tje(rzsF^P$nmC8&nz7Z8VXir*4e!IDzai z+dDO_kGgd%lSkdU7V6Afd;PQ{E!%bNxwhLovDjM7c)fncGAze&ow<%PtGTwRHgnr3 zL8LW@iX4)TmP6P28C>2x%fVM&$H8qfey^9oZ724spKxtUI?#rWXFQ)jJk{p8I%-8J zH)UAXG^@6;zNz4+2aCt9%``xW6`_Sd1-Y?U+JI?UX&~~qX}{1^-&l*wEdyWV_v`rd zxFLSP_cCA!cqN5-JM^nX@Kd}v$rDYa_@;!Mt4!jQXY&>5uZB05q`w+ijKvpqLyDvt z?B`=YbQG$29%=zE)arGXPEbmw?;jsXa4Ml;h+4xa=4oshUVWX815D?#R#cQ3u@C56irGN z)e%7v9V74$Z51X22%*S5p=zEiGmsOw0slhSzLrYpaxbftQ0I9=+PF4W zMxk0mw{C7ZYZUszdq1iJfG64S@AfCb6GS?Hz6Xy ziwCf8$`_#63_vQGpyOq@v;&e!&6@y;wsAU?Fd;eW2^A-5>ZfRG))FgHWaPYPR#mhO zLM1q_aNYe*y0kmYWxRCSlb`ne?XH`4-O}~>;ERD<%ttq8t(A@f|oB{ye`C-bKwo>ZFFGJ z%>&#n1KgGhXsZ>guQK6{fSe~PSS`SyJ8AU|0tz+Q2GJ2uYBgx50U3dP8}>Y&eiVJ! z&jq9g@=BwKL8Eltq;dhPFe%y-@)xiL*yg!syP+Hm-80>MuqDX5Ene{Pz-#xscHjTF z@3%zVX99!|hPe1T`8n=zeK<@|6+(Ok*9WD$LbtvSVkWV-Gv_uww+&wO#@EEWnD& z-%jic*i-4F#2h41rr{_iF`f@{=YB49Oj0lb-hd0w$G(*$8PgW1@5Dgm%<0%v=E|f> z`xh9|)L2GMrZE963>M=3_|^xkV@mE_2<(pwn|> zN$`;GPXHvsuX6lf4M4rddfzXt32<43=Z_teyF<4fJ*Bh2-5rekNj2t$81r1QAvxkn zB)>_T{H8|~qnfAq&5*M zF89##M8DDzyBDe-l+m+6$`*tgdd!OnT;uHJGt*K{&4DLb1^ zimeHUNHHy4X!`Bbd z?SCrdHs$%7;U_bflwRbgYa44@W;$-4vaQWj*|whJ(R_!!t!(SHx$v6tCLPGy6<%6R zLHEFZZo%E2&3@MN?HtUv)2pK>$@w;(m2yahqFiwR&+M~N@ zGA$pqJwV*+33C}96?VZ0OnR-FF2?9Nu*En*t%%fDgMAI0jnC5#pyElb^aS?6$|`%{ z-q;=(@%>ilK|2VC@4!|#8(QT3Cu0<}x#0=|XEEXO^ML9jECa%25W3^FN{>2{oHrc8 z1pq0V0`=^u*MOQE*^k|kVl@|Vn8e5hSuMau2OQ_!MgXS~$8?b}G7zAzMlK~q+trUD zjN?DRbIeh?(-bi$`5Y}oWQ#_mo^N7Z3D480R08!pP9V84C_puj&S>su zJU(P1g>r_F&=#BZL9;rDy}s@EIzv^oYdY~QdT5g_>(~=a_w^iHJBOhxI7cIH)gi5c zL==lG+~-t-rSFi6Pial#_BdSC-8d8xY%VnWbu5bK;&2orQxA*+5%BoO4#$P8RPE~koz%<|IV4BY{u(UTpPvywbs0TrS9C8AZ780<^-tveiPvdF2(!jN! zzB#rkJ0fvFi01%N`r#V@c^_?G1!?$bn)YFdCqyC!pl$ZbJRo67x#xJnuLJKe{3080 z)Zqq*#k9I<`j$8o9D6drCEodNu#fPbo_4g6E#ITrpSB|y^-5$D^oa|TG#7D3B{~wR zB$W=6qcu6&D4LyTM_v!VONB`g!^KGJC_XYUTw=Oyht!**42&*wl)Q`NTV!!^%mYO= zEjXrKZ(QJI^ZT;y-?`Z($vICMP)oAj?Ot|wKIeYa^?EYRY3aj!(qb>3;C}=oRLV?q zru6UG495;Ub^(t~)l#7%?`aYDZ!WkGSgvb*#w{puwl2(hwv&2=oA1rL zFHbqPmkZICGw#ooo^f57!mOmH9(f*gulMJ2??=?6^p1E6D$lj_)65VTC&yfYeMD8s z3=gbcP{<(vG*Rfy#MpdnoMUIAlRmNr9OrR732h&Jv6y3fa@Bm>HD;)ww|ZIE*IUMD zpK*YUvnl76eqcJ5qX)`k*=3lHa%m_=!%Ul&ciWCtIxik(x-?|iaM#dTiy>n^9HM>! zeZLpk?C(pCy5fnAMx6{j`jGv!GIL669Km<@C@3&=7<*K zub+ThsmPZdc$ua7@YqYjobAZ_O}n&{cr{)f=F_F+rY(0Ve+zKb4;Tp2#-{G z)mk~iRz1SleyIf*DF0e9n1viElMEQtCXr;0V&gH|On{+M(oaull~)ZpVbJ4rz~p4c zEpMne)R4MV`toQvq@5TJzW;gO*FNdb`xOoFng393VdZZwA)J5+!P%|`iJAeG!Jg1~(BNRI%t$>&AYVaA9nG4z?6JQ`oP4g=VW?qCbtIdHFVf?1M>Vr z8k!sTeK_t`V!RJReFJ*a>SzPtx)OB9;OFV5Abqq+4q!uUm$lD?Mq1WVBdLY3eU-qf z5M9ilWkxNP64?-u+-GvdsBDOgcijo8v6_vI*F0<51BE}Jr2UR(L$WGGa{3o4fV2z2t97^{|M3&@d+F}7}Op3w-}F-~aDOPKQ!Yc{5$< z&UZgU&g66lait~J#u=V_nG2Uq5Cwmud2bd1;S1dQ2i44{X9dt;B&;;<&jUPqA?2%b zUTostChjBMtAQO2nix8xoR?*w4g!jiT80Ih$%?g6$}W;4)k*44Jvi9|08%0AL!0?| zwP-I^Hc#x$10QLCjY}kem!_hc`mXWF?spxGH6(KPlbK_>fY?pXRQjTpUfVOG?bs^qHZb6!y zf&u-;85(>;;4+@r5T%n-fru%JK^6BXHb|^ZIKM$jtW5wFBjTHIb~?^dxl&mLI$M@7 zNeZGe#Q~UQiW>u9@M8IUWw>g+Yj!T&2umjC`}g^N-gR?s_}kFk4_<`s)X7#p*aWLO z=LPo!Ue4o{`htU)Ilj&dUbL86WHEH{^@5W=5aK4@eiwj_?z4oTu0=P#?FF0Fh5LQ~ zV}X0n!-cRxGl1~|z<5%%4VolEUPj`hBPK`1UK1V^^on39JB$+=cjrU5^YP^G_<4Io zDS2ZJf--z8gcf0^X$!d~$m2)o|GW;*GF_aR#P@i94Z3@&(s{*N+}6IR$6pvl94`lF$H7?~|FLzxnCH`%=G_CEGBW94v$1jZze zuawubGqCy2*a*`$*!4>PT~MvcP)adGY z62}YC*78C7)U-i5S|hGkG8Mh2#0&#+S;VZ+qp z`PgDjcsWi?!39&$Hxuw8*-#UvES-pB?rE$~;(4@N(Qc(TERiW*(U7%;d9tt@Uptlq z1R`dKM}42ZGo~6<1F=dgK6-M1G&TRghg-y~yG8tSl80teX3o?y(^5XA5nQrXLDIsY zNhoRTNo8BGKMi{VV;N=XV(2TBrBjhL$UUm(h{Z}~GT!Vx&Vc`FF;(@npr__>wX~rI zOB-t9r42R6Y_Gu`YA~bKU}-}Q6wn$Z8r5KFLk*TT)L>~t4VE_4U}-}QmNvlgbpR5k zB71cvK-Ww;FnaaE^CIW>!5`ezRj6$W(ha^BBo{F}9b+ZI}|HCa@#lVSN{e`uGYkZa<<_+A#z8}pv zIp${3JrmKKQb%j?#pRIN^mOf~ zALIGVWv7q=V5q5|vibx>UwVqxWKGK~&qAzUdlAdlWaL>)Nw{jq$Ji(-u_fabo0$NB ze0k*hs|5Pm#^R(R{E8`Q2Vfg1@|Z7mj$uO*Qx*GujHeyp3z$a;cl6KRQscbS^nLT) zPR$l96!@`Iv%kjqv6VOOFP2(;Up`f=&m6m^STt_Jib5%xjvq6(K_~04j-XbS4npx@ z()lbh>nu(%>c_eAk$(OqSmv*mK~@eNGlSXy?VWge(`xfm*1K3Ugl+T&ddDFj(m=e!bj1&BjdluLGtx$-0aSL&ihIz zuaXloE#ZA3{Y|+&hgsUF>u26Dg(FqKv~OnWjwX7qY{y!U7~}G≷3w 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 QkP$PV1Z@oo50#()3y`s;2LJ#7 diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 83ac42defa..920a9c38ab 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -109,7 +109,7 @@ public class Control implements ApplicationListener, Loadable{ Events.on(GameOverEvent.class, event -> { state.stats.wavesLasted = state.wave; - Effects.shake(5, 6, Core.camera.position.x, Core.camera.position.y); + Effect.shake(5, 6, Core.camera.position.x, Core.camera.position.y); //the restart dialog can show info for any number of scenarios Call.gameOver(event.winner); }); @@ -188,7 +188,7 @@ public class Control implements ApplicationListener, Loadable{ app.post(() -> Fx.coreLand.at(core.getX(), core.getY(), 0, core.block())); Time.run(Fx.coreLand.lifetime, () -> { Fx.launch.at(core); - Effects.shake(5f, 5f, core); + Effect.shake(5f, 5f, core); }); }); diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index 19f1ec454e..cfa908ca59 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -2,6 +2,7 @@ package mindustry.core; import arc.*; import arc.func.*; +import arc.graphics.*; import arc.math.*; import arc.struct.*; import arc.util.*; @@ -11,6 +12,7 @@ import arc.util.serialization.*; import mindustry.*; import mindustry.annotations.Annotations.*; import mindustry.core.GameState.*; +import mindustry.entities.*; import mindustry.entities.units.*; import mindustry.game.EventType.*; import mindustry.game.*; @@ -314,7 +316,6 @@ public class NetClient implements ApplicationListener{ ui.showLabel(message, duration, worldx, worldy); } - /* @Remote(variants = Variant.both, unreliable = true) public static void onEffect(Effect effect, float x, float y, float rotation, Color color){ if(effect == null) return; @@ -325,7 +326,7 @@ public class NetClient implements ApplicationListener{ @Remote(variants = Variant.both) public static void onEffectReliable(Effect effect, float x, float y, float rotation, Color color){ onEffect(effect, x, y, rotation, color); - }*/ + } @Remote(variants = Variant.both) public static void infoToast(String message, float duration){ diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index a8d743a320..2650588cb8 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -59,7 +59,7 @@ public class Damage{ } float shake = Math.min(explosiveness / 4f + 3f, 9f); - Effects.shake(shake, shake, x, y); + Effect.shake(shake, shake, x, y); Fx.dynamicExplosion.at(x, y, radius / 8f); } diff --git a/core/src/mindustry/entities/Effect.java b/core/src/mindustry/entities/Effect.java index 37640b577b..7950c5375c 100644 --- a/core/src/mindustry/entities/Effect.java +++ b/core/src/mindustry/entities/Effect.java @@ -1,15 +1,26 @@ package mindustry.entities; +import arc.*; import arc.func.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; +import arc.struct.*; +import arc.util.*; +import arc.util.ArcAnnotate.*; +import mindustry.*; +import mindustry.content.*; +import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.world.*; + +import static mindustry.Vars.*; public class Effect{ + private static final float shakeFalloff = 10000f; private static final EffectContainer container = new EffectContainer(); - private static int lastid = 0; + private static final Seq all = new Seq<>(); public final int id; public final Cons renderer; @@ -21,10 +32,11 @@ public class Effect{ public float groundDuration; public Effect(float life, float clipsize, Cons renderer){ - this.id = lastid++; + this.id = all.size; this.lifetime = life; this.renderer = renderer; this.size = clipsize; + all.add(this); } public Effect(float life, Cons renderer){ @@ -43,35 +55,35 @@ public class Effect{ } public void at(Position pos){ - Effects.create(this, pos.getX(), pos.getY(), 0, Color.white, null); + create(this, pos.getX(), pos.getY(), 0, Color.white, null); } public void at(Position pos, float rotation){ - Effects.create(this, pos.getX(), pos.getY(), rotation, Color.white, null); + create(this, pos.getX(), pos.getY(), rotation, Color.white, null); } public void at(float x, float y){ - Effects.create(this, x, y, 0, Color.white, null); + create(this, x, y, 0, Color.white, null); } public void at(float x, float y, float rotation){ - Effects.create(this, x, y, rotation, Color.white, null); + create(this, x, y, rotation, Color.white, null); } public void at(float x, float y, float rotation, Color color){ - Effects.create(this, x, y, rotation, color, null); + create(this, x, y, rotation, color, null); } public void at(float x, float y, Color color){ - Effects.create(this, x, y, 0, color, null); + create(this, x, y, 0, color, null); } public void at(float x, float y, float rotation, Color color, Object data){ - Effects.create(this, x, y, rotation, color, data); + create(this, x, y, rotation, color, data); } public void at(float x, float y, float rotation, Object data){ - Effects.create(this, x, y, rotation, Color.white, data); + create(this, x, y, rotation, Color.white, data); } public void render(int id, Color color, float life, float rotation, float x, float y, Object data){ @@ -81,6 +93,84 @@ public class Effect{ Draw.reset(); } + public static @Nullable Effect get(int id){ + return id >= all.size || id < 0 ? null : all.get(id); + } + + private static void shake(float intensity, float duration){ + if(!headless){ + Vars.renderer.shake(intensity, duration); + } + } + + public static void shake(float intensity, float duration, float x, float y){ + if(Core.camera == null) return; + + float distance = Core.camera.position.dst(x, y); + if(distance < 1) distance = 1; + + shake(Mathf.clamp(1f / (distance * distance / shakeFalloff)) * intensity, duration); + } + + public static void shake(float intensity, float duration, Position loc){ + shake(intensity, duration, loc.getX(), loc.getY()); + } + + public static void create(Effect effect, float x, float y, float rotation, Color color, Object data){ + if(headless || effect == Fx.none) return; + if(Core.settings.getBool("effects")){ + Rect view = Core.camera.bounds(Tmp.r1); + Rect pos = Tmp.r2.setSize(effect.size).setCenter(x, y); + + if(view.overlaps(pos)){ + EffectState entity = EffectState.create(); + entity.effect(effect); + entity.rotation(rotation); + entity.data(data); + entity.lifetime(effect.lifetime); + entity.set(x, y); + entity.color().set(color); + if(data instanceof Posc) entity.parent((Posc)data); + entity.add(); + } + } + } + + public static void decal(TextureRegion region, float x, float y, float rotation){ + decal(region, x, y, rotation, 3600f, Pal.rubble); + } + + public static void decal(TextureRegion region, float x, float y, float rotation, float lifetime, Color color){ + if(headless || region == null || !Core.atlas.isFound(region)) return; + + Tile tile = world.tileWorld(x, y); + if(tile == null || tile.floor().isLiquid) return; + + Decal decal = Decal.create(); + decal.set(x, y); + decal.rotation(rotation); + decal.lifetime(lifetime); + decal.color().set(color); + decal.region(region); + decal.add(); + } + + public static void scorch(float x, float y, int size){ + if(headless) return; + + size = Mathf.clamp(size, 0, 9); + + TextureRegion region = Core.atlas.find("scorch-" + size + "-" + Mathf.random(2)); + decal(region, x, y, Mathf.random(4) * 90, 3600, Pal.rubble); + } + + public static void rubble(float x, float y, int blockSize){ + if(headless) return; + + TextureRegion region = Core.atlas.find("rubble-" + blockSize + "-" + (Core.atlas.has("rubble-" + blockSize + "-1") ? Mathf.random(0, 1) : "0")); + decal(region, x, y, Mathf.random(4) * 90, 3600, Pal.rubble); + } + public static class EffectContainer implements Scaled{ public float x, y, time, lifetime, rotation; public Color color; diff --git a/core/src/mindustry/entities/Effects.java b/core/src/mindustry/entities/Effects.java deleted file mode 100644 index ed4cca412f..0000000000 --- a/core/src/mindustry/entities/Effects.java +++ /dev/null @@ -1,92 +0,0 @@ -package mindustry.entities; - -import arc.*; -import arc.graphics.*; -import arc.graphics.g2d.*; -import arc.math.*; -import arc.math.geom.*; -import arc.util.*; -import mindustry.content.*; -import mindustry.gen.*; -import mindustry.graphics.*; -import mindustry.world.*; - -import static mindustry.Vars.*; - -public class Effects{ - private static final float shakeFalloff = 10000f; - - private static void shake(float intensity, float duration){ - if(!headless){ - renderer.shake(intensity, duration); - } - } - - public static void shake(float intensity, float duration, float x, float y){ - if(Core.camera == null) return; - - float distance = Core.camera.position.dst(x, y); - if(distance < 1) distance = 1; - - shake(Mathf.clamp(1f / (distance * distance / shakeFalloff)) * intensity, duration); - } - - public static void shake(float intensity, float duration, Position loc){ - shake(intensity, duration, loc.getX(), loc.getY()); - } - - public static void create(Effect effect, float x, float y, float rotation, Color color, Object data){ - if(headless || effect == Fx.none) return; - if(Core.settings.getBool("effects")){ - Rect view = Core.camera.bounds(Tmp.r1); - Rect pos = Tmp.r2.setSize(effect.size).setCenter(x, y); - - if(view.overlaps(pos)){ - EffectState entity = EffectState.create(); - entity.effect(effect); - entity.rotation(rotation); - entity.data(data); - entity.lifetime(effect.lifetime); - entity.set(x, y); - entity.color().set(color); - if(data instanceof Posc) entity.parent((Posc)data); - entity.add(); - } - } - } - - public static void decal(TextureRegion region, float x, float y, float rotation){ - decal(region, x, y, rotation, 3600f, Pal.rubble); - } - - public static void decal(TextureRegion region, float x, float y, float rotation, float lifetime, Color color){ - if(headless || region == null || !Core.atlas.isFound(region)) return; - - Tile tile = world.tileWorld(x, y); - if(tile == null || tile.floor().isLiquid) return; - - Decal decal = Decal.create(); - decal.set(x, y); - decal.rotation(rotation); - decal.lifetime(lifetime); - decal.color().set(color); - decal.region(region); - decal.add(); - } - - public static void scorch(float x, float y, int size){ - if(headless) return; - - size = Mathf.clamp(size, 0, 9); - - TextureRegion region = Core.atlas.find("scorch-" + size + "-" + Mathf.random(2)); - decal(region, x, y, Mathf.random(4) * 90, 3600, Pal.rubble); - } - - public static void rubble(float x, float y, int blockSize){ - if(headless) return; - - TextureRegion region = Core.atlas.find("rubble-" + blockSize + "-" + (Core.atlas.has("rubble-" + blockSize + "-1") ? Mathf.random(0, 1) : "0")); - decal(region, x, y, Mathf.random(4) * 90, 3600, Pal.rubble); - } -} diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 2d23d9eb4b..74f188f042 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -142,7 +142,7 @@ public abstract class BulletType extends Content{ hitEffect.at(x, y, b.rotation(), hitColor); hitSound.at(b); - Effects.shake(hitShake, hitShake, b); + Effect.shake(hitShake, hitShake, b); if(fragBullet != null){ for(int i = 0; i < fragBullets; i++){ diff --git a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java index 1086fcd48e..34dd5d2c67 100644 --- a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java +++ b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java @@ -53,7 +53,7 @@ public class ContinuousLaserBulletType extends BulletType{ } if(shake > 0){ - Effects.shake(shake, shake, b); + Effect.shake(shake, shake, b); } } diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index 1469853477..0f090a1893 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -879,7 +879,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, Damage.dynamicExplosion(x, y, flammability, explosiveness * 3.5f, power, tilesize * block.size / 2f, Pal.darkFlame); if(!floor().solid && !floor().isLiquid){ - Effects.rubble(x, y, block.size); + Effect.rubble(x, y, block.size); } } diff --git a/core/src/mindustry/entities/comp/LegsComp.java b/core/src/mindustry/entities/comp/LegsComp.java index e516c6befe..ece772c0d0 100644 --- a/core/src/mindustry/entities/comp/LegsComp.java +++ b/core/src/mindustry/entities/comp/LegsComp.java @@ -100,7 +100,7 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{ //shake when legs contact ground if(type.landShake > 0){ - Effects.shake(type.landShake, type.landShake, l.base); + Effect.shake(type.landShake, type.landShake, l.base); } if(type.legSplashDamage > 0){ diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index d802236a53..a770a2e762 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -181,7 +181,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I @Override public void landed(){ if(type.landShake > 0f){ - Effects.shake(type.landShake, type.landShake, this); + Effect.shake(type.landShake, type.landShake, this); } type.landed(base()); @@ -283,9 +283,9 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I float shake = hitSize / 3f; - Effects.scorch(x, y, (int)(hitSize / 5)); + Effect.scorch(x, y, (int)(hitSize / 5)); Fx.explosion.at(this); - Effects.shake(shake, shake, this); + Effect.shake(shake, shake, this); type.deathSound.at(this); Events.fire(new UnitDestroyEvent(base())); @@ -304,7 +304,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I if(type.wreckRegions[i].found()){ float range = type.hitsize/4f; Tmp.v1.rnd(range); - Effects.decal(type.wreckRegions[i], x + Tmp.v1.x, y + Tmp.v1.y, rotation - 90); + Effect.decal(type.wreckRegions[i], x + Tmp.v1.x, y + Tmp.v1.y, rotation - 90); } } } diff --git a/core/src/mindustry/entities/comp/WeaponsComp.java b/core/src/mindustry/entities/comp/WeaponsComp.java index ef199f01fd..d464a7024f 100644 --- a/core/src/mindustry/entities/comp/WeaponsComp.java +++ b/core/src/mindustry/entities/comp/WeaponsComp.java @@ -156,7 +156,7 @@ abstract class WeaponsComp implements Teamc, Posc, Rotc, Velc{ } boolean parentize = ammo.keepVelocity; - Effects.shake(weapon.shake, weapon.shake, x, y); + Effect.shake(weapon.shake, weapon.shake, x, y); weapon.ejectEffect.at(x, y, rotation * side); ammo.shootEffect.at(x, y, rotation, parentize ? this : null); ammo.smokeEffect.at(x, y, rotation, parentize ? this : null); diff --git a/core/src/mindustry/io/TypeIO.java b/core/src/mindustry/io/TypeIO.java index ade16c63cf..baa0bcba64 100644 --- a/core/src/mindustry/io/TypeIO.java +++ b/core/src/mindustry/io/TypeIO.java @@ -10,6 +10,7 @@ import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.content.TechTree.*; import mindustry.ctype.*; +import mindustry.entities.*; import mindustry.entities.bullet.*; import mindustry.entities.units.*; import mindustry.game.*; @@ -384,14 +385,22 @@ public class TypeIO{ return AdminAction.values()[read.b()]; } - public static void writeUnitDef(Writes write, UnitType effect){ + public static void writeUnitType(Writes write, UnitType effect){ write.s(effect.id); } - public static UnitType readUnitDef(Reads read){ + public static UnitType readUnitType(Reads read){ return content.getByID(ContentType.unit, read.s()); } + public static void writeEffect(Writes write, Effect effect){ + write.s(effect.id); + } + + public static Effect readEffect(Reads read){ + return Effect.get(read.us()); + } + public static void writeColor(Writes write, Color color){ write.i(color.rgba()); } diff --git a/core/src/mindustry/maps/SectorDamage.java b/core/src/mindustry/maps/SectorDamage.java index cf0c785d45..da946ea686 100644 --- a/core/src/mindustry/maps/SectorDamage.java +++ b/core/src/mindustry/maps/SectorDamage.java @@ -44,7 +44,7 @@ public class SectorDamage{ //just remove all the buildings in the way - as long as they're not cores! if(other.build != null && other.team() == state.rules.defaultTeam && !(other.block() instanceof CoreBlock)){ if(rubble && !other.floor().solid && !other.floor().isLiquid && Mathf.chance(0.4)){ - Effects.rubble(other.build.x, other.build.y, other.block().size); + Effect.rubble(other.build.x, other.build.y, other.block().size); } other.remove(); @@ -86,7 +86,7 @@ public class SectorDamage{ if(other.build.health < 0){ //rubble if(rubble && !other.floor().solid && !other.floor().isLiquid && Mathf.chance(0.4)){ - Effects.rubble(other.build.x, other.build.y, other.block().size); + Effect.rubble(other.build.x, other.build.y, other.block().size); } other.remove(); diff --git a/core/src/mindustry/world/blocks/BuildBlock.java b/core/src/mindustry/world/blocks/BuildBlock.java index 50a6d45688..7692db85c8 100644 --- a/core/src/mindustry/world/blocks/BuildBlock.java +++ b/core/src/mindustry/world/blocks/BuildBlock.java @@ -163,7 +163,7 @@ public class BuildBlock extends Block{ Fx.blockExplosionSmoke.at(tile); if(!tile.floor().solid && !tile.floor().isLiquid){ - Effects.rubble(x, y, size); + Effect.rubble(x, y, size); } } diff --git a/core/src/mindustry/world/blocks/campaign/LaunchPad.java b/core/src/mindustry/world/blocks/campaign/LaunchPad.java index 3c2c69b25f..2713c5ef3d 100644 --- a/core/src/mindustry/world/blocks/campaign/LaunchPad.java +++ b/core/src/mindustry/world/blocks/campaign/LaunchPad.java @@ -104,7 +104,7 @@ public class LaunchPad extends Block{ entity.add(); Fx.launchPod.at(this); items.clear(); - Effects.shake(3f, 3f, this); + Effect.shake(3f, 3f, this); } } } diff --git a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java index 9109937f95..b20d5ba0a2 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -98,7 +98,7 @@ public class LiquidTurret extends Turret{ shootSound.at(tile); if(shootShake > 0){ - Effects.shake(shootShake, shootShake, tile.build); + Effect.shake(shootShake, shootShake, tile.build); } recoil = recoilAmount; diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index 101e0aa402..584998ce90 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -369,7 +369,7 @@ public abstract class Turret extends Block{ shootSound.at(tile, Mathf.random(0.9f, 1.1f)); if(shootShake > 0){ - Effects.shake(shootShake, shootShake, this); + Effect.shake(shootShake, shootShake, this); } recoil = recoilAmount; diff --git a/core/src/mindustry/world/blocks/distribution/MassDriver.java b/core/src/mindustry/world/blocks/distribution/MassDriver.java index 6cd1e57d6c..b61f57f741 100644 --- a/core/src/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/mindustry/world/blocks/distribution/MassDriver.java @@ -262,7 +262,7 @@ public class MassDriver extends Block{ smokeEffect.at(x + Angles.trnsx(angle, translation), y + Angles.trnsy(angle, translation), angle); - Effects.shake(shake, shake, this); + Effect.shake(shake, shake, this); } public void handlePayload(Bullet bullet, DriverBulletData data){ @@ -280,7 +280,7 @@ public class MassDriver extends Block{ } } - Effects.shake(shake, shake, this); + Effect.shake(shake, shake, this); receiveEffect.at(bullet); reload = 1f; diff --git a/core/src/mindustry/world/blocks/power/ImpactReactor.java b/core/src/mindustry/world/blocks/power/ImpactReactor.java index 545e07dca0..2dd54dd844 100644 --- a/core/src/mindustry/world/blocks/power/ImpactReactor.java +++ b/core/src/mindustry/world/blocks/power/ImpactReactor.java @@ -126,7 +126,7 @@ public class ImpactReactor extends PowerGenerator{ Sounds.explosionbig.at(tile); - Effects.shake(6f, 16f, x, y); + Effect.shake(6f, 16f, x, y); Fx.impactShockwave.at(x, y); for(int i = 0; i < 6; i++){ Time.run(Mathf.random(80), () -> Fx.impactcloud.at(x, y)); diff --git a/core/src/mindustry/world/blocks/power/NuclearReactor.java b/core/src/mindustry/world/blocks/power/NuclearReactor.java index ec8abc9176..231525cd4d 100644 --- a/core/src/mindustry/world/blocks/power/NuclearReactor.java +++ b/core/src/mindustry/world/blocks/power/NuclearReactor.java @@ -117,7 +117,7 @@ public class NuclearReactor extends PowerGenerator{ if((fuel < 5 && heat < 0.5f) || !state.rules.reactorExplosions) return; - Effects.shake(6f, 16f, x, y); + Effect.shake(6f, 16f, x, y); Fx.nuclearShockwave.at(x, y); for(int i = 0; i < 6; i++){ Time.run(Mathf.random(40), () -> Fx.nuclearcloud.at(x, y)); diff --git a/core/src/mindustry/world/blocks/units/Reconstructor.java b/core/src/mindustry/world/blocks/units/Reconstructor.java index fdd516fc51..ec09128fde 100644 --- a/core/src/mindustry/world/blocks/units/Reconstructor.java +++ b/core/src/mindustry/world/blocks/units/Reconstructor.java @@ -146,7 +146,7 @@ public class Reconstructor extends UnitBlock{ if(progress >= constructTime){ payload.unit = upgrade(payload.unit.type()).create(payload.unit.team()); progress = 0; - Effects.shake(2f, 3f, this); + Effect.shake(2f, 3f, this); Fx.producesmoke.at(this); consume(); }