From 257ecd397f04d7d305657ec31f6626d421324022 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 9 Feb 2022 00:00:50 -0500 Subject: [PATCH] Payload resprites --- .../blocks/drills/cliff-crusher-top.png | Bin 351 -> 352 bytes .../sprites/blocks/drills/cliff-crusher.png | Bin 1742 -> 1283 bytes .../sprites/blocks/payload/ballistic-silo.png | Bin 2904 -> 0 bytes .../blocks/payload/constructor-out.png | Bin 0 -> 565 bytes .../blocks/payload/constructor-top.png | Bin 1510 -> 1752 bytes .../sprites/blocks/payload/constructor.png | Bin 1578 -> 1723 bytes .../blocks/payload/deconstructor-in.png | Bin 0 -> 1166 bytes .../blocks/payload/deconstructor-top.png | Bin 2030 -> 2823 bytes .../sprites/blocks/payload/deconstructor.png | Bin 4242 -> 4219 bytes .../blocks/payload/large-constructor-out.png | Bin 0 -> 1163 bytes .../blocks/payload/large-constructor-top.png | Bin 2555 -> 3182 bytes .../blocks/payload/large-constructor.png | Bin 4197 -> 4144 bytes .../blocks/payload/payload-router-edge.png | Bin 129 -> 0 bytes .../reinforced-payload-conveyor-edge.png | Bin 0 -> 569 bytes .../reinforced-payload-conveyor-icon.png | Bin 0 -> 1013 bytes .../reinforced-payload-conveyor-top.png | Bin 0 -> 518 bytes .../payload/reinforced-payload-conveyor.png | Bin 0 -> 416 bytes .../reinforced-payload-router-icon.png | Bin 0 -> 1197 bytes .../reinforced-payload-router-over.png | Bin 0 -> 1231 bytes .../payload/reinforced-payload-router-top.png | Bin 0 -> 463 bytes .../payload/reinforced-payload-router.png | Bin 0 -> 307 bytes .../blocks/payload/small-deconstructor-in.png | Bin 0 -> 599 bytes .../payload/small-deconstructor-top.png | Bin 1187 -> 1180 bytes .../blocks/payload/small-deconstructor.png | Bin 1724 -> 1700 bytes core/assets/icons/icons.properties | 2 + core/assets/logicids.dat | Bin 4032 -> 4074 bytes core/src/mindustry/ai/ControlPathfinder.java | 58 +++++++++++++++--- core/src/mindustry/ai/types/CommandAI.java | 4 -- core/src/mindustry/content/Blocks.java | 29 ++++++--- .../mindustry/entities/comp/BuildingComp.java | 1 + core/src/mindustry/type/UnitType.java | 4 -- .../blocks/payloads/PayloadConveyor.java | 2 +- 32 files changed, 75 insertions(+), 25 deletions(-) delete mode 100644 core/assets-raw/sprites/blocks/payload/ballistic-silo.png create mode 100644 core/assets-raw/sprites/blocks/payload/constructor-out.png create mode 100644 core/assets-raw/sprites/blocks/payload/deconstructor-in.png create mode 100644 core/assets-raw/sprites/blocks/payload/large-constructor-out.png delete mode 100644 core/assets-raw/sprites/blocks/payload/payload-router-edge.png create mode 100644 core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-edge.png create mode 100644 core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-icon.png create mode 100644 core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-top.png create mode 100644 core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor.png create mode 100644 core/assets-raw/sprites/blocks/payload/reinforced-payload-router-icon.png create mode 100644 core/assets-raw/sprites/blocks/payload/reinforced-payload-router-over.png create mode 100644 core/assets-raw/sprites/blocks/payload/reinforced-payload-router-top.png create mode 100644 core/assets-raw/sprites/blocks/payload/reinforced-payload-router.png create mode 100644 core/assets-raw/sprites/blocks/payload/small-deconstructor-in.png diff --git a/core/assets-raw/sprites/blocks/drills/cliff-crusher-top.png b/core/assets-raw/sprites/blocks/drills/cliff-crusher-top.png index a5554ae6e1def7d223b5e6a973d0590f04774ce7..3541f6e3966d9b5186e7433b1e6bbad8b4ec09ef 100644 GIT binary patch delta 312 zcmcc5^nhuCVZD^6i(^Q|oVPc3^Byt~X?-Z{a@uLl0j`ycLplVFm=<-dh-?&%=wMvn z-tacU{P``r_)eA||4todbZ`NKC0WNWfB99DdpLsQ@b-s|ZcKlq^3<@#}e=#`RnRuaP#{Sc;5U;W3_t^Wnt?_!`&A`CG N;OXk;vd$@?2>>|&i1z>h delta 311 zcmaFBbf0O0VZEfMi(^Q|oVPcv`3@Nfv^?ZowD_6A9re;FT!k$%jDfCK?zA@t1UvUL z+}>!mdE0aCi45=8+sH7uK)|Xp8{hTkubcI>8q`S3WvCoj|FDsb>5sJB3LA%viUpq- z3`H9DGHhG>Rs78L=npn$O!;cJf7!dt{eaZr=SJKChd$Id1U3YY*nbCw?|2<)$rn&=mApBR@Za}BHOnu% z24BV-+zG3#4m`CnU|nw?%Fb{|a1}qp5m`>(j-R_@AYP05z_vWv&vwI2Jr4#31_n=8 KKbLh*2~7a^=YN<0 diff --git a/core/assets-raw/sprites/blocks/drills/cliff-crusher.png b/core/assets-raw/sprites/blocks/drills/cliff-crusher.png index 384a6b7e92a5333c3e6997273b63758354a3d2e1..6429f1c9bcbd78d1290e22a9144f6c558280d2cf 100644 GIT binary patch delta 1264 zcmX@d+srjVxt@WsILO_JVcj{ImkbOndp%toLn`LHoxL|p+EL*6|7k6btyfs)9Gf6g zl-L-$!^1&eAZenKr}(Ai+?jWldc0TnkpIM{^n{hAY~dlMl@qw6FR4s87B11!8ayX_ z&AYVn^l#2Z2mYU$R+e5~w|&0x^0oc*_ubicTesk9HqVXJ-;vYnW6Oeb!_qDb9(x=) ziA_beKk+bo1uMfl?UvG>ZC$?}?{kc}9+;h1iiXlkg^k-|gAOudrP=^7Is~qx><-3xCAkW87_#TJuWew1?Yo^VP@NYdGDV%jq$Vb-xKQqIN z^!1;PB}?wR%v+S+_r9!s@@3idxgRT@wIs}8V)*}3`+1{9yZq#m+f}p8b}nlcZ0P^& zrKu2Lmh7-XCNF-v9ZzALrW(uawE`S_k15DATD3@=d(GR@m3)}JY18gGOjkVW4OUiG zw#{e0=b0P($cZ6r;kq@9G8|`58#5d@y8aBO;<3_*q{HbUd9`)5TZ;H9cHK63xAoM| zq@Ut<-It!XulfD*jT(H-h)A_;gxxf%OyVGZE}9i$2G^w0pTB zj7jNmrEGZPM46K%6HZ;PT>ANyUEZdv?MLphs(2X+In6cK_OdrkvCM>2#r1OVw>fLkI7nhu=z9p0k=0uI2Q?lKevC^F;Oe;{_r%CDYjR#g)7RI>%fs3k@9_o}buZcE zYBga+VB&3$LRCM8`kBddHf;?0yk^A)l}xXb>ShV65BoM1IaP--T)Lsas;FY%bam>o zXR&q?j4wnjJNZ>*oqASG$a9`F>$<}CE37z$V(^UknDF$cV zQ;~JjG(E=aSgdel29u%t(tUcm!O0=ah6+b!{nv}OJEyHXdGQn{g(D^R(u|K(s=jtS z!S2NMT=TZ!9CnHP?(@r(ugS)gzVQ8Y{pn-918YtTl&iehzW&0ApcQv-mK^z|DDm6u zMUz9R4jYU7?yC4$0T;(WVV3CjOecjOHr|V z*-_ieoi}%<&hh&xa*JnMB)_-0@?L50XQoNT`_5m}SgHKdyHKTq(c|qN|JZnrB!<^T f_l~#mx77Q&O|L6odgnd^0|SGntDnm{r-UW|S#CoK delta 1727 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 diff --git a/core/assets-raw/sprites/blocks/payload/constructor-out.png b/core/assets-raw/sprites/blocks/payload/constructor-out.png new file mode 100644 index 0000000000000000000000000000000000000000..afb61bf138431a4132364abfe10ab922cac804a9 GIT binary patch literal 565 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 delta 1480 zcmcb?`;2>nK|SjNPZ!6KiaBrR+GdA1inN{A3+qZXaGKE3HNj6ONB79BAdgoGsvqT_ z$h)jjDZO-?GbvG<8XkT7Po&_U%u?A!;Y#V1_p-j*XHZ8w0!?q02XDl3RP!p|AJn`_=C&{A(1m zv&{PELFatVOI;#aoGT@jGW)m>n#xaYYB}t7sBYDxL z2iIE`I(~TmQ;K7b(PrP9H)H(GT*aMo9J*MiL|yUVey43};q`dpkwb5*T(?eQe)#_G z@ssI4TA!`a*eYOREUYExr!%Qgf2a79*EiqQeL9$5uhadlZ^!A%vq|m0>z8~CI6u|T zD&%j`3e}pO6|cXfXT5*%l}>l5zJx9OVI&0yzu_XJJNzWBy)?7W;k zd8Z}&A%Uw$%N5eP7fZA(oYmjuxFITH);hmh4rg=ur_LKe#k?Dao=&X&wvoD?g-uzuQA zgZrZDZr5vG>z&xb`lHz(_1&jeUSAt$2`|=uT^x|cuwrY2zRnE+g&&(*3J$(<6#BW9 ztKMCC#rq{&y+SA5e6zvJRl|s5xrp?c4XRU&04uVmBKpA43Fur1gm)o@CSOQAHcMB~)Xp0k0549N!a zp+ZiA49Q0Fp zBkh&<7#Lo#H9dP#<5|kLAWi5%c>cY!!Rdk7GQMky%%z~5A4#pGu_E!X!D^1z6An=XEjwNANn-nrzPp{T?J-5DIOtNLE?=H7; zmA_|#48Ogal@+e*nEXs(-O6p5Gc~;BQWu4KC zFK#`TJ}-G>>+w65x{gxko3)QG<2-#fNPKsfs7=`G;MQ|{lP5GO^s*;!JR_AqX^*wa z{s*<(`|4F-z<_ zP=9byyxgvz8hR|gtNuJNnKFyBAWb~kP`*L$^mBdthYzj?eUjXm%l$EXP0Z1#Lo?2l zi)M31D4OQWh@3xJ`%~apmfflL2jAI(INpRyE^84umS@MMcw|=+C(E_dHkMMaLV~qd zi!bn-^|LC{;lw|uw7|3M4^$bK?7MQ3X~T(Ui;EN;S1_7<{;$p6#N}Z8f6o?yBMh^C z7G^4RFqnMK^ijXjAy5hwtnEZW;b3nL2#KD0|Nttr>mdKI;Vst0FaQd AO#lD@ diff --git a/core/assets-raw/sprites/blocks/payload/constructor.png b/core/assets-raw/sprites/blocks/payload/constructor.png index 8f68ec170879938cc45ddfed92a486ead4294580..3a72e1e64906e96217a00e8d3619d47c22b44a10 100644 GIT binary patch delta 1695 zcmZ3*vzvESW~MdgQ1@n*EfQikTN9+kIe!Q)GSZ)L ztL;JB@3-4MC)f6i)Ui4Tbu>7zEID>VV1vWaT?T?5^Hwd6=}mj~=Z>*`c=i6Y>)-Ae zr|)||&$>AM+?~pApP%kN-|Tq*$$^6ZQ6+b;9*z{M*1Ry&_jsC7{Y=&M7HpA0N=x@; zEJ*G#TKY>{DsItBF+#j7A&Fh&M_IY%;{>!+@duwWvnJjxJkK&bSyZpIA7{XO0eg=hb zUfL4BRaKO6v%cuVpC3;?kX`y9sW5+@-P;*IYaErHzh5r<`R(WWlYKinB6Z%KJ=i@x zMOtr1&D9TQ**+9kR2=x!FTxlU@P1psPOFImyTT5ehu7ZmP~c{mdp6;M`QOLp^-s7q zumwnI2sRe=w&ky@vQ%2ISRwh2ZS9&mhR@ASSL${;$jUAhd|-T}mxVW=L$|Re`NhN! zqG1Y4l>X>md9i!9^ySyG3;O~lPI|Cw-}z<9CR|zNhZcJ5*u6XQ_jXT@r@K#SoKS6g zTQS+ii33&3;M02p`x*SR)Ksc~54aiViq?iS@lRfpJ5jJI`~!fvlp zD(ShXEWe>wDPudQ%ZrT3{5RADleVVrsMnp{bz-J}yw;MNVmXXapZ-qhI3Tn@Rh~VZ zWfOz$&yoTc1zq&W=YL<-AnP>w zAR}#`SUZVq-Npvj$qYs*(lmSt8gU%XRaK+|h;%-v}+H^ddhm7g?s@E1GvVZ#&i15MSWx;aE5Kb?~*5qKV4-91fz2sy~H5Zs>Y& zwud=E>50PpWRM$uSgy}v(6-*y!a7qxQMF`;o#2U^7wa1?-#xz7bC=Kw_9+e}9GhQO zbw?w@$N_yx#SoJ;lr2MEX|O2F{l?QCmzOUON6t=1A7*EZ>OemRu$I1$UQ)hOzu{ z@@~mhkza6iTkoEF1&3I{Z8K{e?wZ}2StwoXxHvWZ%EBq1IvYZEe^veImXW8?AkDdS zg1_!!#=O}lZ(eMez!93PI#FLUn*Hjw;GdfuZz&2JmDLqW8ZB&+Ik|I^l}61?hy61` z@7{fATvk`8`Kur}XVQvqs)27d$G&xTKfUgyV%dq^Du${%Ck6yv(y6~LzUEKH&8xRn zPcnwKOgh0HP<1X*5TkknbnR?)|O+s=nP{^0zMIVYj^P)YsI zQ*++j-Sl?eo4d2_|NGX=i!T>B%HmpZ|hw)`wfDD zUvgI&p8MdN>it;lfSkMMH_qoG3tKpNIw#~TF5?sQQjmWjtoYLJ=M<$WE_Mf0oj&=C zE)f8Q}`CalB?U7N+TT?d%urt&LNI9J|F3k|I`mz}j*Z0eKaYB~2;QM^Tp_lbbQ8wQ3A?E#v7grMuvt9#fMHmzFancf>?fb;X=7@(-}UvPrd(t%e2&=-g)-+_T0Y?2Y%pkXkEwB z_fu-Al*e1=r)xvAd<9t_)LVP3epdV~mzOD$btn7BzqzWfS0#Vk#`o;!hW#N=JvGB( z+mGyGD$+h48Toj|EbT^K2I<+0FAH1P+b7E_h-n<>=#3QnnboJ=dVuM{wl84*-wu;y9tNERJ zJ!9)F7wM-@+-B?&GJE}-|G)esuc>#R=$&9csQY7r!W5m|H*+)OomL!}>g)%j0-S$yE)OV2F}f|QqL2A_*Ny{R~r>%q6<{@3cHlr2Fb>vmofIKxnI);+Ul z$+qQl_67y(DsK4Qq~UqieJM*)Ac)4n>70bGxD+F3(879?zTIn=lR{tl* z9}Ehm6OytnQ$kNaf(n4vARE@$@CHS1es8K(R^ zzP>#4`jsM{bw645RYXs|Yh}kF&v4|-_rI}TLdn?<^)ICL8#k~XFrEKPH~hh@8t-XG z(=EiE*cHs@-%69M@TyZi5zJsK}%b@!SE}4YOH+1-Z-%X>kf$h+!7)de%mnd*L<;Ttn9J+L8 z%Ze)JbdKGZ?isE+-jXb^?27E%O{X-hw3~uB4$U~@-kRhU`{?K_ag~b_XWb)@ZZp>B zn97xS=Go$)WS(<9&YlWijAu9fTv4|sYJb41n-_ykazV zb>#o;9pS>3ur6<%`tNfJ+b5r6SFC?F|D^QhEdoJdyLM!nW~yZFtn^GZ(|_^mS=5&L zQ(oft%Y3EsZe97SIn(dVBPWl@mx~N96{YrmwP^o&W`{(}l&N}B%DUm#V(!Lt$3>i* z=qdd`>x$ZxsF#y=tvGyL?Lp_!%EX;6H=nib3O_WVP2=vST^l{(@A_-Lev_f|W5OBt z#QK@ep{qn&GDN?8`Z49p+%gLNM=b z@OEeGW&V$LFOU*gWB+2#;hH~tlBd1z*qJ5kr29E=S^a%M?v`e&2of WVnKzo4+8@OgQqK-pUXO@geCw*q2$Z} diff --git a/core/assets-raw/sprites/blocks/payload/deconstructor-in.png b/core/assets-raw/sprites/blocks/payload/deconstructor-in.png new file mode 100644 index 0000000000000000000000000000000000000000..d411cbd4cd4ca868a197c1a080dd4536e62b33a4 GIT binary patch literal 1166 zcmeAS@N?(olHy`uVBq!ia0y~yU|0ac9Bd2>4Bh9`br~2K7>k44ofy`glX=O&z~bTQ z;uumf=k49oxwjoe+#cFHof3G!_ojFChUx2!PcP}pnZ(DlfzYqW1R za5C8`SSlyEF)@IE1E>D_eEF^C89!Tjx^z_eon}{Z;a&b(zC&Q?+-v(4oTiirFK}tm zc%IiFB)F*OEQ6|2%l^9{a{XZtIe!6&?0*0v_pShuYhQrKxl2G~?-K@9C6|3`K;*nP zAku0wh?Lq4B5f{%NSV(d(qcM@l-SOos&vHgI*7FU4kEWHF?zXl{O)4a5LC<)g&{;M0h_~?PC=@w>F~T`=e+ZJKK7JM{~MZ zc8K3MRhrXZ-LUYZZbyOMLB?ZkQ+}BX37%8YIH0;@#)6>7(E<-;_?TnbMTElgYPgkT z?&mc`E52n-6TRQWaeSH$$4>ECr6BR}YZ^bSEY|-JbFo z;P1KpLD*r%L;qClncw~0ob0}QX7s9iR2=?F>t+~Cq7vP}4* zOGm`j@0^(rBUZF;PYejX$S||y*sRQk>g`8wBzVbkm(FDMsPRY?QuwGi^`z9r=nj7O zGhrv=mF-##?y9Fa)^JP}Nmwm>>d5u^FBqbE+kX5K5lvWqP#}K)sv1%Enur}N89QgE zot$eKIPdl;j+mzcP1_R#L>U*Y%4GWU`}z0nx1Kjd2eWw8yp^(Zc$9tn0;5p;?utHEW1a|-`8dikEETa zGYZ|e*u_2J$FZbMZY3+HuIk9QNn8D-+TEij+32qN5pAbO(%17Eq8+E+IXLOZv9b!* z7U6<#&)FX}FY#jh_v>f#4~3OZ4M*Cu zU71zv)`)UX_)*|Lk)e}6`VO;--J3$*2|o&s=sG-d=9tdV$-nRnvx?mj1KtTg1WxNX zJaXom%+Sfdauc(P-IEhs6Mjt4wsd&Z+`5FJlRs<`vx;3r7uSRz3Az>zkDA*TFm&?A z@iD8|Rovp8@Z&+QvBM*0&T?iIyD3G&3Lh6P(PtEr_xjB<;YYyH)30y4zbyt801ONa a4_?WC*?OgH*2c_ukcg+NpUXO@geCw-{Nl6# literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/deconstructor-top.png b/core/assets-raw/sprites/blocks/payload/deconstructor-top.png index e75a3e44cfe94f51317a2b76f63a387672ac1da2..ced9f4de1e0a66231521fad3999b1b771674c8b5 100644 GIT binary patch delta 2816 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 RV_;xl@O1TaS?83{1OR8YQojHI delta 2017 zcmZn{d&fUPxt@Kir;B4q#hkZueDmbYdD?1^Eqbo8>5S278O0M;>>3whFS?$e?7ZdZ zj#MkT*X>I*CQZ7>J|om%QrxGF$=<*Id@?$*e*gcU=FcVPvj5l=5L~1_{d?~tJ`6TdGlTiw~R*f8zsMGy=X$YqaUFC}$Ko%6?@h!*-41qG?Pov;UrM_g^QxT>nH{ z%G#f=Yo<5E38m>C;Y?Zmw|}R{ftx~U+6OvQULKrX`Htz_Bm?gPf&1O%#Wt*4rWsfn zRQQMZcRilYvSpIMr>94En_sQpn9bDZ_2cPl^Apo$^f_lg-o|pp%j12KiVP>)v6;Gw zsq#!hffZ;H6^tE%8Z%LCevD5_LhfFESOfa z`{@>m-)Fs*g^KQ<)q9xpv+T5`QCVT46z9(OUsV45`}z2_@xpsL|9-ul++B0M_-wuC z)XA@GoSi1?J9M@L{mc>y3S6YJr)9x$XS=FB#dfcAG#7T(w1nyOwwzy7;awq~w5?_7 z&OJrfUfKNS_S2DnsF=7`BTi^q%M8`T>~%LSt4saVt)LiV6LiSyqvptpn(u{6TsKZLaO&u=+*+FF zDXb)KsCC~XvFt~l$j8|7W8zg{RV{A&EW*hOHA#*aAJ9`AKOox zYeCZK$NDW4KM5}WBpAi0diJEs{WGRtkInq}xfHD1Wu-#>pFfvh8*3%H{Y+caYkjV# zKK`B4lg-Oi?yqQ>`E+y4;*_4{E%PET2T$r(PRu^9wYi2Ry?5*?Ms2Gj4fC9xt}e{_g@soAG@RZ(sPBSP}D-ssGmE8+@42w z&1(3*I%XD|>+@F&r><8|ELo?jdGh-ne~rpTp9>`G1vjW9mdsnKd2;zg1FLosZO+BT zIgHQKzWRLMxy_M;c>cVo_H+qR*qSiJx94yd35+~%g zzEo_20Y`T~^BX3Wl4aXiix<_jq-d*Et@RGR-C`GM*R-3TgLCSYzK06;{}()IZsCfW zE~s!n+TxR=Q$3^Z&v`;_>rJ_3ekv$3_tkuHS#K)6V}cdO6KQrKt;U)%2Pee|=jA+3 zuzWhpEL7G|^SQA_RAIjSgb$2QKC=t`W6xD^wyU@Jlv~^Vtg?me=bwiswl8hj>di9Y zynJ8HZO*yUd6hY*H_D$@vH0Y8$WrG2!4jtWS%>BSWcIO7xWIoR zoKff;`=`?ShL+C_H9iUpZ72A1sBB^Wq}kZ=*kPZe!a}(d=`8MccNSH0gM6qAGNry! zZlR-{vc;#ldWmm^7@rt7Dc@fy^zGdzh@e`c|GwQV7qjm&t!q&CI59Q&NeR+~?spZ9-9@N>AMDZ5}LlJP)O>o7Zyjb^TqTl{LFPB2Ke%%3eIReOJrgmlw%1&$oYMbV%dQ?}n(Ko4hin3JUQl?40l`N1*rMME%(MV@~|jktlvI$qw2%2`GS#`i$q)GRyJ%k)IB!i?3+2NobR`OJCoIS_1dw$3PGIJ z$?4NB6y?TndT*6GE4b-p?$-TbS{&g{?_?xZ=WJXyuVtr>bn!$k6jcw`pJA72dDD0E7x|a_CI;dkS3JX*Ai7-EXC>Dbf*JcEQBk^ z`^v4XQ4`8~`g*RPhl&i>g$Cs#8UJ{sA4&b3_bKD4^rQ=`eymmZvODB#*VnSSIP1yg zIv4J56V|IgToSkEu=BoY^(}Fh*`@ogss7w@w}eym|K4+x3bNF>Do%t?x?r8|X;j#Pbx@}o7ymsQE{RDy}g2*8HS3CoSy}+3Qud8CM-0;fdAs& z3@(dgCnYP36PKG8H5jX_Y!Z3kvgzu--Uc~gp_^QVOp)2^?%tAA%XTbd*}AS_(T@fz zafiSf$G!OrBn%h4)7Nk^aliim#fMIds7?ItZGLA0|5|9hagw<>UD-+R%(cHat?szx z++42foO>qh?=7t}jyV^%>pIDtx%4->>f-};?{9@CU7NMMzZS1N%48N-`FVdQ&MBb@01Q~VyZ`_I diff --git a/core/assets-raw/sprites/blocks/payload/deconstructor.png b/core/assets-raw/sprites/blocks/payload/deconstructor.png index 8c85cf1abc9645d8b4b822353087d2ab6d22cf41..f0dfc652f0657a013a99b022e6b239a7e37d02e2 100644 GIT binary patch delta 4209 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 YnLPaMka?Sdfq}u()z4*}6H`JH0FP(VW&i*H diff --git a/core/assets-raw/sprites/blocks/payload/large-constructor-out.png b/core/assets-raw/sprites/blocks/payload/large-constructor-out.png new file mode 100644 index 0000000000000000000000000000000000000000..dc75d62b93ccb00d4b6d566b83d9babcf82f7d01 GIT binary patch literal 1163 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 Z)vArH-JZvp7#J8BJYD@<);T3K0RSt|%TxdW diff --git a/core/assets-raw/sprites/blocks/payload/large-constructor.png b/core/assets-raw/sprites/blocks/payload/large-constructor.png index f82c56b17d2d1439df097ece8e9eedb1d7446a62..7436b040ccc259b9dbc9b88bf9f213c9516e22b4 100644 GIT binary patch delta 4135 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 delta 4188 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 diff --git a/core/assets-raw/sprites/blocks/payload/payload-router-edge.png b/core/assets-raw/sprites/blocks/payload/payload-router-edge.png deleted file mode 100644 index c8335d400885b91b499b475fdf72cabe6c0a446e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z+mm^ x;uumf=j}m5Mg|6kLkqt8=W@g^U?2<{t}{$XU|^K@)wl{$?CI*~vd$@?2>@+K7_$HX diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-edge.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-edge.png new file mode 100644 index 0000000000000000000000000000000000000000..13b2c8ee49ffb92fa548bd5782eb13bee4b83e43 GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&!1&qI z#WAE}&fB|&euo1DTrY|r2@0z8z0$$8k!70T(sQ$7QgvI{yr*rHwf-~HTkuhk>JK)%rryrz>3#>ECnxjEmpB(6g&Jum1&7If4q{z zs+S<z|kGlercbUn^Mu+4#@;t@{-nCg>iX&LNQW`hzNy$@cUgwe_kF z-qr2;A2~CgO?>EG!=I7)9c02RzIY{vSvwzkvv_PYsp(`WV=+)}5Y+Zm4x8k*Mx{5x zQ;NqqT{UydmPslNlHtzMR&({cw=dLJbV#mN7Em}akAsC{lPZ(;$%Jgd2v4<{-3I$? zd>dFEb6md5uw6|pBKpJ!PL6HgghM+S7QW++S8|wv>MWsf=eKa5_AsP@Y?ov_^FvLh z!CR2Ez;GRdp1b$~r)3RWIo`Ag_vD|M`>y>b3(MneBFcGZj2>NcQO-MO`siDUa@~T& zFDE{zu4}s`sK9yrss!)h=LeQCS!`Ov!1q==p~Hb;@xJ{+2YMOOSUfhA1a-MIn8<_& zGq9T-y=8JblVx3-*^!T5SwAqeGgY*BGTIzj&LEc@dSEZdA8DyKZ@)f0_L-S0K{b*= v`y^9@r`Q3nO$=d^ST{`4X@I!+rg^{Pq0L2wGM^Y27#KWV{an^LB{Ts5V3pz_ literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-icon.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6a9ce4ba85197287147e1d04a7ef72c0032046a7 GIT binary patch literal 1013 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z`Wkm z#WAE}&fB@Zelm_ct+s)EMmZC9cueS6bceZ+C9maymPgKv-74BjCNE!oIFxY`*G>N#$KGxK-G1D@WZCQ2kALnr`}(bHmR|Fk){trEfB4>>a$6#jd#TPtVP1xU z*~PpmO%pV07RfTi2*)T(Dx`4F&tPiEZp+pXays^*Q-WbfYsUrwC6U5_gG>sV7RD$3 zGA#cdey!+4l*ao>y>C7|{`S4TePQ*k-#@)K?eNk+@BjawUEJLnS+#ukZ(F;+5nPa) zur^gOIj4!2JPg)=8^>D&H&W(b20@7Av>0%@nKs_##hYS_AQ86P{7_>}G6 zCmykWs2f?9w|f8d^saAtQjGGKq&oTTKVp0;Ys3^)<>=<%y`D{A4F=LNYj-1yL4~iaz_BR<%y%Wy+Qh(4FHW zaKrjx*29!W1uL#qVt#BKj}BkRdg$UDFqb`qTV1H>m&=+ci$DRN^g~w*4m?RfRj#}+LSAUU>D;#}~}|WnwjD`t7{majz2UbDy7To)*e+e6jz1 zN%1wQ3_9uUlh(ey^jn9q;N`-KZ=PQl*Gvnr`R%|M!g+KvKaayw5Qiaz`{-(ZK?aAd z0XB!#jhI%5b(Q~cVPm-J)X6d5gL6TYM&LtX&F3ANQw^t__|VByd}PTf39phLF2^jB zVp4fjoqxDASSA^#@~C?Ma9LoPq@2p58vMiMfMwG2Qxaa=K6D-^K4Le;a7xcZVb$M( z|Fpj~o)dgs`lRWsptIfMpO=1nu*_6$Gl*WxAO6fT$z$`?Uj-?%l(!wq*=lFJ@_ENv zljybQ=l!~P^x!M&$4yrmu%NH9p&p;j7V+qRRP6f7C&_p#+_7@c?ZT<-Q_4Rts%%*F44O$Pqv#XsXm{y4G o+tM!H;>!?vc>1?b4IjkU7@xl##3CWhz`(%Z>FVdQ&MBb@0G_|YzyJUM literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-top.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-top.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4f8fd597e7290613c2c2515c9f48a5bb419af7 GIT binary patch literal 518 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z<9vZ z#WAE}&f7cDdCdj_t%=*Y-Ekv;6<}I|XYBx%%|CfDB=PfhV({ zJvBXhx?4s*ewuw<{)_kLlYafFKWlkO_Q%WUM|U%}&M}TnO#iAqc2Q*I(zZ7w-dTt5ZY$0lOutsp}qm*)|6a2H*b{#$WrscGJn6_V- zddr#BZ&pUk>G9i9%O9-mSEAnH^ImRc#GDg;1=8nNiK=UQ>?{N--piI4Xwu}SASp0u=SnOrQm8`=RrWDDIs4IvImS8XWM^D% ze*3bysH)H**`e>~@$OZkOOrlEOK(sTE8P>Udi<+c$lo6?7Wb`OcZDy&{?&qSUT;O2 z`l~_@dc9SZ3bahm^L6dXS`*c`I`dl9#Gnv9SonizffxLKkuK|4MC0T@Tu)a&mvv4F FO#rE1-75e9 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor.png new file mode 100644 index 0000000000000000000000000000000000000000..fb0a728a0fc23c2cb442857722949e8f123dfb71 GIT binary patch literal 416 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z!>G} z;uumf=k2wPzJ~)CTmv6PPP)|Xa8j;A@Ww=;vPLG?E}8!dD%RT{%(-;G_3OGte-591 zef#?11J95De$ioXG4I*KnqP61&BwZST2ChK4Pm-qj* zk0$^BFuCm5|M}VFPmI5J->H(4-O&H^Sa|&*r8nuhx35M|;J7WFYqh7XYs1{==sISO YKRWNDZ!WiEU|?YIboFyt=akR{0FC0Dpa1{> literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-icon.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9d601a3c145df462df37c71fd069bc59add862 GIT binary patch literal 1197 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z>@Ci z;uumf=j~j>d|^Y8VIa(6IhzMEb2X5n5IPlw$KSwH%OR5DuLb4>h@@Uf)Q?e33Xzu4>k)*a!xzj6P6 z33GG%leg#3uRpx`x&Do(KQ8dxf4IrgqT*1M{7zPe|G#$sd^91nV~T{X<7V${PpxoeG?-Ef93ufb$tUt<5WOD8nvlA#gGiREE(1p~=N{Ql!%Uiq_ z9FStJ`Qmxw=?B?cr5s`mKU8}ZYueLd7jZEBn{Ke|gKSi3mm0&4$p*(h$V!!VYbiXn zEZ0l&?oeCM_CeNA)kV;O^Z$zGr$n3e&Kb6B zGg|UgjCZ>>Z}8mFUlLWjEm|;nih|%6^MH-A-Tlqy)799J~=)`hG$}XUxVb)=GBkmQpH42Lv zxc~D_Y`D-ad`x2B7f!`(4BY#rJ6WbNaMw$$W7)*OJ)h5=$+MyLe7lz8U!4`lK3J~c z+VG)0P&nb?QQ#I6b z)&|x!e%F_Du9(7goI^F#(%EOZ@x>*n(;Ct~EEGy=o3v_<-mHVgsuNg$FirQm08)`# z(^#xBf#nP9*{KU8y;c>;)H(*MPS~gW^y}>H&DN`4YM*9^IxywVqPeV@`g;O|7W#9T zc2-G6HMh)o$jo(}F?rest62B{uj;09Z#48ODDB!?*K}*|0z=P?>#ECGuFft@o^TfGaylQsr{1XLzNbgDJ$8zNZQ6X6b3$rQOjCAPe^cBU!EO6?@|hPCY7*|u zvbxj57Je!F()LyJ*bL9@Tz)xn()ugqGYd8+@*leNPUC1)+{SOJnJd?^7Hk%r%UZ~N zN^)Px{5i>adM}Tjb*qu`(p}N=Vd?K>GQ0C_P5W4`Ddc=uz;oj0nJx+CDbo^|rbtdo zU=q5Zevn0Fk#`fPM~8nCr-x5;6XywsV5Zk`69oCoKYn9h^5=rx7Dbmw3=9kmp00i_ I>zopr0Dom1-2eap literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-over.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-over.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b14a86bce4438bd34dee170a576dccf4fcdb36 GIT binary patch literal 1231 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^SBrg^$JhEy=Vook(UB|xN2 z*7YVsV3|XOOA_k=whEIAml^_GS|Tq=7{6$; z#j*b4cQ?MLq@7cbJ$vHYo#g-Xk0)2_RDb>1eevRBb$|Eo@9aCCO*r`K*RNkM3U-C% zt&josDb!@~%MrOr+K%b65Zo;;t!z`2`(bM6Y3MQxKDek=`|duQkG4=b`4?aI+v!Q!xUf?3T& zB@YRunuT+EMYl3caGGVhziWAm;$d+W>DQXFlN(OYHt$-y_Vn@Fwp>vgbGjDvpPgu0 zlaTuGD%Z@2df_WfDm4d;S~XTY{k`3P+1vFEEs?XnBsYqxPG_0gQ1qk8)hX-8yeE?u z2o=2kcJ`KziO@5{n#3^9@b$6N*GUC(X1reEd&s6;|BTW?UGu~=#sKw1!9(Ifswu(@ zshr&+`z9zUu4ZsxS}s?yzav65MSQ}h^S1dBDk-8Hcph>`ao%Ln3I5UK=9JHLW1acj zg)zrIw3>0g=`cwRbK5HIrRc{VVjc7B1M8-h^R_9}91H)v%2~I8f4Zv6kMt?39zQPZ zW^iEY{eDo=W5HZr%{D=S7m`n;1zvD6o@-%9cWN+JJTOz>fe%N)GIK_mtZ;s#rm}nW zKWcN%X)$&X^5zln&NdSslt(b8Yf;Xu01T+7#u`vi`V|qpHH8 z?Te=_5EA(Rf7!yHfqab2Lg)saQDEA^F}2U~LP6X*BWf_{AD$TJb5=yqs{( z`4DGI{ik&n!-voB|@~xFpPqgHm@KC6kw{@|jDuafDBGk44ofy`glX=O&z}V^O z;uumf=k1-FfrlLgS{}AF#PT^R2Ke2mD+qkRtn>C<>e>IQ7osmG>6UmhAb|tFtz@Qu zez;@K_esf5m6e{9K3iJ2ejC&3hb~Vm3Zie^s;wxq z2(*lI`t~T?tzCHP@BiNsIf#-rz%Pr_}Zf)h+q^EBH|8D@y}a z6>)_?rz*yv_d;GG3SV^>`Y;Ba7xEHS_^Q1yhB0Wp(5X9uuUFlPcUZnSUMtLD`$O+m zt``Ep(}6wT>MKVp2D>~63ig(gGGPKH~p&Dw2?`Z_?up00i_>zopr0A4P_Q2+n{ literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-router.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-router.png new file mode 100644 index 0000000000000000000000000000000000000000..cc9cacb3f84e5f9fefbbff462bfd7413245acb09 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&!0^`7 z#WAE}&fANIybOvA2OJy(bbf6Ac4EiFYOYx&?~3;eroC*~pUrTMVGUyh^9HsA-UCt% erVK+=KrVC%Q^0gnzJ3M<1_n=8KbLh*2~7Z;6kKuu literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/payload/small-deconstructor-in.png b/core/assets-raw/sprites/blocks/payload/small-deconstructor-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/small-deconstructor-top.png b/core/assets-raw/sprites/blocks/payload/small-deconstructor-top.png index b3e82d05299c307fb576cc0d3c47e8489986574d..4e5aa251ee910d24b035ac964c73aaddaedb76c7 100644 GIT binary patch delta 1129 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 delta 1695 zcmZ3&yN7pzVSSmWi(^Q|oVT&N^P=4aY?XLc6e=sUa*K*Nn6gaa_fWNntb${P-KkeR_C2rjE=tA<;JpRtLmkOq=WnAeKq`F4D$aKOd*C^plOj9Pj z-@vaFP&1)pf{4Rv@lP@VT25P}rJCh$7i~?b{VlhD`MwV?Yd<`G`BL(_j?lI3^$-6P znFYO#Tzl<}lXn)gOwFhGy>{o)!n{&?G&sF3Klydw?beB`99v%{3m)vMVejK$|Nr;P z<1q7*!ar{>-|xE=3xPE;3GEz{| z^iUvQRPKchz8t+0?9LZzikTbS?9%5f4SQU_iZfR__F)h2b@$s0>P}oTpXM6}6|0`i zTk-$!LxUX7pSp)Q#a~BPZ8vUx`>^-NX_=kkDsw+dG5_QXine5~Uh|zHo~3VMveNy9 zSM1-d(DG(@5Xhp=a`c4Zr1u9tzJK(u&)1H@=Z{`GXOLUp%$oLD|8)7z%V#_A3Vv&> zX_xx9v)=D)Fvlg4#Q7)6FMK)wJ}|G;xm~FyZQb{q?vHAx{3tIiY4Y!!Dst29Mpok6 zFJI0)@x7@f-(WV=`4#I`v4iSM)GWh(GJLt|@Tuj@Iu5IcYA!A>55%6X@md~#^F8A% zkEu>)g|eplbI#&)D2!>ASzY6G(WT+qQoWWiGgDqi%O{WOjhDJ#uD-sblR+xkV~(8f z`Q)&pOnd%5O%FUa$#7ak|FW<;OOHd-SFl|XSlCi?YV)N(MH9Bk1~R5?*38VDyNpBV z)5`l7WiBtgG5N9K4y&pi*V>IN>wi9vzxm$dfNtj2WUHw)@``fhSq>QsL*L$=Y&j+5 z^R?Jmt^U|@XGY11YhCLXEXZbDbFU?OQ8eS4V@*+uy&1CvuC3;{%b8#*e}Q|K(19$s zHR>g*2Z~+7nId>PzM5Ixn#$l1+f=12{~~~4!Ft=ItrwRvILKEY(Ydgep@FZ^b~1m7 z9)p7NhVoC1CpsgYuh{(RZrYgh?z7`l!>XjPSMJUp&zZKUUpH0zytI;`-b8M(V#d~} z*%Re|S+l%8S(6#(FwZ?udVy!%D`WXx{hWU;9=i&(+7v7$-ID7Kz zyy@y?cX^j~EO4yzF4=8#PHJ(qq}ectvEN7rZF5g zZn|gl!Kfs3Pif5BR-ylT@7{m7+u&Y*_;E1DBAE*=hIv1}?{m0pZ@l@{{?&^m8Jo?#8TNmCAYkn#==Jw; zmqWdnLsi_787>oUof1rZ{v<|z{{4O4|0?AD{ni8q{QF_|PbZ35gWY29&%`<9E>X&& zwoObHpERovTPS^r`^8u*eK&673=XaKa^{}}A+KhXNawt~lBp+hHtq78nK!2#-aUEx zj~~{5Rg|_U-FJ*;34a~D{8;c#qY>}J5jYK0w!msbX_SZ(>Kq}zA-~<&QV2=&!_f1?}|xOjZKwca&0k;c`%3h zXuE{?6c5KNW-pf;?4M+V_IaFOmnipS`eN4TWT*Zw`p$~jq~cdamv82*3TOV);`~4; z#nJBj_B(uz@6zfcUoE}y<|o5Sj<6@wmngpd$g^`{$ANvP45m!{|FfpJIrY(Y?_+7R z#muwz`g|4N>T;nqf`8$9m(<@rT9DY^wk`N^rp#rZ`H(nYD6d1?7Y$*C#21&Nh8`H3mI b$@zI@sg?Of43bzRi}FiLQa69+ImrY7%-A9d delta 46 zcmaDQe?Xpz;pRrB8$7Z+DMk5tsk+Ijc_pbu4E*K!ML8+D1x5MEsl~ requests = new IntMap<>(); - - - /** @return the next target ID to use as a unique path identifier. */ - public int nextTargetId(){ - return lastTargetId ++; - } + ObjectMap requests = new ObjectMap<>(); public ControlPathfinder(){ Events.on(WorldLoadEvent.class, event -> { @@ -41,6 +38,16 @@ public class ControlPathfinder implements Runnable{ Events.on(ResetEvent.class, event -> stop()); } + + /** @return the next target ID to use as a unique path identifier. */ + public int nextTargetId(){ + return lastTargetId ++; + } + + public void getPathPosition(Unit unit, int pathId, Vec2 destination){ + + } + /** Starts or restarts the pathfinding thread. */ private void start(){ stop(); @@ -56,6 +63,15 @@ public class ControlPathfinder implements Runnable{ requests.clear(); } + //distance heuristic: manhattan + private static float dstCost(float x, float y, float x2, float y2){ + return Math.abs(x - x2) + Math.abs(x2 - y2); + } + + private static float tileCost(Tile a, Tile b){ + return 1f; + } + @Override public void run(){ while(true){ @@ -88,10 +104,34 @@ public class ControlPathfinder implements Runnable{ } class PathRequest{ - public int lastRequestFrame; + GridBits closed; + PQueue queue; - public void update(long maxUpdateNs){ + //TODO how will costs be computed? where will they be stored...? + int lastId; + int curId; + int lastFrame; + + PathRequest(){ + clear(); + + lastId = curId; + } + + void update(long maxUpdateNs){ + if(curId != lastId){ + clear(); + } + + + } + + void clear(){ + //TODO + + closed = new GridBits(world.width(), world.height()); + queue = new PQueue<>(16, (a, b) -> 0); } } } diff --git a/core/src/mindustry/ai/types/CommandAI.java b/core/src/mindustry/ai/types/CommandAI.java index 39953aa7f3..7bafe3ad4e 100644 --- a/core/src/mindustry/ai/types/CommandAI.java +++ b/core/src/mindustry/ai/types/CommandAI.java @@ -14,15 +14,11 @@ public class CommandAI extends AIController{ updateVisuals(); updateTargeting(); - //TODO - if(attackTarget != null){ if(targetPos == null) targetPos = new Vec2(); targetPos.set(attackTarget); } - - if(targetPos != null){ moveTo(targetPos, attackTarget != null ? unit.type.range - 10f : 0f); diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index e817555b52..38b21406bd 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -145,7 +145,8 @@ public class Blocks{ droneCenter, //payloads - payloadConveyor, payloadRouter, payloadPropulsionTower, smallDeconstructor, deconstructor, constructor, largeConstructor, payloadLoader, payloadUnloader, + payloadConveyor, payloadRouter, reinforcedPayloadConveyor, reinforcedPayloadRouter, payloadPropulsionTower, smallDeconstructor, deconstructor, constructor, largeConstructor, payloadLoader, payloadUnloader, + //logic message, switchBlock, microProcessor, logicProcessor, hyperProcessor, largeLogicDisplay, logicDisplay, memoryCell, memoryBank, @@ -3550,12 +3551,26 @@ public class Blocks{ //region payloads payloadConveyor = new PayloadConveyor("payload-conveyor"){{ - requirements(Category.units, with(Items.graphite, 10)); + requirements(Category.units, with(Items.graphite, 10, Items.copper, 10)); canOverdrive = false; }}; payloadRouter = new PayloadRouter("payload-router"){{ - requirements(Category.units, with(Items.graphite, 15)); + requirements(Category.units, with(Items.graphite, 15, Items.copper, 10)); + canOverdrive = false; + }}; + + reinforcedPayloadConveyor = new PayloadConveyor("reinforced-payload-conveyor"){{ + requirements(Category.units, with(Items.tungsten, 10)); + moveTime = 35f; + canOverdrive = false; + health = 800; + }}; + + reinforcedPayloadRouter = new PayloadRouter("reinforced-payload-router"){{ + requirements(Category.units, with(Items.tungsten, 15)); + moveTime = 35f; + health = 800; canOverdrive = false; }}; @@ -3570,7 +3585,7 @@ public class Blocks{ }}; smallDeconstructor = new PayloadDeconstructor("small-deconstructor"){{ - requirements(Category.units, with(Items.thorium, 80, Items.silicon, 80, Items.graphite, 80)); + requirements(Category.units, with(Items.beryllium, 100, Items.silicon, 100, Items.oxide, 50, Items.graphite, 80)); itemCapacity = 100; consumes.power(1f); size = 3; @@ -3579,7 +3594,7 @@ public class Blocks{ //TODO consider usefulness and applicability to serpulo deconstructor = new PayloadDeconstructor("deconstructor"){{ - requirements(Category.units, with(Items.thorium, 250, Items.silicon, 200, Items.graphite, 250)); + requirements(Category.units, with(Items.beryllium, 250, Items.oxide, 100, Items.silicon, 250, Items.carbide, 250)); itemCapacity = 250; consumes.power(3f); size = 5; @@ -3588,7 +3603,7 @@ public class Blocks{ //TODO move completely to erekir tech tree? constructor = new Constructor("constructor"){{ - requirements(Category.units, with(Items.silicon, 80, Items.graphite, 120)); + requirements(Category.units, with(Items.silicon, 100, Items.beryllium, 150, Items.tungsten, 80)); hasPower = true; consumes.power(2f); size = 3; @@ -3596,7 +3611,7 @@ public class Blocks{ //yes this block is pretty much useless largeConstructor = new Constructor("large-constructor"){{ - requirements(Category.units, with(Items.silicon, 150, Items.graphite, 150, Items.phaseFabric, 40)); + requirements(Category.units, with(Items.silicon, 150, Items.oxide, 150, Items.tungsten, 200, Items.phaseFabric, 40)); hasPower = true; consumes.power(2f); maxBlockSize = 4; diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index f41330321c..41a399fd4b 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -1164,6 +1164,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, if(value instanceof Item) type = Item.class; if(value instanceof Block) type = Block.class; if(value instanceof Liquid) type = Liquid.class; + if(value instanceof UnitType) type = UnitType.class; if(builder != null && builder.isPlayer()){ lastAccessed = builder.getPlayer().name; diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 03237f17f6..f667ba50c6 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -1249,10 +1249,6 @@ public class UnitType extends UnlockableContent{ } public void applyOutlineColor(Unit unit){ - if(unit.isBoss()){ - Draw.mixcol(unit.team.color, Mathf.absin(7f, 1f)); - } - if(unit.drownTime > 0 && unit.lastDrownFloor != null){ Draw.color(Color.white, Tmp.c1.set(unit.lastDrownFloor.mapColor).mul(0.8f), unit.drownTime * 0.9f); } diff --git a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java index 6880b6662a..5169652282 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java @@ -15,7 +15,7 @@ import mindustry.world.meta.*; import static mindustry.Vars.*; public class PayloadConveyor extends Block{ - public float moveTime = 40f, moveForce = 201f; + public float moveTime = 45f, moveForce = 201f; public @Load("@-top") TextureRegion topRegion; public @Load("@-edge") TextureRegion edgeRegion; public Interp interp = Interp.pow5;