From ed1d02d2c25e0ea5c442107626b992e6e1ccc07d Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 22 Jul 2021 21:07:36 -0400 Subject: [PATCH] Payload loader/unloader progress --- .../sprites/blocks/liquid/rotary-pump.png | Bin 712 -> 1193 bytes .../sprites/blocks/payload/block-loader.png | Bin 1602 -> 0 bytes .../sprites/blocks/payload/block-unloader.png | Bin 895 -> 0 bytes .../sprites/blocks/payload/factory-in-3.png | Bin 1407 -> 655 bytes .../sprites/blocks/payload/factory-out-3.png | Bin 651 -> 609 bytes .../blocks/payload/large-constructor-top.png | Bin 0 -> 2555 bytes .../blocks/payload/large-constructor.png | Bin 1260 -> 4197 bytes .../blocks/payload/payload-loader-top.png | Bin 0 -> 1032 bytes .../sprites/blocks/payload/payload-loader.png | Bin 0 -> 1412 bytes .../blocks/payload/payload-unloader-top.png | Bin 0 -> 1033 bytes .../blocks/payload/payload-unloader.png | Bin 0 -> 1417 bytes .../production/cryofluid-mixer-bottom.png | Bin 1295 -> 1290 bytes core/assets/icons/icons.properties | 2 + core/assets/logicids.dat | Bin 2884 -> 2888 bytes core/src/mindustry/content/Blocks.java | 16 ++++---- .../world/blocks/liquid/ArmoredConduit.java | 2 +- .../world/blocks/liquid/Conduit.java | 2 +- .../world/blocks/payloads/BlockLoader.java | 36 ++++++++++-------- .../world/blocks/payloads/BlockUnloader.java | 30 +++++++++++++-- gradle.properties | 2 +- tools/build.gradle | 2 +- 21 files changed, 63 insertions(+), 29 deletions(-) delete mode 100644 core/assets-raw/sprites/blocks/payload/block-loader.png delete mode 100644 core/assets-raw/sprites/blocks/payload/block-unloader.png create mode 100644 core/assets-raw/sprites/blocks/payload/large-constructor-top.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-loader-top.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-loader.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-unloader-top.png create mode 100644 core/assets-raw/sprites/blocks/payload/payload-unloader.png diff --git a/core/assets-raw/sprites/blocks/liquid/rotary-pump.png b/core/assets-raw/sprites/blocks/liquid/rotary-pump.png index 29a234b331c6fb7bf012c94a7ee57e344e1775aa..ad88b067530fc5db069a004de3efe2b8b5130757 100644 GIT binary patch delta 1174 zcmV;H1Zn%o1*r*;BYyw^b5ch_0Itp)=>Px(V@X6oRCt`#TfuGidyW@Fp$6n8@(*Xh>K7L+P?TD+JL*Hp94t6g@*X6Q*dVg}%vD;b=9C<`8Cv%Hy zi_rKXC6CZ{HaB^MDMA+yUcNeCFK6?t9U~~BrN{#`A9M%co;)^G)d=>6`#}a%oi9n= z#OcXVr(=>wloTNrspJt|s6Mt=Z88VSqUd?Q#+#6+eKtN@ZuOOcoQ69SO{zD`S%=lltUcMhOB1^7EB zaOA6Ml;B#sU(TNxbXSXUurtfqycl`TR!SsX-5lNzflv`RXp)!Mj1d7BZkr*nT8yDT zn1~!PL(Yx@j{M!@7vA%|-|xMBYYYc-)!LW@xk#|d?|%*V8-!EIORhanAtf*gix4v8goFZ2wLP3IYhAUZ+}gKT9E*tQy9^#08`?rt^@u@v;@#B zk7-nkH9vx|^?+3J)cq+UNQ)XFu|TtIul z-vw-Fix5)IiY0H_Re1|&iGb%!5pt17sJ#YLMX=lIdJ2;-2c%6c@&L-~fLIYIK~{@# ztAD5hpi3SgLICc)94dl~Ji-(qr9$jNR0L>>Ah~9Fd7XtkK*A8nA%g3i%N8PKvE>z@ zKbUxv5ls{+e44GMB>enGx;ey(Uu&~jF6Bxv7*pdOej62$d@ zk|J=|?hW@_pXL$1Xl3gGTrs4C2omz65Qv z`vh%p8`0vrp5Qq^$gS@XThYxi`D_tGY^>P^#A|>07*qoM6N<$f`F16Y5)KL delta 689 zcmV;i0#5y@3CIPIBYy&qNkl#o|9(K-?c zi1CbP{vR6=$*TnH|3U)TLrR6$*Z0pfczJ!B zK0fbLFNCP@MT8uFZaom9!*3AQ;d>zT3cnzf07geZg|7mPihqC%F9Nh8kPw|lhDReLZ>K%NBN39PQz?9YAJLcy>2~`y$w!4}BIL8m1E3W_8WcJ_ z17SX`E&y5t=_eqCkk0cF26}BM20W{&~CWW83 zVIqVAl(v_`qY=6Rw46zf_JKg?0?=|TAsxbAgl2&JArF8ieCth;2cZREGaq09V1)M~ zXaR~7A_xHF?Xec26`(pJC@n) zFNC5lg|!GR(^;pv8PX!OOlO_uc36whGMO>#e1H|9b}cg8ga{fzx)56<3^66fMmXAT zs7X;40y?}K0I@KlMPP(?EsP+S#-yW+8Q!!sW?6MbBY5fsT#KWgrDqg^_EPz%KEb>^ zjwnp>B7d~rC+zDJ%mot2>MT}?jMSgGM21nK78TwKuoOu#>-3_+d#c6KXtld7&GIJ* z2k3=hIStYPq7gLZx!UohkxSXVh1r_%By<6@^|Dvn&|gYAQ+NhKI$L-&Li&Fr^$L&L z-iq*eY%T+M5Kx1UMpz!2oB=Ed=s`yzY@Qlj11hv2um;OUczR}d51>I{50bV2(lgV4 X!)p&u5&+i`00000NkvXXu0mjf0@5rv diff --git a/core/assets-raw/sprites/blocks/payload/block-loader.png b/core/assets-raw/sprites/blocks/payload/block-loader.png deleted file mode 100644 index 08c851a0cd73d2f233a3063cc24787b57eb0773f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1602 zcmYLKdsNbA82%|9wam0ywh%>UboH{87HFUmip^zdHcA`1WolWVX43-kH*e)kDa%+F zb=f?fEpJ&08rP1Y)5KGGp)_DBnTY}_{0LD;m!19be3$3@-t)fadB5{~h5N&a_DkVQ z0RXVy6H16Q&v74MYi%Bff6G7vfc26+gk4dYowpEwxbc zfKQyl@mei49z++Pax8s{q!+Sg@?o_#_ z+oTL2ck!|s1sNqeA_4z)soM_CMaP;eI+Xrzql|xHs5|Y3MXz=DGEpTZ>L14~IPrxu$trATi=Y0Qlr&uKivn25T4z6f2&P^vbDBHNEh~Vf{7Giq zZR2koE0Yd%VW!EgUSNfC6|L%)IaS_+QC@m7fOTlVb)IcBW10+KE;JSw^-F2-A;qVe zPuXl16uAvpEFBc6ni)Mr?q+$}h!3>g^~iac6yHF`z3DSlAefB9K%owUdw0-Kf^hJ5 zs0*_Ur4PLu613%Z|8=+|_ly z6lk{SXB!lK9IB6l+(pQj-Y&HN6(=tXrcOi!Funn^Y+a9dN5x1gnTL)wH~r-zfD6S1p+KVcGWNWG zQNY8gyD30{0-rb|YFs$kG{TzNfe_-X*7#p(_r9#CwA8xG@ zx~Wm>>S|c%&V;Ko2{Ytrax@NXyQ5E&tmU$}tOCo-g!rRn{Jg9$PBCc|C%@E}T1pH1B&0& z;HyFZNvcx&!2CoORy^>X4y_z7|K`9Rox=}6zenAK|78H+p42YA;r81$-VpR zCkqH_^(KpT-lSm@oW@L}6!TE}vdj&8?c7rLU>=EO5t91*r2c_SkG=M8sV_Z>26q(6 zH{DlvTr7s3%>pY~C7#rtlMJ8sioNGI_99$4JZP)YU?wDd8KlzX#W8PK%$h145fMfuxhSiVKbll|!hLqA zZf%hIcUz>KW;GF}x}xJ{p;{czQTta1#m5yfubKBBErzFeCs6uag3?n89j@uHSd?V^ z`mroR>%Q5L+dx8|;zzx877G8S2rlogg@kLbw{2uuv87_$(OSEm6jp7?-+LX(;?w-yd5ur2%jN%V%1(;@WT5{bz u*MP*E-RjprA|J03?rnCg04P`S24|HtX9X0#bhr6$0QLlj6YB7BIsXC^Yd>57 diff --git a/core/assets-raw/sprites/blocks/payload/block-unloader.png b/core/assets-raw/sprites/blocks/payload/block-unloader.png deleted file mode 100644 index 2ee0b89d9bae55ce804c89c1df79800af95cf419..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 895 zcmV-_1AzRAP)>563Vgs-uJJ|!`CmH<>=?p$2)pG-XCeRR$>YMi~wGQW~sy){8<4! z2<>Pkp5V_6U`3z@@F1Y-k3^uq1z8c$^+zG3H^N&%@Zx!og9!dng!FFcy&y#Y2cham zBXj|J2k0Su`~Ks9*>lqC&qtJ_=io&M2iQXJUOWSU7a;}U76R(x82~&8X#i^k^u;p( zSP@bImg2qmNCZUv)BvaeL?9sRrUa-6L}i^+01N@CsEY!i@_x)v&#(Yly`tzkh6dPk z0iz#38~|})RgG{|TLJ~>O?Fp4RAm*;_~BOsvXxXT;i*#XKL;XU2ZvjDidp}mReqff%K10bG+*FWUeTOD8-ikKAu zF%)rqCuzN<9oDg+*#Hn@LAP$@t+&1gIRzORsH$V{1-RFiwq7@?_rk*nztYTe>BY|t zaE-v;NM@eT-uSrz)(DJU#ENq|8b3F{1%b7Ho_Su@__+a=!u)WQacV}@N8>$Df!Ur)8MHCK2XfUpDFiykKNyE{akSUyy(UfH2l%yu* z3n%5ZETv#siWX)SFU-=?#6g!PYH_ZXr)zn-UeFi>K(8q2CB6Ax($j0IN!?Jrs7=0O zmbNO;W*yqBL)+D8!>03Y*rYAXv}vCeh5HRGB<0&HB{m@RKm9{1V{ph2n1{JP}%d)S@&)sz*3l? z5v;*Or7(<2eYi$|C-FfdSOS2|BN>@{@{;B&ERPrh;b;KR$vlS#@FL6#ka7z`Aj}Am z(g>pvW&=p+hE^7IGSBSNLl8hQLYq1GBOtWdgU^o8&JcWNgm#wTvmywf7(oEV2p=2W V8-{%kGIjs}002ovPDHLkV1lMDlso_c diff --git a/core/assets-raw/sprites/blocks/payload/factory-in-3.png b/core/assets-raw/sprites/blocks/payload/factory-in-3.png index 79448147399c1f3956fc8ebe0faec2d6b67058e3..9ea0ed0f19111354b1c316180b7d0a775af5ca67 100644 GIT binary patch delta 609 zcmey*)z3OXWul2hy*>lOt9S+mtLY33;srILyBHZ5n6x}y978JRyuEYU_ppON!^4wZ zK@U8X3zqP^aB4DMWOvVKQU1cj?$I)TxAn~Sl>hfRm6{j*>`boqbzxv|=sUjrarw96 z8=IA!T6~^h5r(jV%Bv4b)ByicWIGn{?3rwGX44E zgHLY0x$yAazr;`1t80sI|KT>dc<+83=eP848Y@ayOn~x5;9Nl z-1qzHl4Fz8mcRO?PyG**lD7QyKZ95fe_yyyj76Ho!>u6&jcESb@X^ZQ?VIb_zirow zui3{`C6=bN?f#-ydL115X5C}%c(A-OurANz-tG4XpNImzdAIwM%Z8bs~2i?9e z+LLCjvs=o3!Op!c{5hAhxZHX!d)clmL2*~ymCFOVNJO7Dh6PH zlrsQBL!067_UkeY4}WKH9r*A!gxR1bel?@SzWqlTc!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$Ysfq^kHGbExU!q>+tIX_n~ zF(p4KRj(qq0H}k3!KT6r$jnVGNmQuF&B-gas<2f8tFQvHLBje<3ScEA*|tg%z5xo( z`9-M;rg|oN21<5Z3JMA~MJZ`kK`w4k?LeNbQbtKhft9{~d3m{Bxv^e;QM$gNrKP35 zfswwEkuFe$ZgFK^Nn(X=Ua>O75STeGsl~}fnFS@8`FRQ;a}$&DOG|8(lt3220mPjp znP~`{@`|C}0(wv%B%^PrXP^%^8>rO=Bx>bfl$i>&8Dzelp$%9iiWt-$8-0-FNREN{ z6f6q#svVb&K0Mg$xO@(&M=~%lFZFbB45?szJIA+A*igVNU8#@BTaU^6U8BVz8OB2X zX$6AQ3d93kL$u3oe@zbGd3mOO_scD@>o(n={Y_(|iNAkEBLhbR7|A$4_&k03{^KET zp-Ke{j-}^Khyqui$D$d;#W#H`5 z_^!p(&=T`wN-U7KQ^te*gMZbLPwW_^&??ANSv_d~*Byd$YsM zl-@q?e=qQDe!)i;gHr8~Y?^raD(`qoA*`U$T zc5TD!YD?QHQ>Il6UI#AxT&3!|e{O>(!&2rN>k$7XkqzpaNpD#c4xH0c6=Dk7aBH$t z!`x6W6_zClTh&_`tXEI*;P5z@<fQ%ReWh~t+a3IW5HXynB)=*(<7Y29bWgZ+p^$I#ma9pf6ro4nXz`Qnzr4e z$+<3lJ_oHCBMmAA@BJ}mNI&+eX7l=12K_m2D&qcdoPb((LHo|FvZ{?&<_W%MeAPMi z+Qvoxq7xWDmnF{oBer4MjN8B5_lvVuJhG8@omWWr2H-7)2b&fgAH{kca`$ql0 zgx^U%ylmxPtyC8F;H&<0U`Fk-*WB{_0eQm_qI6m#aD+Gyx;z@bm16jOM{CA&jP9e$}nAVmtkR+a~ti*ZJnv zG2K;nXkPR6_wr9x?k21e52GH(sYl&jRUYqNy)fv{;u_N&XEEte8^*XFHdB8UwA?Pd z%9+FD_Ar>!hSBOp+>ua*2j4$D*&feeFTW`Sn0%Kk2$SD7S4_12_5_9l-<#j{7H~8C zkvp}qY&ydM`DUG7BW{Ko&c_w=JsBSKGhcIC#l#TrY;j$mi{X#uj%gQT85{Bsn#*4n zVfgVmVXb5t6T|&3J+*ZL3_lD5Y$MGW8{QujljuG?#bJgAE0Y2P7!}Ad{bx|;)@GR~ Svuqux?DKT>b6Mw<&;$T&X(}E7 diff --git a/core/assets-raw/sprites/blocks/payload/factory-out-3.png b/core/assets-raw/sprites/blocks/payload/factory-out-3.png index 4553a690ddad34a6adb0657d364bbb637eb2a312..84caaa1c31d85b3cd47eb6483a66d13d070c7c37 100644 GIT binary patch delta 571 zcmeBXeaJGwuwL5J#WAE}&fB>Mdv6;ExW)&07x^fkG_2Lx#xh-C$yOQjy*Yktdzy46 zDlMIvaBp`O!|nf$D!Hd*1Ox>IR~|e4`t9G~FSA#i0y1PB7#Z&zW@n8#m;7TvgLh;b zKi7_)tsfj2r+?6?2{`aFrvqJWC)eU_^OB}1x!Y@f#-K#iI* zyz(LjXFPt?-~XqP&~ov^LF)$w#)sHhc?w+)flTJF`TudV^#%R-{ifIT4zvHb^SkNO z#H|6^;&vW?t{G=+zg*kt$f$ln%1%Q;hLvS;LxPAv z4^va1g8^4Pha2NT4TTv&zZp;SPPxB7Z}$B9$o=1W%XgYT$al2<@-E|R&b}?zri(Fr z6gtJ-5W%_h8N&^}>Ri7YtKy{}Z$A{bT3?-^$Wud;;gg4kHTxS~NB7rv1%LZ%XfG&# zT71oG$DRlT-*3B za_(a z2~*CKX$;YlY6sHhac-EK%arqCPQyg`4=F-kz!>IyBCmB;=)|M_E&dEZ;OXk;vd$@? F2>=0>^``&; delta 613 zcmV-r0-F8d1d9cbF@Hr#L_t(|ob8=WPQx$|Mn4cofh8A#CHJT}LXUvB8cVoKSw(8C z{CHv~Gn2lz?Wm2ur`l=kdL#e<0Dybr^m)EKcwfZ5a{4@9Bnbfy4B<-%*q!U}B?RnB z8NP&o-53jBLclIeg)bpsbLPUA5U?pr;Y$eEjGFKz1Z+ZW_4nLO@rn;Y$eU z#+vXY1ax6-_!0t|X$k-D_Xhzjw1zM74OmT&@FfH^u|~pm_!0tcczgda2m1W-T3uU) zFG-Kq4}@FBLbcQ(paV-1=3YlYC#FJPl7oPblwsElPYCGD5PI$0fPf9C4PQclI|y(F z0nQ-683Z_k0Dor?;0ywsdGfx1wUp1|zrW5YAFZdn=&6N}B?(q(W&P4G+;VN;kk5kV zR-vpbRMvXS;!ACPDgiZtWs{IbfF-C*5>m_oYj+@wjq!8uWvw3@F(umXKx+=#BMvgSDO&u_WBBfGBrLq2~aJNq;y5+=d3gDj`GoQldG)au*Wi z4yUF*jR2`Gs7&EY$plFAfn^I{N;C(QY_TA-=Kle$q!q9Q9s<%0K}Q1t&LF@U1UQ2L zXAs~F0-QmBGYHrK%eEB+bY=*@RssS#QiguGt%;GD3i~iy6C<+}^4#kPXry+mpQ__= zbORjNy-3)&OvHaR4~HI{+MC9{?IS1b`MM0icOb0BB( diff --git a/core/assets-raw/sprites/blocks/payload/large-constructor-top.png b/core/assets-raw/sprites/blocks/payload/large-constructor-top.png new file mode 100644 index 0000000000000000000000000000000000000000..eabff724be56ff04abe930199ba2c2e3de652617 GIT binary patch literal 2555 zcmV005u}1^@s6i_d2*000TXNkl`n;5r@41r2=m1QABu1|F$CWo5w4g=##&b+geHjKyA#3{^T=H5DukkmBKRZ- zCB?gR{vs>pu|uuewL%f9CXC=i5Ney?ofY%gsaEY;xz=Yz$Z7^VD;l_Lkx28f*5Fo` z7NJ*DtXa{>u*Fi&gIx=?9tpsP5ZQ0U!dQNrSxRHPf33nW4vd_Pe62W83;Y`dG$cEKWTrh zV|-+{V?ZW8&&?a57Y^@F?ryvhvI^M+-wK2tI70BXL|uwO_aVIq9F0$dP;z6R4I~s_ zix)y`LDIVr(de`YB~OQ0G5$h;fT+n9B=+878&|JUMi z_*zyYl-`St#>YhH^%&T;_*zyWls*iQ1s@Bc=d+00;%o6nD18(v8$Jd?>+^`W#nXUAtjDDB1L@JTaUB=jYjZQBK(7NG zc}Zs5UjOE`dEjH!WI@>KVQ~TubT6&6`6y!&O)fjDtrjSRW&2{3gLpR#y3K^x^@I# zA#_X>z8=7+9-sgVAvuzR@pe|o!gmIksTb@s|GL-Pi3XqKvP8Q!hyaZ4MGFcLMc8|a zrVzf_@F57#cSlA5qkC}<3UG#S^eES(5i;Vd_9Dt zgX=TG=w8gCMTqq5kqABT9T6gDcnx86FVIL4N_zGvgr4|XGw*tt0R^b-+wBpqz}L3B z;cJmxPAY_lti(4%7~KnN(2MDX@LMAAZQU>+S^Am2r-jciS^Ao`w}sC?S^Ar<$4D~@ zA1A92B7KkU#d{=8D14lFBb4+%bt9z37d||m2&L%tS|@oV5wd~{8_ z<J&xrv3!iNl0kwB&06Ggr+XT)P?BKJo-ZPqi+Kx$z#{x z@i)Q~O?2<7p_mmZ-U&n-;cpvj^ zgRcc?LYT4R5 zS&6W|sHX6BvjSm#RafB~#uK6RtLdYAfoAkov-M?#ig+MIzpiyRguQS1tgmY&gozOS z!s^`+_U3wpu)eTb5eCB1*VUr{Gd6g1JbOks>OtX~#DZ|tcnQL6jYiJq8$zT9g>MoK zLZtC1!b}a9TuzeopzuwCUS>f4>_`!2Y5aK}EPT>q;>^dzu8BgJ;kUmxhr$<-)d(~E z2^!6z@C9TQ!VJej$Q%k^K)exVI2f1Aq3{L73!&zc1iLoL*pkam8i4HDZWT5{%SBmM zO&WYC!ebu_pE2#a9}6Mlwv@Fd3%(h`ULTOlPmHy?UCtMutq7Sn=Cw63@LeGs^&#`M z&y=~k1ENLf@o18?CMLc!LZlDKr6-TI+%B`*a8iVlXX7-ttJs@#zLH-?K$xkg$D{$6@e>f8I|H95!i+tACDkWj_GW1iO7UqB?)poe@)*!knD;^;V=(YZ z5N4=Zv(J!QbP|Bl!n{9OC1cHCSOFqqtgKf$R@gmaDL}L^&relmElhwJYen|;`o-A_ z;HkbOuIE-gS(Smc6e>dHI@a~{agE=6d?*DEZ;f=K4F!x*f2plh`R zA>(-FTv#T2Ei2}+L#@)aLJ_LoNy9v-)<9jI74yhkt9F|qRJ|C<L1ZpAgO!j~%^2vsl1Y&(fS7}Wd9w=mZdeM#o0v*YtlRw4}U zedSviYuQ|&FUkBsINI4Rx11{WF!0R~cCQhlJ7pq_Zg!;~2EHqVmlvruJ0Bs8ZeqnZ z5+BG*GHGupEqu?3#Kr7lHT1EI3>4jz%GyZ&GL8_!fA005u}1^@s6i_d2*00001b5ch_0Itp) z=>Px_A4x<(RCt{2oxf{cITpu{A6q0gVGCp8{2;`{CSXWm;%x@QG?OCz79pwET_*D% zWacjj!!%2_-5pYFpJJv7gf!#e!th}53(pLW^MY})g#4(IE#B&_tS23vBOU4L-ls1F z9A8;Fl0Ns`D_!Ym?(dKP`DOX)Wyqxq$GfcbZrDVC13mzY2UKdp6Vl)t>*LN-k#c=?jOnPH@KN>R*-kO=0U!VZUuDuvo=mc@lIq@N_k`Vx{tDqk*qN-H1sVX(jF&ENHZib8;rfDp5Fu)pUl zg9;(1EjVd8bAjStLR8_SgTqrs5BB$9b?t`p@36rI)}X(<{xta+%Rf{hAn8gmf2rSa zw=SJ=ro-j}e|@`*=I?4tYX4KkegtE8f?oLY)yorORfA!k%GDrL_B1cJan0L zG}}OztL=R7*~(F(_CHl@4+vnt3tWXi{_&@&-%&jw2R>^4Hn|#G%A-oON|Ml0p!A`gf%Gk z-sFRilD~ACQf$E525VDa{wX0$HVw1=;J!Bv7eXq0l>8;VPs;qcW!u^)20nl^gFB_U zN89(la7Sw9^B;Tm`#d24UP1K|&xJ3As2w3a7z&YkCrk++hXb1~9Pf@jVC+Z@Tm2y6 z2}^(vApIj-Qop?ZlodX%)YgW{BbW-ItKd`+meQe0sRu2RifPjj_^8XU^nEpRkGAif znufvd8VdEXkK?w;?4Z)%i&3oS!x%6(bxi>XV24m@FG!al?4qO|yEX=FI|{9%VDoXz zecs1Dj;orHpJ zh#8hEreBquuxU98gw&u({T;U)R2b4EFb6#j&XM)$kp#20UD6QV;SiA3+V0p=x>i<%w3pEL!?Gf0v zX_Aua@XPB@aO=_;_Dl&SL@?<~2si9%Y4Bmcrz-U>I$f#i5F_rs9O^PY@~1csgiS5A z@^w%S2vfmFy`D;(aye^AS>J+7hLGAoDIrV^A2*$pQo#ohura+v2)P}S0>WJIg{BWx zO85Yf;6&Wan%amI(-EZ%OiHbTT>Vb!#9 z!3U5aI8lYL-O33cK%(earJO}uC8t!!HDo&}DV0hYNHn1?)V=ip0)%%&2_4vG+a;6) zz?c)XL&fcok~**rwx>F#Lma>+;8UV@OiA!5wZZlj5Q+lmgD=Nsq|kWBC8z}3ePu{P zC(#Tq?nK-^o@SVa^HlfD)v4VGr=EO5#TF zJsEqk$DUSIx#WY793{U(Sj80uJ^<|1 zmO+U0@uFQ**F$rpRB)91m;$@hDYFuqLuqyGhA0a*d86b@6xfAMnYGXydL1NLFon(o zh8Aoqu+5zkVtd!>E6IW`Z)61D=$KRB>e>yF(PGXKXbebF^~Lhnm7;BRNwT0s`W8&3 zpHg6~XUI7MmB=@zZ7JH;lq3rP|J#DQHr7t(>-%y2)Kvbc|>Tr3gil<1y4!-YMFlN%#N) zV?Y+a_OhTob~{D7eDMQw7eg(ZM0Q zJyRbYlhy-P_^P;~dct0XuPT)&5Tf&d67bcd8QLp}Pmw+donJyEJ>T|&``N>^m2}=N zS0&gkxl$T?C(LqG7eHQ5SmJrRRFz=6udG%c)di3T!cx!MrKkkkbHWFZ`KYecDtRN0 zPi?Th9@T}Y4OZMI!Ptp~6x9TB1~)V(uDbycNRCywf>M>do% zY`(G8M|D;B+M}EhW;v>>RQO8xGE#yKHsylQyD7;g&O2Ue_(C@g#df@8aLA_WK*`@_ zmkq*@sT#HiED1iP+#9h|1cxkjGdZW65YNa0utfNja)qKuc}zp8;WSc0NCvQE_>@wg zx0@qKW(j8o$Ck^1kOUxiUhm=EEmnF-r8;jnXOPSi&I~qn>(UukdMbq8LCD6!F}wjf zfNHJ(!@FDX!_UvjeFU{)&K$DOBWIwyb%J|!Q7uIm-T_R96x^+9M}#~@^#73Vzf>*W)8`^WFjLb?Fq ztcB*l-ubSroP%%9kF3|&>`*gsWz>85Wb$)`a5msmG9l!$0}vP^da|ilgHLIeA)F=n zloW)aCnyESh_=C}G>Z__cP#D$Oypbb9E5K|St_K5Pe1M71Rgd_kl_$UTd_}V87LW;woLg)nW#j_m%puwkP zGwk!tJLJEwDoeki0dv$ z0U!4Jrj&A1lC)ylG{h59w{Ga3kQ61~r&RC(jPI6G7BJ-4lq98xcel_*#Hk>pNQSi7S8Zqn!&D_i-#`C&2WIBWx5Z`8W;2g?{H0u2 z{+vg9h*#tMjg*}L_BKlC31bxvpeq`xuVP&Il&BC=8kUkK=8;PITPZsM@V1G8&{YqK zsHq|zkP9JJVYR;`W>G80YhY<5-siA9r0fL1+eEb|wuso3e@gfO1l|F4x!wWv$FUDS zQ|GT-cc!{kBRL8G4g$$kP9CG zZ+XA;l#K*9(kp??I&$Fyz_(MFeYJe`@~J)#>3>Wt4@h;p+&f`(a0nMq@DZ-h6Jqe` z4HI&ghI+yf_^7r%{_&?E_>_(ow^(h#fs2zb89?qcpK63&u@DG-oos8k91zCBr{uHM zW)}rMYW|pQn5g+Cn}(qnY^LGvF$sZ>YMUtzP*U(=zju|zfsc|uHBG3J9@Bss?z%>W zFcd!Ob(<()Ny10HuFB-XN6A0+p+i9-dO5P4l<2F}(c%{RIF5ynn@(5n1n=Y#V+A=! zlvBui2!OsDJEWf^l;xlry&}{~xf-l4@psGBHq^zWA^jAqY$qj+4i4FsG8?YK=a<<= z+?C8B{S+fIfT>Q(@kupcg^w=PRw2viCB&I!V0pl%AUuENy4Y8VS!U3A_wrMOdE z>_JGsKOoNuV!%@K&;w;&INlW-fV5G*fe66qdBKf^WAe6IiM|R^(6?X!zflx#>C3~6 z(yHWwPzpZGc3&(VY;mttN4g+%Jtce)O7xY=V|{%!-6PmmAom(IoeMqydqd}duavxP zb;Vv$u(p)wEB#u(KVbDmum_Zsd3RwArb~IkT<}pNiTSoTNP9x+`?2W>Q{HS;Pgul( z)p|ov;R6^qd};7e(n@+l&frXM+tdR}swXT0K!CBq9QXiuacg{KW8%h8r2LH(0Ngg% zSUAo$n?ZrF7yws3>`wwBQB*Q~)W2;4!WYkWqUywz55gke0l5tlyN#48sg5eu-duJ8 zxZepI_kg7~nxvP=<#D)eQ-UXK6u`E_H=JK1+f*U6L)aLAU4YN_vqavpY7>Nw0N5q? vu;0a$5v#U9m>s|_!biClQdX?m0O5ZD5VCT>t_gaQ00000NkvXXu0mjf&`=2p literal 1260 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 T5+YPn00000NkvXXu0mjf7Y9c5 delta 1262 zcmV%BdlbRJ>zx_T*xqG%)!nXl*6-bTJhtb0 zhc92v*EZJC6izO-vYy{uJucJ}8vXJ36qB>_#$J#^plR{|(0>PjE{f0wdEk!#K(|C_ zi#z}<_+Q53QviUA30gtia}JN5Y?JLaSC6AHK_dU*-N(xJ(P*gZpA_Tz;RWXjIo=R< z)Q3dSLf!(2OHF_jP``v#1S@&%ukXN#P!qsvSb9z?Leu0OC=nKjb}VACVKf@n;(^~b z9E%)r$z>(-)_>Rq7>0n~`P9To)3MapliEL(0Mr!OWcFwU)fa95q5?RVE+K-ZeMy@d zTc#Kg<_R3QJRpS23Bp*wxpU4`$RX+hVbJkCff}z?^5JI*lx-0 zSStec4yrHOV5*)4d=aRrD2Ke}UhG{yVarTniUHgl%zu#&J2JcZH2RK{i!ChwdL6aD zwy|EbpE8BkJYa2O-4uzr;gCX}Ys(R{_A^Y<0AUDdjB`_D6U*ux5h&sgVhoUshek`R zB4bDqK_U+*VgO~_Iv>A%a|GbX^b7#(?C#aBP0r5Qn2?eu)I1<&guBlL$Sd+`;GX3? zA(n$s_kYPDU{$gS@-Z9Mp~i{B#sIAdO_Gn<(uyE?M(_E-WImrAvJI##P`VG4CGUfZ z31K|2EZ9yiwyr#&x4d7Xe*l^zU)r|IItpX*a{>U>Bq_`oweVB! zN(`Vp!FPFTPOXw}7gTl`+ZhVi8?_+Fi9nGrIe&CgK`o%Tbe?KU&H@@@T_EqESw(Vf z*lAEA*d_7~smp9}EkF_NB6)|Djg}%OL;o{G0jOy)b*gLw)+0AS5I`c@MG;aDT}c5n z1iK`Hrk;RnQxkw9HX04doWBbqP{g>68LDkX0FFHM+2Q`(_qv`o04f!ZZOw%uT(1Rk zet%70gwM%VbV$wrefX6seW0u>Q%lw^+IF6>Ad#mw5@MT-z*R>}FN?M0sm)rcW{I5! zwP$>sASHh-&X)FEK-%3R1<;arXi|h+@(!E`H33p~R)JxODrww zPxl9d6$}O|xV3zza=l2MpcE6TIE`+o%x8xf&*FWNiZuR7ouIaQv&1qxR-sb7PJd8a zhnFKl4*8rCzNi4!Iy`L>`ukFAnC(mW|LJtTuVxFd7Xj-qYIQsO40-$rI?%6Iu}ic0z1J35Nthc0_DL35N(zQciwywr);-VoGWe10R^Txrbv969CFW3(^1p diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 72a4e1c30c..3da7f3d41c 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -96,7 +96,7 @@ public class Blocks implements ContentList{ repairPoint, repairTurret, resupplyPoint, //payloads - payloadConveyor, payloadRouter, payloadPropulsionTower, deconstructor, constructor, largeConstructor, blockLoader, blockUnloader, + payloadConveyor, payloadRouter, payloadPropulsionTower, deconstructor, constructor, largeConstructor, payloadLoader, payloadUnloader, //logic message, switchBlock, microProcessor, logicProcessor, hyperProcessor, largeLogicDisplay, logicDisplay, memoryCell, memoryBank, @@ -110,7 +110,7 @@ public class Blocks implements ContentList{ /** @deprecated use the blocks with proper names, */ @Deprecated - public static Block blockForge; + public static Block blockForge, blockLoader, blockUnloader; @Override public void load(){ @@ -2255,22 +2255,24 @@ public class Blocks implements ContentList{ size = 5; }}; - blockLoader = new BlockLoader("block-loader"){{ - requirements(Category.units, BuildVisibility.debugOnly, with(Items.thorium, 100)); + payloadLoader = new BlockLoader("payload-loader"){{ + requirements(Category.units, with(Items.thorium, 100)); hasPower = true; consumes.power(2f); size = 3; }}; - blockUnloader = new BlockUnloader("block-unloader"){{ - requirements(Category.units, BuildVisibility.debugOnly, with(Items.thorium, 100)); + payloadUnloader = new BlockUnloader("payload-unloader"){{ + requirements(Category.units, with(Items.thorium, 100)); hasPower = true; consumes.power(2f); size = 3; }}; //TODO deprecated - blockForge = deconstructor; + blockForge = constructor; + blockLoader = payloadLoader; + blockUnloader = payloadUnloader; //endregion //region sandbox diff --git a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java index e404b36b44..fc2b329ce1 100644 --- a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java +++ b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java @@ -34,7 +34,7 @@ public class ArmoredConduit extends Conduit{ @Override public boolean acceptLiquid(Building source, Liquid liquid){ - return super.acceptLiquid(source, liquid) && (source.block instanceof Conduit || + return super.acceptLiquid(source, liquid) && (tile == null || source.block instanceof Conduit || source.tile.absoluteRelativeTo(tile.x, tile.y) == rotation); } } diff --git a/core/src/mindustry/world/blocks/liquid/Conduit.java b/core/src/mindustry/world/blocks/liquid/Conduit.java index 393af2e8e5..c632680714 100644 --- a/core/src/mindustry/world/blocks/liquid/Conduit.java +++ b/core/src/mindustry/world/blocks/liquid/Conduit.java @@ -130,7 +130,7 @@ public class Conduit extends LiquidBlock implements Autotiler{ public boolean acceptLiquid(Building source, Liquid liquid){ noSleep(); return (liquids.current() == liquid || liquids.currentAmount() < 0.2f) - && ((source.relativeTo(tile.x, tile.y) + 2) % 4 != rotation); + && (tile == null || (source.relativeTo(tile.x, tile.y) + 2) % 4 != rotation); } @Override diff --git a/core/src/mindustry/world/blocks/payloads/BlockLoader.java b/core/src/mindustry/world/blocks/payloads/BlockLoader.java index 001f93712a..96b192a2fe 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockLoader.java +++ b/core/src/mindustry/world/blocks/payloads/BlockLoader.java @@ -15,16 +15,17 @@ public class BlockLoader extends PayloadBlock{ public final int timerLoad = timers++; public float loadTime = 2f; - public int itemsLoaded = 5; - public float liquidsLoaded = 5f; + public int itemsLoaded = 8; + public float liquidsLoaded = 40f; public int maxBlockSize = 2; public BlockLoader(String name){ super(name); hasItems = true; - itemCapacity = 25; - //liquidCapacity = 25; + hasLiquids = true; + itemCapacity = 100; + liquidCapacity = 100f; update = true; outputsPayload = true; size = 3; @@ -61,9 +62,9 @@ public class BlockLoader extends PayloadBlock{ @Override public boolean acceptPayload(Building source, Payload payload){ return super.acceptPayload(source, payload) && - (payload instanceof BuildPayload build) && - ((build.build.block.hasItems && build.block().unloadable && build.block().itemCapacity >= 10 && build.block().size <= maxBlockSize)/* || - ((BlockPayload)payload).entity.block().hasLiquids && ((BlockPayload)payload).block().liquidCapacity >= 10f)*/); + payload instanceof BuildPayload build && + ((build.build.block.hasItems && build.block().unloadable && build.block().itemCapacity >= 10 && build.block().size <= maxBlockSize) || + build.build.block().hasLiquids && build.block().liquidCapacity >= 10f); } @Override @@ -71,6 +72,11 @@ public class BlockLoader extends PayloadBlock{ return items.total() < itemCapacity; } + @Override + public boolean acceptLiquid(Building source, Liquid liquid){ + return liquids.current() == liquid || liquids.currentAmount() < 0.2f; + } + @Override public void draw(){ Draw.rect(region, x, y); @@ -120,17 +126,17 @@ public class BlockLoader extends PayloadBlock{ } } - //load up liquids (disabled) - /* + //load up liquids if(payload.block().hasLiquids && liquids.total() >= 0.001f){ Liquid liq = liquids.current(); float total = liquids.currentAmount(); - float flow = Math.min(Math.min(liquidsLoaded * delta(), payload.block().liquidCapacity - payload.entity.liquids.get(liq) - 0.0001f), total); - if(payload.entity.acceptLiquid(payload.entity, liq, flow)){ - payload.entity.liquids.add(liq, flow); + float flow = Math.min(Math.min(liquidsLoaded * edelta(), payload.block().liquidCapacity - payload.build.liquids.get(liq)), total); + //TODO potential crash here + if(payload.build.acceptLiquid(payload.build, liq)){ + payload.build.liquids.add(liq, flow); liquids.remove(liq, flow); } - }*/ + } } } @@ -139,8 +145,8 @@ public class BlockLoader extends PayloadBlock{ } public boolean shouldExport(){ - return payload != null && - ((payload.block().hasLiquids && payload.build.liquids.total() >= payload.block().liquidCapacity - 0.001f) || + return payload != null && ( + (payload.block().hasLiquids && payload.build.liquids.total() >= payload.block().liquidCapacity - 0.001f) || (payload.block().hasItems && payload.build.items.total() >= payload.block().itemCapacity)); } } diff --git a/core/src/mindustry/world/blocks/payloads/BlockUnloader.java b/core/src/mindustry/world/blocks/payloads/BlockUnloader.java index 8f4a644fce..c86ce1e780 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockUnloader.java +++ b/core/src/mindustry/world/blocks/payloads/BlockUnloader.java @@ -6,6 +6,7 @@ import mindustry.type.*; import static mindustry.Vars.*; public class BlockUnloader extends BlockLoader{ + public int offloadSpeed = 4; public BlockUnloader(String name){ super(name); @@ -28,13 +29,18 @@ public class BlockUnloader extends BlockLoader{ return false; } + @Override + public boolean acceptLiquid(Building source, Liquid liquid){ + return false; + } + @Override public void updateTile(){ if(shouldExport()){ moveOutPayload(); }else if(moveInPayload()){ - //load up items + //unload items if(payload.block().hasItems && !full()){ if(efficiency() > 0.01f && timer(timerLoad, loadTime / efficiency())){ //load up items a set amount of times @@ -50,9 +56,24 @@ public class BlockUnloader extends BlockLoader{ } } } + + //unload liquids + //TODO tile is null may crash + if(payload.block().hasLiquids && payload.build.liquids.currentAmount() >= 0.01f && + (liquids.current() == payload.build.liquids.current() || liquids.currentAmount() <= 0.2f)){ + var liq = payload.build.liquids.current(); + float remaining = liquidCapacity - liquids.currentAmount(); + float flow = Math.min(Math.min(liquidsLoaded * delta(), remaining), payload.build.liquids.currentAmount()); + + liquids.add(liq, flow); + payload.build.liquids.remove(liq, flow); + } } - dump(); + dumpLiquid(liquids.current()); + for(int i = 0; i < offloadSpeed; i++){ + dumpAccumulate(); + } } public boolean full(){ @@ -61,7 +82,10 @@ public class BlockUnloader extends BlockLoader{ @Override public boolean shouldExport(){ - return payload != null && (payload.block().hasItems && payload.build.items.empty()); + return payload != null && ( + (!payload.block().hasItems || payload.build.items.empty()) && + (!payload.block().hasLiquids || payload.build.liquids.currentAmount() <= 0.001f) + ); } } } diff --git a/gradle.properties b/gradle.properties index a5a0e68fcb..ba90b53b7a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,4 +10,4 @@ kapt.include.compile.classpath=false kotlin.stdlib.default.dependency=false #needed for android compilation android.useAndroidX=true -archash=a81197126a9190337ab9065734b5134d5f08ac05 +archash=47822d851954fd2707d51731042056450f07ca8c diff --git a/tools/build.gradle b/tools/build.gradle index d3307d5707..12f11c3126 100644 --- a/tools/build.gradle +++ b/tools/build.gradle @@ -35,7 +35,7 @@ def transformColors = { List> list -> //TODO implementing this in gradle is a bad idea //d4816b -transformColors([["a387ea", "8a73c6", "5c5e9f"], ["6e7080", "989aa4", "b0bac0"], ["bc5452", "ea8878", "feb380"], +transformColors([["bf92f9", "8a73c6", "665c9f"], ["6e7080", "989aa4", "b0bac0"], ["bc5452", "ea8878", "feb380"], ["de9458", "f8c266", "ffe18f"], ["feb380", "ea8878", "bc5452"], ["d4816b", "eab678", "ffd37f"], ["ffffff", "dcc6c6", "9d7f7f"], ["df7646", "b23a4d", "752249"], ["3c3837", "515151", "646567"], ["5757c1", "6f80e8", "88a4ff"], ["8f665b", "b28768", "c9a58f"]])