From b079955b52e7475bd348307095652a82dede5f87 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 12 Feb 2022 10:20:37 -0500 Subject: [PATCH] Disperse turret mostly done --- .../payload/payload-mass-driver-base.png | Bin 0 -> 1445 bytes .../payload/payload-mass-driver-cap.png | Bin 0 -> 904 bytes .../blocks/payload/payload-mass-driver-in.png | Bin 0 -> 599 bytes .../payload/payload-mass-driver-left.png | Bin 0 -> 892 bytes .../payload/payload-mass-driver-out.png | Bin 0 -> 565 bytes .../payload/payload-mass-driver-right.png | Bin 0 -> 858 bytes .../payload/payload-mass-driver-top.png | Bin 0 -> 1745 bytes .../blocks/payload/payload-mass-driver.png | Bin 0 -> 1388 bytes core/assets/icons/icons.properties | 1 + core/assets/logicids.dat | Bin 4108 -> 4129 bytes core/src/mindustry/content/Blocks.java | 6 ++---- core/src/mindustry/content/UnitTypes.java | 6 +++--- core/src/mindustry/input/InputHandler.java | 9 ++++----- core/src/mindustry/type/UnitType.java | 2 +- .../mindustry/type/unit/ErekirUnitType.java | 1 - core/src/mindustry/world/meta/Stats.java | 7 +++---- 16 files changed, 14 insertions(+), 18 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/payload/payload-mass-driver-base.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-mass-driver-cap.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-mass-driver-in.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-mass-driver-left.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-mass-driver-out.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-mass-driver-right.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-mass-driver-top.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-mass-driver.png diff --git a/core/assets-raw/sprites/blocks/payload/payload-mass-driver-base.png b/core/assets-raw/sprites/blocks/payload/payload-mass-driver-base.png new file mode 100644 index 0000000000000000000000000000000000000000..fb55b6eb6f398d11bda6ace15ef7dbd276f4a1a6 GIT binary patch literal 1445 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z#8xA z;uumf=j~kk?As0!$L`Ol>k#3IeB-(_Tj9dO*xQ$u$}3H9_&8-}@p3)gAIToP%frh*&8>;3snO|@jCk>Bk&5j8 zn6tjG0>gd2&dNDudgp$=57+XrIaxgJhBNsY3>X-=BU-YcN`UpnutVrc*6VeaSLOGR^jI33qmr>?^=iMuaQNM9;e z;On6odaGB7*ZVaezjN>Jv#^!lv(G;}zw;_1gCqBaRSu^vb;R;8Jg`vAIJ$<3!9o1c z^3Mg~hAA^=ZCu63&>`-$<{5JZLjZf&%SyXUiRE`^?J)dRq@K^cAdaK@&)K{2K|6(* zS3XaA?e=w^QF0dEnJ|}Gf844 z>%&ir?rdeyWa<3rw{L+?&n1I^sJ7X&?)EdzKj(k)BzHsKPd_o{%}*1~%L=dh{D?id z;b`)MHO^PXRZZ9)@*MQb)pm-?cU~t)M@T55B zDIKwKQwn~+EfDC^JiIla_QKS%o2xn{7<9RPeZ@AeWM+_1XIVYNhk>DoyD3#Cje+49 z<3X!7PW9hQHBvdQmBz1owp%QLS8=uGboaOU&b0#fZ1>*yZ+-vwLdn+gv}P_Y^ux*4*9b6K3;i2`%XVtXjIVY!mvv%<5!!(l%LIO zxeuM`i*#P`FM?CJnT3g)AvMcrYR?wmDZ7dlCon##Ox$lF;K8uzXJVkD%pS$d%PxF+ zwPu;d>EEIE1WzwI{Z%b1-}Bd$sHBjorFXyQdq!!dexAD~*?`%A?ekonWY4^yIt^80 zO?$V`b9Iu0_bP9TIh(lq@50dODk1F!%*-}j3@5T(R!`D7mzB#n<>}Q(>%!^Z&7&OZ zA`koJ?mfoXkh5>^D}iqeJD$bI>Zh2lTCwj@0XEWZZT7d?w4m@ ze&Lz>a9_>Wu)orePU+i~SsVkD_fyCMJOC7Oa z4Dy24_1D=aGTi((>5bTezaa*xo_i7)Pdqa}`gO@x?oCD(t*IaG%ynTX*mw1K@4b7% zeg|vRSMSO@RjRD`n$^MUne|uJgE9?Yw{4o1`knEhh=b3w;`NEV59N9O&sqC*1A7Vs P0|SGntDnm{r-UW|i>01g literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/payload-mass-driver-cap.png b/core/assets-raw/sprites/blocks/payload/payload-mass-driver-cap.png new file mode 100644 index 0000000000000000000000000000000000000000..22537889ae9409cf708af2918970e2468b65553a GIT binary patch literal 904 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&!0hDd z;uumf=k08JKN&-bqx)SfUHBNz$|(qiGiV07%$5prT^SU-yeo*&R5$9a*F!E3%L8Tw z4R?})6};0Vs_kySuPnRxd+O<=!@qm~_n&PMaN817 z$fVTQ)qVN!X!Gjd&cCa^EwwuSN-W^FiSl9hVC~IIOG7wsw0^k0dg%d4Zge&HnpZ3)6q3 zrM*v3y*asMV`Si&s;xEGWEV!c`E<7I*!@y=pJbwJz$GDxhtq|e<}242H#DqNw{y+? zvGdolXD{WlcCWqlD@j3jK^W6wITsDNfUgI3DQs(*^y#M1gs0BO8K$+&DvA`k@YE^Y zG0i{mDD%g=^KW0Q6?&hw%k|aIi_O&!eBM4kq8-x~@~YB7>(9#htOB~Hgro9|*QPE$ z%k0~r{@_megu9V`P3j5DSh^Vef9!m3bZn9#r|Q8?DkZmjs(asDO}mqwyxjb;M7~qc zRpXY8p#mN0&L^rCBr`-eEnjM=vf+@qa{jSOl?vCXCB^q9*es7Y^Wm%(>y$G^MU2LW z_!U&9$QWNcH)&P0!)lhaAB|$1wuj7__eh_5@%pgU0pWem*I2G$l!*0s{cAxbk47e^ zs>1SZYi1h3`$`YXXg-EZy`#qFvO?j8>~ z^no*Xs=?K#TfHRq37br5xF@{m%Y8?uRn;q|K9J4NQe6^vf=ft3x@b%8wUq*1s#EyB zEfrdJuPyoRfrWBr3skP0+pieY_f>+`o2x5!_&|2p^Vv%>uKd$<%^Zs`AG Z_PDU--I2Dg+YAg044$rjF6*2UngE{ImAn7| literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/payload-mass-driver-in.png b/core/assets-raw/sprites/blocks/payload/payload-mass-driver-in.png new file mode 100644 index 0000000000000000000000000000000000000000..f8427f0ba98993527d66ff96c50fbbe399178ba1 GIT binary patch literal 599 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z$EDD z;uumf=k1-nzRZCFt`A>}rmlIyr?8NVW94LlRSJ!KI=S)_7?`T}zE4lP$5OqIL%`{U z+|7!&?Wzn66COYO_|o`y`Hjt0mOK4(^XGUH#JQ_II?pY;V2*K{)o3A#n`DhMV{ zSDxO@Ilbp&FPG{a50cnF|7Qf( zes2^xmcRMue@4^fPk;9FiYJ}qn9#!jBXW!x&gUH~wx8Byrg%IkK>tky*Q*)*OAj1- z8o~9e)RsrJY5u#{3`#!?Vmky6p8Heh__^i@?`)om)0$h)VtCyD sRiEK;|99zzkCQ(naWOF5SgQZx(^|V78@5kpU|?YIboFyt=akR{0ETD;@Bjb+ literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/payload-mass-driver-left.png b/core/assets-raw/sprites/blocks/payload/payload-mass-driver-left.png new file mode 100644 index 0000000000000000000000000000000000000000..f106c50bec140363123595f7b8d12c84daf0b2c2 GIT binary patch literal 892 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z-;E} z;uumf=j~iaKT$`4w%3yU3)w$#sj1v^U{)-AerreKS;mMe=0~^YwmBRTo-tuV`cuXy zV&{*ZKJxLVZEWb@@MhEh+gmD`f7(~=TE2Uipkj-F(~0H{nze}k=&bOrnp`9obY@0_vidVrk%5|y>>H3Q;+f12X&2weUS~Oe>lA~ zl7$}d&c71Ko$$kO1zYA`~KS*a(@KAX8La(%Vf8&X4$U3ht~_a6Mjg< zFiF_)ZDuI_!ES$c{~0Mm&V(NoSC}N~cw!eX`1_KxE&sS~!^7kP&V(NpXP6}HrcLJZ zOR)nVem7iW6|`Q+v_p5LZw2>)megIWdw!K(-qR-ZN`y70{&&)#ei$;Nn{$O)Shm%Jjqd(wmN|4Zw?I!Cho-qS~S17~hcT_NYF z!MXQ#q_J1PcScjr#r*~+)DB+Z{O)m~r$K*{Tz89(jqANPU%u^&v@a>G{CNFw z#@nC=*@vc0+wkp!D+ALW)mJ?A>`Pb+<~PXSP|jGw^1AA4GTSZoo(U5)YXm=Nc%-N& z-V?me^m)#)*}63oADr5;^uU_LG@f{sfCjYeu9{RlhZZj zFNysNcDAh8VC2>Cjd4nXdWn&r@HF)cK0+}}I?B_RZZKkfdGsz*m8!uX+1UT50-ii< z`cwDU^yqKra`_G4#8<{C%r#K`(b(HGO+`jd*13Pjc@-He9$i*remO=auBHa#|fC{w4!V!7ru0|Nttr>mdKI;Vst0JETn A4*&oF literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/payload-mass-driver-out.png b/core/assets-raw/sprites/blocks/payload/payload-mass-driver-out.png new file mode 100644 index 0000000000000000000000000000000000000000..afb61bf138431a4132364abfe10ab922cac804a9 GIT binary patch literal 565 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&!1&(N z#WAE}&fB|=euo`++#brG3+$9W&=$Pq^u7AVE7em%RYNXz+I~AS?bAL}!4v%~D~(fB z7#JEBTgI>ZzWtT_qZQ|-zmA>65%9pUrjud!Z)*@)CAZI|;qD)E5WB*(rjy}xZ=1eg z!pgM|y;&lT8P#+$ct^DB3o6V_{~^Q}R0(39J@Y}8X~_)PeJ%|fPJB>hYH?}T7fgsc z24WVltNi}+tBn6k$uExD^WQIAz3}#%@UD3boJxWm6H?5W7=_NdC^#79voPsA=yYgs zT_eb`VS*|XquA{(hlV5;4L3MZ_Tp>9#pnOe&;NYB?#8yQaR+1*Og4W=+S$gyH;?1m zdew%>sT<}6uv8>|IU~<|~U(~ zUHmZJW)_FR16jMz2^@wFk{_`iID;jijL zvH?8|M>!D028r82TpM+l3ZPII-t01D6mk)J%PAmo*YIGK1A~5!))DQ~QV;kt8m@<# z9q5jhesJ|D?}tzC*eYsknPnbaU~r#dazN3Jx1cAKS?0+#26sub1Bvr^3+Ci9%e=Vb kaIK1ose^&RVPX8as+o;3O2k44ofy`glX=O&z%1hF z;uumf=j~j_yekd@uKyME4m3$0P!nQ55xdEGR*LHm#)oVNxRf?N){{{PGJD9TQ`E9y z;nIUyw?nUn<_7=0Z?sMQV!f9C?p?PTITTw2HgUGE{ok5Lv4DX+N+qB{IE+)|L5C|7E62|L|5dH>J)L;D0t6HrnWlKCdMspM zo+qSnpkq1<*NP8MFZZt4|6Z|?DQ$w+4x9RnU$!C}9QZj!HaKlz;SwmQ`50X?4`fc~ zBnL(=C6$1NNh?`$-=}l2N_?2&!05I|CBT7MPDtZ`^?4CmNOTJ|pByJNR6#^zjH z0Q(}9fQBXxPLTyiqM4u?uBmt|Y+$od2{>>p-~iXPw_ZUS35_p4Fmlas75evl``bE= z1x_wM!jE^qdd0;xG*j@TN>6LW@i)I(Eg#(k=3Q;e5s?;HxWC784Y_|`5Dg7UU$!Mn%gY18qREKo1n0U zt=%v8vPW#%tv0ven%Ji4EHAGu3t`&x>-*aEDihlHRfHZ`Rx16}`@kXZp>m*m-b3b2 zH^*y&XI{Qtrdp$YINX7=w)+Dk7em7OdDoV{WMG}~5u`97^WIhI^&c8tm>TSaY!0&v z^)_*ZAMbAdvUcm`*ID-Ve|6q}XiO0exDa;e($9;bQ-d1VJP%A1Y7<+)Y36n40#nq- z3IlJ=1D{ma9DTjgVs68V5B~PoH>*zcI`Ci2Zh}XHYRyU0i4U1OSt24QEtr@ktIDg- zu!8-ra*e{p{YGyLKdrp@tL6Y##(~EVdzgAEY$ccPWM!<|zR<|u#yt4h&1oL03>ni6 zVueknKDaCFrOvRydq(txP!$)GCqY~cUxcoO9ge*A$HPOLVS@J!tr~@&8Ydo46O^=@ zu!o6jlGln*$C4ih6qp$Hw#YqXX69sgB2?At&!L!-^N(RVTaHZWFUCj)1_lOCS3j3^ HP6k44ofy`glX=O&z}D^Q z;uumf=j~kE>^bfN$DgnBe5%yy%(Z*6bmDZ*AKD%d9;^rz=zI{{Q z{Pn9TM`n3?wa6cb>B0GZ_s^|3-?M(%^McCCsdECZFWND$myyAWCDwC~)MI|xroJU| zy=UXCT1<{s7;pQ3LGg&@waKas46;ojnsFA43?&>fORFBRGF(s$xTNu$gCQZgSbN5W zTg~nl#Iw6E8Pu1jSDTpYvL4!eJeYw&!q#ess6g6t{WJ!K{r`R{Sn;mez}evoIjKn-({g7eWc=ARz5 zK8Q~7R4CXT7x@27q+pZtSF8uH1*N|Q1 zA!q;0-V@Ut$Z2_-`$|c$)k^_Jh7Zm^p04j_IB@&G?c4LuEZFo@qorW7`m`E>q_mog z!7iJvoj&{i{MP4VafMC(Rsa3^?vqM3KObtoE;g)Wig?qPwEVVb@t5xA=f=~2YDhP& zP7Pq~GnIFB>^M1jWqSW|&urO3@sutp;WO_}T-R;gwL0YUN|U5dDcYqAS8nop`bIWz zQ}*1ppUd7%J7Bo;h_S%dTqb#zzMmR88@Bz_Xi-@C(2gUDe?iFi%p4A(&w=5Wi?{yS zAu?HAy6M?v`>(x5EfWs^*?d{}+KjCmcZ$xrx6I)}-IrOZ%Y%%TyBVI{e);Gh{lB*C zEsGC#?uy^Jt;@aox9~S5@72$4Uur2Ru}FNs$ZHDofj!>}xn`WMnZm}h_;+CYgb<5% zu~~Mh?|%J?y3i2v*)p@>Q^%(7eI`q0&e(pxbY{-_3AxH9XUs(}3o!);Y@N1%)xqS& z&u<+9OkaJh!X~jQCkrlPa$LM%$xn?}Eq9+j4V^Z#O|v(+L4%j$mdb_}tri)QmX zY}Y&K6p(BkTP^Ud>(*4A%577cCS+?LS*pY!@l1R*hep-}eOATlgV84PSD9MYwC3Ne z3CZQS$s^J9bHyxyRWmM3`l<1@RX+Uaev{*MU6ayG6->f~^JiN%oO;EewOXt}>^)D& z$>4m(siE8slQ%DrioX@@kXp(x^(tdXSRsR@T#k0<-xUAg&?pCPapRn;2J#BZ3|Z_O zRXL{oywfdbcb0R0)Nje`^qh~Q!&6;=Va+s8FsE&I~GmhZfg6vLNPY5Yu6HS z%NLdUFEeNLOC3?&J0*Knl&)g?&*mM=Ruu+D3u!33X+B##YtM?cf~y#ox9$vEv_q<& zbAH0=l>w|$2d&<;PBdew)^^EkoAze@F;Uf`154Na-SKaIrP9r*V(R{?+x#Xm1UUZj z`N<_?q*T5~LCar;W2Ioz=2o50Cv$$?;V#^GS5RDGs`~x2C$kh!$C$=*J$zAMwC=0S zwQDzDo~+2PFOpp)V8#;uPI_;!TC#8&7$%XzPDwmHW#^uZ}t`a zj%tefQT2+IPbP4qYxH!LESrW$+%h0n9lCJVy-=}*sk%EZ@zBf9njEW>?7Er?{yfdQ za&O`f)39YV0%2!srtmZMl^W*Di0nOaR#p1Ys#*P;6mJCQX|jA<&ExFEu{zI=OYz4w zYaxy`(<_UnXrGH-eW{A^)r#5j`n()c>CX8}e=_XZtNg0cNvPp=j-8gMlSxC~zyDs1 z0;~&W?_U$ak;HJfW`B}G2Sdr{Oi#rPj3u9cPI5?KeDUn`(bf<03vRM%>O5s)00B=| KKbLh*2~7YT(k44ofy`glX=O&z^dly z;uumf=k476Ss{)h$NZ0oZxGnhf3|6@zz0qdk&V9UDvb_4Q?D)A8nk*x!t}6du@}?@ zm@;{9tL$aumQU0@bnt7@^K+Kz`-=act$90l@8<8n@6NO|E>4@i0t$q4m(=|Dlu}<> zQW#wQ_UP$w7nd#DH_r`mziwq=6DKI>t2TS<_44iOG9G{I{3-c9!oH$%)BZ_Qtmn?_ zJoPm&r_N{f{P$Kiu#*xJk^*PeHX@Tkd)W!u&38wbynTj2ZBA=gL zau8sw`1YsNFkUlrx-{#BlsXNTv!3(M%d@WcR4`%Ecy@XUlOo508S5vDI_Wkf?ei7m zSY;5BWvB1l<9Yh&))g_rEmob3Pjc)|GdET0uJB7Xo3GlcAj;#w_iXb70R@I4qxr2( z6L=i5{!RGCYFBF^RvXUJqQdZgzKy_C=}A9zG+XYjUA?6048yS;yVblLY7CY$&VOoK zz@}hozcurlr}g)`?o*NTB3TvOKS#z19APLjoBxziQIl(xo`28HnlRC(vbW2%j2mRm zrYkDWV0e;a$Ia@4KmTo5B=((o$-Cd))PX60$6 z6x~0guC(iRNnw6^HM8tWooAafBDz;xHZsUQJ6)sffbuP-3(I4E)hrUKWs4}<<#vU2 zp@PEM_%rESW}MG3y4kXCrv}HR#lDXW6<8K_&o@{h?Y*l(;MM=7&xAGEABu2HVvJa{ z?Dql%k9W-m^G^t{mU23N`WeEJJIi0BvuTUft{t7v_(K;fgq)6;&UUD(d~(vh&=0nW zzTO`U;0QrJLC17h9&d1_4zD()mZ9yPr&5+ z_qK*T_9Z+Yni6)d7ialWyD(7T;@Zg9%!L}eoqlES(F`cxzU~Nfy2hTk`01Y-Ud@uc zKIN8@XSL%Njm}J8Z{2(Qe>`GyNGb@HOew#{;+V8Sokg5s){=F*HpwM>%Chusj1!o| z_@t&z!qBjJOM{H!g0!O>^fF|dp8w}HIrzW=Y3#zzgEjD=~-Ng*PbqQTJek}RB^%emY84pZ33_4)(9+l z+$-v&q1dfhp>txV?&f1Y7o0BeeT(AQm}B96uHR+dY+enHYaZTQ3$;IY&M7}4;A^IO z#`VhkOuLE2+zD6rc23$ZZ+d*fmX=*%4|44Sy%{?GnJ@JH{Q4DtrmU0nGvTcq4KJ>> s=$(mQZy%Pnb5GvcKZ`(M&sXtTWt?{WyOVY>FfcH9y85}Sb4q9e0J+~~Jpcdz literal 0 HcmV?d00001 diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index e400f992cd..07f62b867d 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -535,3 +535,4 @@ 63168=reinforced-payload-router|block-reinforced-payload-router-ui 63167=disperse|block-disperse-ui 63166=large-shield-projector|block-large-shield-projector-ui +63165=payload-mass-driver|block-payload-mass-driver-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index 6448d9c3a32ca014063c673f3598721a869b2e0a..57b036c98a702983da1627882c829b7e313680ce 100644 GIT binary patch delta 36 rcmeBCSg63naCak !playerControllable || u.team.isAI() ? defaultController.get() : new CommandAI(); } } diff --git a/core/src/mindustry/world/meta/Stats.java b/core/src/mindustry/world/meta/Stats.java index 742400989f..7056c6fa2c 100644 --- a/core/src/mindustry/world/meta/Stats.java +++ b/core/src/mindustry/world/meta/Stats.java @@ -14,8 +14,7 @@ public class Stats{ /** Production time period in ticks. Used for crafters. **/ public float timePeriod = -1; - @Nullable - private OrderedMap>> map; + private @Nullable OrderedMap>> map; private boolean dirty; /** Adds a single float value with this stat, formatted to 2 decimal places. */ @@ -91,8 +90,8 @@ public class Stats{ public void remove(Stat stat){ if(map == null) map = new OrderedMap<>(); - if(!map.containsKey(stat.category) || !map.get(stat.category).containsKey(stat)){ - throw new RuntimeException("No stat entry found: \"" + stat + "\" in block."); + if(!map.containsKey(stat.category)){ + return; } map.get(stat.category).remove(stat);