From cb7e027b2bd8922f42ecaf18b31a8fd19375d091 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 15 Jul 2025 14:45:50 -0400 Subject: [PATCH] Yet another floor --- .../environment/crux-floor-11-autotile1.png | Bin 0 -> 1375 bytes .../environment/crux-floor-11-autotile2.png | Bin 0 -> 1520 bytes .../environment/crux-floor-11-autotile3.png | Bin 0 -> 1457 bytes .../blocks/environment/crux-floor-11.aseprite | Bin 0 -> 41712 bytes .../environment/crux-floor-12-autotile1.png | Bin 0 -> 9554 bytes .../environment/crux-floor-12-autotile2.png | Bin 0 -> 7325 bytes .../environment/crux-floor-12-autotile3.png | Bin 0 -> 7280 bytes .../environment/crux-floor-12-autotile4.png | Bin 0 -> 7325 bytes core/assets/icons/icons.properties | 2 + core/src/mindustry/content/Blocks.java | 22 +++++++- .../mindustry/world/blocks/TileBitmask.java | 11 ++++ .../world/blocks/environment/Floor.java | 10 +++- tools/src/mindustry/tools/Generators.java | 50 ++++++++++-------- 13 files changed, 70 insertions(+), 25 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-11-autotile1.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-11-autotile2.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-11-autotile3.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-11.aseprite create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile1.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile2.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile3.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile4.png diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-11-autotile1.png b/core/assets-raw/sprites/blocks/environment/crux-floor-11-autotile1.png new file mode 100644 index 0000000000000000000000000000000000000000..3a5f16377bf0e0ff08d8841aed8d37838b2990cc GIT binary patch literal 1375 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 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile2.png b/core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile2.png new file mode 100644 index 0000000000000000000000000000000000000000..e70ee57e2264a5246341d9b5858663f405c4e30b GIT binary patch literal 7325 zcmV;O9Ae{%P)Py6S4l)cRCt{2ol9(-S$3GebMIe87NwRblB$x_QcH?A892M{pm$je&;f#8co1hb zF<=-IWClpAUKobGHG&|9fh?w-#U${+Fff=+Vqm;z2S@`0WI3?C_AX6LOKOoVQq+r& zs{h`T#l82hTQAmwMX4n606!n~xX*LXJ?|sG`JE4yw*)p?&8ffhWNZ6W`#VYd<3O@! z7SQY&1!l&!Upu_+&7bu9vy5vT2w;H%r~ykOp5^$AdcPLiu*V=#G567*0=$XM&)XT- z|3<4hxBeua%3AdZ#fS||uMIol3Y0(xr2}*TKjgC$AwW)sW+g|n!mOKb=QxI^6Cgn= zB0*Zgpo;Ek))Qy7t^j`p0MYtrwMG-85Drm$4BZ7$-;8pSQ zbrC@X9Lh^oo-2qdZp3&-B0#!_ZnT>5E)ixhuw`3`6+9H`@&S885)p!thlIS#h7sa7Y6F_QdY-B zWAHt%E2>JvSgyC4>^|NadUX#VfQe*(Id1+{Yq(mo+`GAkSW__`=Ud+oVQW=Eo#*oh zyVN=koX2Tc(}V=afdE%qO$rfe0%8P=1e$B4I`qWX)8958OpG8#P{Ma>0)+@yTTPyA zZ4LBS^mlG^Cd3F=YnIP$Zy-wrQV7*0;x$9(vx*FH0VHmSfGB9Ge0F<-AK!mMN0p9K z%DA@Un8L&dRHs#>%kE3}y&f%*gsa(W&lf?Y`qzxuB{Qt^0-+&+?BBb&7B;_OVYz@> z0mgusz;Pn|V>v^QAR-_ptVyka<*-(=RB-R+TD&@i0vWjp$05V9uSrA@6E@q#-}#5e z^*3+@*h&tChS)&%3ju4w;ddU|9!igTJ+o&&ff7%DVZxy^2DJt$JYo$Eu`J^&3927v zQ6dFVFYF0MK%uBxy!Sx@kbYi&Gz?q;8?9zgLkiSWTM}rOIuC~>UvBQ=N)J9zi$c1( zf_EJuG?Vd54dNaKY+?B1&KgP)HYToJJ(6de-4^{YlO{1;4Yhy-AKzW$?;h@j{|gz^ z_>6!a1lVXbGfq^x7^^@TPX3phyX+r1)G394F>%``+mI&>PSVj0P>YUC1*XToyWXf@f-kf4Xh z&hB~W%n;)bD3pHC|=sU>>v5xhc80D=M$QPyVEG5j43v8 zH}O5^(I_2=KkgJQICdO!bTxAOA_TF|N|ca<`T*ijKhM;2VlX@L<`oF*Tv#Yfxa&<^ zd#`BQAxQ^dBN-S&f)e97wLgF*V-O^<#2!6#e7U)UD?JjW13N@Icw2aYoZEMi+t-TQ zUyqw&s&%k)nwE?D`e09RsPky4pdN_`(6ja(4@Zu_`+AR$Zd?v(U@N`$;SsRWYEEy| zGr9ICN(Xx6`EqlI{UgU=+tYC#r^CsSsxI_1IACz9be!j~?b$yHh^|MG;ma8ElUhg< z(v>I&syy?`pFentwjJ7z%(o$O{U-eF6xyEhu;f=??ZS}@NTK7Y0JC@m^&om;_~sxT zEG$gK?aw~V+~Y_y3UB~C_sViv^55_8@WZ?7@#NPKqkY~WiZ3Jg(D6|@G=m~&YS8dQ zyauv=66s)(U<|h}p1|jfpmNhfKN6JDcK=G@ne)`!9e(=N4nMfN5yw{xCgMz7P_F?e zrX1JF{W@YtlSl_Dy`HKI`Ao>|=X0M2Bu!vy(nm_L@8P*qcG?~O>Z>QPU&28rkb38P zHoH3X6OL;pCU6wknH_s3f%sv{&%;wdB4?UDLRBUqKlYOXglSg?fIMgJACi%MkHC2F?%`Wc87uq zU7yE6&s|d44jjMO+~LWgW6yc^)m5IUi-rV}SwdIDvg(vyY{rGobo;023z<~L_2?0N zN#IYfukvS)pHX0_DR`%poy3Hi6Ky^@6PU=)Nd{j*Wcal7>~}nS&hx}MUZ5NT9$iQT zFa*EH_o5DNr6Ymq%NF{yg__DIFnVMeYx(1w>-^>8=crSb0HZQBv&V>7iK71lAIu}t zMT4;duN)}sYuNl}gu85eYiri4>(syi%~p#>{C`Cq2Wo?+O*LrRP8rheSrE*~E5-)p zj}?CK!4>}c>!*khQ9mGaA)^CK;FGQGv98sXLqg@M6#nl~q{Kf<^PdTG3ZzMFZ>m7QX9o-CUJV(V58NH*+ROo&=g=ER?5>z;xsEP(pVBK zECS4Pu@-6J7ilakDgvCwA}!LwFVa{R5&_NvED91F8yR#Crwfa)_GVEAat?0>sw?0e z3C^1U{r-Z+PM6Z-dffC)TDg4YMHd##7{w~$i6X)Mg5A@-t- zXCV=QIWN$nEOvrL8qdNa0CQTXMOthYa6Aj|6})H*b`n^`xhymVIET}Ra|Af!aE<_H z9L^EojKetsye%-SWXv4k90A@ij4MbDLrTWP!jSXG7V%mTAg`OVsFlU~$M-tNm?MD> z%Ttt!L&TCXCZ?^O2NIk*0!USUUTC&jp(I^ZO>1$UG^S>&g^3l@-UJd%Trwt>htm@b za--Fxn5AZ2Ra_z6MZ=0M#DNuJx`il#Tdmf@CyHE-**c36C@|6dXMpuqlUK36@Ys?u zS$ViwdQJ#eRSlb~mP$ez6EzYNFN>|xuPyjoZMxNr>gbe}3-7lxIZVbz6qSE^*ur<;V)&p=*!l0{>xzTF&6crt)9J)Uv67;OOP+{u# z?yU2R%^g-c!hzb?k}iH01fa^(D>MwO6o!9&cOw?eHq}Wx&8sUf8S@I*^U6|L@{{{J z{HVWVOsZ%y1;;upL&$(JXx7LeN5;WuxKza$l!EWw-FT}CMqnhI{N(~^#3gF`SU~D@ zxkC@M0fX{Fp>Q7C?(jdp+Tq_HQ!-{&n42}w#p+rbix`Rv)h)#usDs#8@$z-xzzO~L zLS^n)n3-4^t>eKdZB^_kVnCt-Z9=tH@nGP?l6JDOu# z8pzuh4|eIqI)R0Wb%jJujV(-+piE`tJRG9zx82Z^F+Trd`eTBjO^pDm!Q4iZQ16xyn&51TJmu&HokR-tp=Xdsz_Dm|eNlj1r$P%_3v zqJ_pH-vq=MS4eDX1Q^Eci@+y$)_Y3FT85wgx21G!1+f}h&6=?1sdVg;2^-J}Le)H_ zgH$ynDA0rp)niyvu$8{Jd&-02$cI8*We~H~D`l)JJ?e^>8UcoJ`xt`&pWNLTTRi%$ zLxB9fRKa7(bQwftuF^p|`E_6g;j##8B3!}n2iI2lpO2rjl)6faNZ<(N&@2Dz>s@~P z)|K#<3$M9Yqp5#pPqwxvEgRRJU8&%QaQj$;)ajN}9kq@NjsPRMYRRO7q=<1Ev~*EA zFg+MB+ojMg8z)>6Vci(6TFbp_tBAryBh>SLA|@OGue@^P;itcT%I{sf1gh+NM_ap9 zTGFU`Lc>O>fqSMPi8~$7?Ju03cOH-!F0Wy(hc3+hsO*sr`Ym+REXB^&cBPHH0IV8e zqp;ljU=68Tq%bU-U|WGM6OIwQgot!84gwP7^^!)loS#TrF@Mky zi&%pcv1X9--OW$+0%}3!{#&=#`T18*sH^9d3u8NodW54WPHt~)4~$_z5%g{RP}d%v z>GqclpWInvWy!K!Hx$-jrmUr#OsR|dObh}>gu)t@>xPvj%O`i%V9E4Y>|9*SQCxVw z`Dqz#RA$x^-;oZW^nNao3qh7bf$Q(zS>tlu(y&5dBpQ}N|9*s|(nA5#0Fynso$S$l zy8XoMU1KNOyR|Yv38` zmLJ_-W34E-WI_e6>r74d<}iVtF*A#(?F0v*r6f#d&f?(i>eU5Uy#5HZw|k*A+w2#_Z7 z&DJ*8Tg}jqQ(k&u8BY;)<7a*2`yokAr6&FM_fRVP z(cMW)-#yYD&&zfhB!(l0Ms2J*AAB^9>2s(pKqJX|xV6oVR+AEVrSTro;HYpOQPK;( z?+PuW_U+Mxo1Y+k|3G2$n=Sl}HB1yw)hW9!x~7#b@E!zeuv25r)n0T`8?|Vgxvgn?K2WZwm}u0h5S)i7c&;;6R79xf4BJ z-Ubcgar5h6pVkDC)h87VrxC-a?W;n7VVq}wv`pUUmFPKioU$Xe`E+YLSdfQIXptbd z^riWwr)#GlREm8t0txc=T-Mg4%Asi#akDC-3i@Qv>#gR10U--U9;)ta58*U(_vTxz zCdG(07X|XoO5ArFrOZ5OiY#$N|6H!LS_5q+A3T?}*NK0R+nBU|H(Je+efIY?iz>Px z+x(lY78j!SsUdN)B0UtK*WeM%#s;NLSKpjenss0a32jP9zOcx~q~N)u!J>z#=U+diRyvILhz8SV8Bc$MFz|J2 zST72G|K^psgHqBhBHWhzkjsNfu|HxrH zq3w8J`ZvTxvcDYn;;J=Vt=S12at0kzY8?m8<21CHkRXTRYO7fVAubDC6v5cw+$eS1 zbvn#C5+5RBKD)KX=fB>q;{JqJQt8Wtt&&Fu|-eE$g@RXQ#lOgn_?n7s28l#mZ8dZcGh{+e*_+A3EttRmI3 zVT7hNT&vgk(cN|ALJhf4Aj>tRRvz9C-|JqZ`E@DHx7@?RhAv5W@;%ki}Q;O+*pQiKUuiD^W9aAoQ& zP|6quiPzd+fBh77NbZs^1HLlC9P8#18H=8;L)hS5NwP*bkPYkPq~xa(j~g? zTZ0rHv4)0NmhqJY(GP<@fvWuM;T~(&uwo3gzK9>KJ_l{D9D2`7udEy4qFBTVD|O57 z+*uC`wp>GM(Lfy+>{pw+xQ>tf#I(CLUr0`v9fczeq3uh68iTPyqi*>AopqRUE_u8A z-m~lc*uayt#wjqQF5R#INqrtVe!01eD}B|UNC;d1?wz&pzcpz5Zar4Kv)bE7f@6(A z>3-lXOq4cHO^!xw%Wb?QpJl{MIYK+}!26ch`dm7T>lc zv2l1@Ko0^K;OX|a{LzR16jOv~)DZYN-ClY|L#Z8M7jM^!{q)%KRo} zfl;SX)6Xi}r*AHFnXZp+tp;-Jv@4nCA!db1 z+IdGk3%+~Je0pOwj4%HEw-5KidsBw!_lAe(Cq0Q42^k6#kRUQObbNPUnh!GO)GG-W zSGqGY#1Y=`=8uEp=2C@$g>{kTj3-Fz5+j2bdX5naqQ3gQ=ymE)oQBLQv*1NSJR{X` zzIe3Pa|NW2boDlq^-?_9+GZ*K<1;B>y)ay?7c?4{kMFLBbSSFO4zX{4bAN}j<1s2M zMV)^kUCY(5jb5bO0JCKG79*HKD3%NU`ERUedgMs<+m2st?ozfLsHT1AWt0MZp3ZI5 zxCZJ44CZIBUU5$O+lPB$T!5W1KfzEbKw@0F82I@5YPfsa9(5r=^yizq9JD>&Da(Z9 zNyZ2Uldh%VlY7%L-wB{11R{KN<8sW?pPh2&`TK`^_!zn4Gj?Gb=$em*u4!faB%F%YXHvi)J$`&FWzOyS{rMR*=4Swcs5eXz6tkCAtl0$l33?D9 zWgWo^Y6Yu>;kR#Hfx1Nt6O2diBJ?wWq}*_c)6ZWU#!#YHQ77&@L65EK`SXW+?3N|ZoM+!hX%OW=DneFFsa&xfrywq->=CIS4d-P17pJC7(JV|~6`DfqxP*XtSdodvKvIrksZ(&7f zqrCJXWA!Tyo-E1Ue@Wmy5mt<4*#s#-Mhx$)LGBQ8;2kf#^8X%h@iYc%9x^;)SEBm% z{W&;1D+j|ee#u17pAN!4 z!NEc3)&n?)0R4`d&-aq}mIvxWp@Yd1<6GY;}S8MoHc_I0B0@L5Bn&LR>l zD$E?8agw;W)85e2h}nDHA>ywKWR*sO;1$`H)dp12+WDw{kH<&(RpZWB{AgGf}Rdv zs*NeDk6=gEUM)Ee@%rXJdWQ>M9;$n)+t*$xAL{PbbjrhTJYj>A4$e+We#<~`u;rpH zw8b7Tb9Ti$c_I%{j)0vEu@MTG3ogUfp)oF5YxwE6#38Gh>zTZqV?gJ0>D$>>h^P@d zsG(QGT13!=)1Y7y2&5`bWiH-Jd-^tn`o% z;u8I^>gR%#Z^YGRZn)9mubB84!O#39tQ$x}q+j4rNgZ!<0O3moaHu_QfJCZw7ebXB zQr9DCvA{<*028$#!6pkfb137-L3o!sPDvRl)1St81wXio2>M4q{?-1m9m45|oVKauoDJtj3Y5_p^NX{d-JS zhQ|mI8NHn+1SZZ-(|K5^4u=2Ad-F&g70r_Lp>T(cHQ2<8W<>;EW*Z)H4LS8L`_ei4 z2^3f21Kphn+vF0#?w8K328QC^2I2TLh8*G=%pQjsjBJ9`JHqP#@(2VE;T!o0rb(XK z-2qhk5O8hKtS&ubRTMs<2Qw+|eUMopMOL%m8Yj~FT}N>>cigUY=g-sai6X{b4n+2( zW4^6Dla@$(p7HLSnrNQ1ji#kXF%*Lu(2;NfWT|YyV?$VZAo~L?5i-1?eLKBmC2BM_ zJI=@Yq@yWZ6P2K4Z}vBn6GL6EL&c+hBk=C{?&Hv9?sD$A^N8KGrsIQ zO~pa`$lrwc#9Q#PD_8)vDfNe)TS3w9Ka_OR>NUo^n^kZ?DP*d7+DZA}*t+i?Yb9}X zTNZoRLS=6nh?^7wnpfI9(Qtu1<%rEeXM1)_PvsHPfHwG80EgI?B+~w;5LPissG@F) zJ|M19yIIrajm9!hJS27{+;xQgmL~?qyx%(KUg&j7Zd(hFs_N6%8HpkW-o$6|-fWlq zyr}r7nG$2R<3B2egR>@?E(ft6g<=Yt~b0XlS{`2WP ztyF3UMZ->C+DYDR0(WK)Z)Ai)yblfG-B-R!U=lEU*%g_m@IRUONj}d_de!0959#@T{ZE)*l4y}+ zCyDUx+j^5Dc0(}(E$~Trsl-@?z|fw3iTPg0yKs7=O7TP2GMPLiFdO)FZ;#R3%6u;0 zF3AK?sT@54I!c|SI7ae3;8y*~nQS&s|Ngq+(6{sF9#PH59)SQ(&mou;bh_}JF77by zc{yF7*Yn7~{XsKMo5aw|YCm9_cvJq$ z)56$s{rMvnCoB^4tX`cPR2h}hpxkGRCA;E&oH@GM*F8*M9M8Zj$9EyJKV3;4P3iS{ zk4$KY%qVWA2Sx0p1&4>WC=h(168KvZ^>Ts^m%TIT3KZ_a%8d8n+!uFojp?teY%^d< z7U_efmBuiFE+;@NS@w8ZVtAia=-Uj9noy%eYuKU`(nwhVVOc<3>2upRhH`ymzp-JG zQpC|LyeCu)4+<9iIT~!h<3bN?bL1kyI9k~T;P1H z`B!YwX9eX1s>Wq60z_rM&iZGEp}h6|Ti4jolD(Tp%TsNyjhtmry0qt-Liv z5ne9(tguVd`$+gkIinz;Y2fY3hacuczwm1i&e`|Ipzf!&Cbp>8*%ivQBBZ^@&VTRv zka~M%BZ>yD4m(VTsD}n%PUbex9$vPaI1B`$BCkS^^3IlzkET?|!gM|eVL6_$v=cEK}D$i1`i+k~V-{;#LLQ-dI`rpAnf zw1H!+;O)O+m*h{METW$4_n}3aqV2iRU~#Zg$ZqzgpVxva$P#G=;(C!GlNr{|*Uste zfC6)(=C+8=R6F3`E!=+i_fN?G?9`W5FQvwRAXbG-A{b(v?2k-7%*N-r1aUtWnC$6b z3>B=Xa(5VcT zYv#(=Z#+TG-+#(?Dsf3$65Bs)=h#0@Y}-_7q{EePHZ^+T;L#}^XcqSAh3H`5-SRlR zXuz{A|6R#V_sA0>Dx7zkjeTXS*@ikcwpJl2EQ8IKvguCsuvSLKhmf`t@B{DjYMxeg zRIn(Q5JnV7KK_LN%Gdr;B^oge)(X-Bz1|V4Zxxh1=3AlN+qt!TRwzJB`~O9YL-CgM_wP0>|5(;mc*c6D8>JMW!ofS9>E#FA*r{p&q^?r`KA;(tTT8_Qup zctaOms$O8!{{x_$Lktsvhd)9Zp}}YvXo%l7*fUUED9jAMOf_!4!QNOtho*-TGbij| zV#gKptKoqa86X?)xxZOGLofVqN&*y@KC=)wLbCq_4QOC{VlIR?F~|l+(m9$qcJykb zG>ry+lV0`+SS!O2cdt_1DhD|j6jwR-Vgo?G^WbIY1C2knEf>8vnpd(9tmm%K?u?5e zpY1`XB~sMO`DUf)fLT$IxwBMnmI9qOe0Nc7HbJm82;%6LPVKGp^gBh9;x!*#GDid{ zUO!2gcCT)YV^0*nSwXoyamr`ye}{H#1@-nztyD#^F(jxF89%jmbuxm-Pi}LYgEbko zb%&<7n~1N#%PX;Vr0r`?O{6&rDs!BXODwcsqjK;7$eocBV8COf3V8$Cz^94Et^Uq& zt)`CxI*8{LRBQo1i#ZINB6s`4hrrs^>US-fca>jV?N10)_}b0KiK^2%?oR86F^Z6? zhK)n8N+Y`}lsW~Aq+IZi%pH|kqQ*q~Ye_=YFIXAr%iv#Z z8bFB+Pg$o=v^Fe`Pe3oVrX$Cw(c1{YFjdWG!uxF@Wb`sjDD+gp!D69|)*=zSWTaq$ zE8!}pg>7GmVP5ih>A2BLynQEbbGnq7wM1M8>ti6-IuseQ8h=;Rxu6z9!O!nL<)P*1Hyv2b(?DqX>~*JbZFMkv z^(V|oa4jl+bB8jY<(fpM4=~2n@a8>~E5_e)gDHe4itmMtmcWUqqJFspS6&bni>4hS zk81j6tG{OuA9sSUmg9E3wKp63&PfY$r@KW#Z~tJAIQ72u%uMZPA42|fm+0noR|$im z`=>9538>|~Jn-O@TL$n~_GmO_sKVsy!>5dn@YABbCyep$V$CB05%G*i1AAZa9qd*z zJq~htNMx-G<#i4QO25@p*b{G4Pm5cmIK!Lg&dEC1ArgH!`O+)nweYAvtRGqMvRLNf z0Bj=FpU7_9uktufMkSp>zm3x)`KrE{XbQz;)ygoF>(jp7T4TVBq@g77NE4gTZb)rv zxTYuI_^(_XNB~GjXQ27j!6F9W@=hH&;r%QwRvMQra#)?k%xD9`IEs#>F8(HCq-a-9 z|EvE~Y#FyErzE@#eU$NoiOI=jXM25QyP@~QPYNX)Xz8YnQjHGxMq&sb<)4aUEZ z!meJOt|%lMNmS7%PuPYq8wE(=is53en4gHDgTT7qd^e9$L-5Bggu z(*pkX73O%(lr62T9JNRr!)wPj8ta}0*x*+gl(KUxp4UNDP=-;A#bv${uC-_gz8v>q ztO?}Tdz~lk(0Z!jMgOeJyEBJvzIR;&`PC)xo6rEU?vjweE ziWT)4ts`l6TU4%hU6sVK8Xcf0l5F>v=@JoR_6@~WOp(!#j@u`JtR}c z6Dq0@jM_uF#789F;BwtTlG4N}x?c}#dli9zHq%e9dCT@sTVEWHj(iULS1^jnH|eWW z9>{QT$SeTE&(m3sL8Jdkhto5d<2s5Ok+`hbR(Is{7VXWk*s1XrrYcF_b|_c%BHqvL zH@Ug8M4_66?eMdd#0~w@PZpX1q`pi>Kw3hXBajx?f3%FHb(Gmg^rQ3~MV4zx)b?Hc zqwg&g?MQi=M)>+nd$N7gHhX4+4#M}aWbnpJlSjvd&r~Nbe?r6v>vA?d7|#7ehdilI z@F9|5BW=C2Wyr+&Sk<#bjqBjg&q$7P3ue<)QT<#Q$GL!#RyODAUOu2~aze2u)?7oQ z^^q|05r3?GcA}}_*AzwE^zvyu2kwoSHr1$CZ@;(#r{k%j@g!eCkWnP%f`v#yKfs^6yB~daJY6+J=W951 znT~m-l1$PQ%iEtt?)0DaIQH4KGMt@YKDJ*mdJI2jykg!~BTKu;xeAPex3p-%p0HeF{&(=#k^Fxa6&H zClA@DtlX~Bx$U|%Op{2J$uYpq`Z7C|L82*m^Z6cX^)qS_tjC{;d*F+KLH6op5fu~w zv*R8Li7tv){qpx`V>d}PlHdkxX?%^rJ@2v~4P98OHO}NZjxxMdAT4{R!sQZEttY-I zFeUdT7esl#aj6wEBT;oc>_W#9a3<>|!X{`nMHEj)QrC1Otn9(OOl*fT!yghg&8`N| z#&d~{9s>Fjn;dwKkfS3FTP{K66BTQF08MspDMZB_RS8-x{+w!^0saYtqI=3Gpxl=< zj}fcxKU~6;FiIG_m&kV7*ZhKZR+1&{TGnAF3o$rHQojx-Z~QZ2r8GYD(Xwq!czzj2 zVWRG0={KOplePS}>7-4&WQx+@D6$5=!xE#V+ECESuWqgwa|^BV#=;(=hC-Th_f=+s z_Nl1>2%LSk+&epH-~KqYfVr_rrpL0Es}!xZUiVyo_`l;&+*A#F?;_ec{zsvD@P1ig6PBBxQ!zNfTO00N)P{ewR{OCwyGvyW%bkp?~5ABN!#8r7| ze~y)lUlJU4wJx4O7ut3HI~t@>aPbR;-3faw9JqxZH1zf=RCh^{VhU>84Ctx_VJ8Ga zS;UtfjZ}NpD}Q^DFbxWBqb(=R?u6n7MMm>;J!|FBM&7HW_{3lKUF8@%wkvac?nIWZ zPSnX~=Z(xifT-@S1x$G$C1+Q&clj|PHpJ=2S?g!CG5%PQ#9K(iWMp3$(A9tl9X9BU z$f3Y`D>I3bUwL`&lC3G$3=y2#mjhTweYoE5=cF~e3Vy_wmm;V!v4o|Fj?a5`p5=$Z z=3@dw)C7GnY@gR`+lS%>>}utdrh$LPyxb?E@UBQt2ry+-L&1P>Yenh%@w@c_JYGby^2`>yQX=S~a6#Zr zxc(vg8V$+ugq85KQvcv$tyvxYeOQi8OK`H!(jz$4SlQ@sdS)|kJAvZF45cq^9I0M+ z;D~!teU;1m=4Gc3BkCgj>((gQ3Ks5YAdS-tkNr387F@&~GECVj4|4v5S(nLhL;*Y> z9CL{c7VKE`zBu*v?!o~Fs*86tdnpDr{*Sv(X?G@)ys8MSq-Lum`ZpwRzKj5ubSr>6 z-B6$n+jjx0#D0uuYd2gp=qVK`RE#0kgdGq^qsFRmY_z8Hvf!LAp+L>_BdE(U zT#Km{#uLbW({jxf1y7tKlyqCj#6s&h;prE{jFzO4iLkFA^G6hwejxMH0F3GBPR5V>+_Vr|W&EvJrWu#=hGS}q zjm9ieToqs>E}=@Qdw#3HR4e8*WYh5L=U9GtW!uQXG>0TfL-3S8P}RB0gR2zSSfDeRQSl~@$6N9yadbE{3qSm9c%GcmNq!h4ke}7wCM22G za?xKz1(st`uxhg6vlE0hOGc}-@@#rJH2{<6Yu|a`hV2hfKhKs_Xd%TP)hOVT{(|R( z=K-VFL`PVuea;q`Z>hXBKd)%>x&|xH2sQmhdwrQ7V$F*m`2O->(C}nuk#V+WgvO}r zznnZbwCMu~K*9P%8bR6B8Ok8eYbX0eb~zscoO2KB?@g9Ucc^uw%W9UO_uk$|@Gk2GY(`zmqUCuR6;-UbyLwv4xE4YBbQY z*AH@W4q_W$>=htx=a5r0lxW5=XBGQS}6>j^^agY;L6gA8H z`}oPW#ZS9cj=1sUz1_i0Q}A_C{;GBJKCA=|5=r#>v`Jwfv03LU)?)i`eyUF&RSe2Y z{C9hI=SAO1QPQv8`an2yWr)6f;8Tt6l3h<~j;MhmRkG0@Gnl=`o?6WPceRmgC6tJ;}%` z=D3L{($Sxm4f-I)S%Yhm>{%|k`8;*U!I2u%kBVsbYzdSJWxu|Q1~o#$h91FC)tgA- zQ1hE+d2UjT0xB^|_|j?`U9mbUZE=wM;dK0V!`WHm^5Lfqyplq5ET*T^x*FB?k7l7) z2TI{$fJ9AFR=LM4`?>?vp(Fe_{b0r3e3j}+D!qWnKpb|TfKW0tAC3P){q#@tV?vsP_=BpGl}vK(1MD$k#?o+99H)uSo4M$ z@}0aoTwxOdCWqq(iO-PdnpKxspyQVYBvXEmt&(IbQCjf|BR818BE-B~Vo}H!oa|AF zD@YaX?!f_4Np-Ty_B(T;$+F95lBc?U@@l;5Qmw<`iOL%iF1C4m1P`zFh25Y={zMr0 z;d>UqQhc>}l9_l0 z(l^h`ZBu+DMP{HqhE3EF;Sk{P4F5zdkIVfE38O$m&8dZmF^VhktqlSE!V7_nw}o2S z*c?dgh{~XU7cJrql)doqrP)v))sOj=0-$TW8)9WrJV8!oVXs%aAyIePEprM)4wMFq z&r7AF6m%jv7`5vwkr7<%qpo}^2(?3d(yJU#FCME;eG7IarVruaiHO%~n&{|9o&+!p`< literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile4.png b/core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile4.png new file mode 100644 index 0000000000000000000000000000000000000000..e70ee57e2264a5246341d9b5858663f405c4e30b GIT binary patch literal 7325 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, the middle region of the autotile has random variants. */ public int autotileMidVariants = 1; + /** Variants of the main autotile sprite. */ + public int autotileVariants = 1; /** If true (default), this floor will draw edges of other floors on itself. */ public boolean drawEdgeIn = true; /** If true (default), this floor will draw its edges onto other floors. */ @@ -89,6 +91,7 @@ public class Floor extends Block{ protected TextureRegion[][][] tilingRegions; protected TextureRegion[] autotileRegions, autotileMidRegions; + protected TextureRegion[][] autotileVariantRegions; protected int tilingSize; protected TextureRegion[][] edges; protected Seq blenders = new Seq<>(); @@ -148,6 +151,9 @@ public class Floor extends Block{ if(autotile){ autotileRegions = TileBitmask.load(name); + if(autotileVariants > 1){ + autotileVariantRegions = TileBitmask.loadVariants(name, autotileVariants); + } if(autotileMidVariants > 1){ autotileMidRegions = new TextureRegion[autotileMidVariants]; for(int i = 0; i < autotileMidVariants; i++){ @@ -235,6 +241,8 @@ public class Floor extends Block{ }else if(autotile){ int bits = 0; + TextureRegion[] regions = autotileVariants > 1 ? autotileVariantRegions[variant(tile.x, tile.y, autotileVariantRegions.length)] : autotileRegions; + for(int i = 0; i < 8; i++){ Tile other = tile.nearby(Geometry.d8[i]); if(checkAutotileSame(tile, other)){ @@ -243,7 +251,7 @@ public class Floor extends Block{ } int bit = TileBitmask.values[bits]; - TextureRegion region = bit == 13 && autotileMidVariants > 1 ? autotileMidRegions[variant(tile.x, tile.y, autotileMidRegions.length)] : autotileRegions[bit]; + TextureRegion region = bit == 13 && autotileMidVariants > 1 ? autotileMidRegions[variant(tile.x, tile.y, autotileMidRegions.length)] : regions[bit]; Draw.rect(region, tile.worldx(), tile.worldy()); }else{ diff --git a/tools/src/mindustry/tools/Generators.java b/tools/src/mindustry/tools/Generators.java index 4c5a847e6d..b092275e12 100644 --- a/tools/src/mindustry/tools/Generators.java +++ b/tools/src/mindustry/tools/Generators.java @@ -71,32 +71,36 @@ public class Generators{ generate("autotiles", () -> { for(Block block : content.blocks().select(b -> (b.isFloor() && b.asFloor().autotile) || (b instanceof StaticWall && ((StaticWall)b).autotile))){ - Fi basePath = new Fi("../../../assets-raw/sprites_out/blocks/environment/" + block.name + "-autotile.png"), iconPath = basePath.parent().child(block.name + ".png"); + int variants = block instanceof Floor f && f.autotileVariants > 1 ? f.autotileVariants : 1; + for(int v = 0; v < variants; v++){ + Fi basePath = new Fi("../../../assets-raw/sprites_out/blocks/environment/" + block.name + "-autotile" + (variants <= 1 ? "" : "" + (v+1)) + ".png"), iconPath = basePath.parent().child(block.name + ".png"); - if(basePath.exists()){ - //theoretically this might not finish in time, but I doubt that will ever happen - mainExecutor.submit(() -> { - try{ - ImageTileGenerator.generate(basePath, block.name, new Fi("../../../assets-raw/sprites_out/blocks/environment/" + block.name)); - }catch(Throwable e){ - Log.err("Failed to autotile: " + block.name, e); - }finally{ - //the raw autotile source image must never be included, it isn't useful - basePath.delete(); + if(basePath.exists()){ + int variant = v; + //theoretically this might not finish in time, but I doubt that will ever happen + mainExecutor.submit(() -> { + try{ + ImageTileGenerator.generate(basePath, block.name + (variants <= 1 ? "" : "-" + (variant+1)), new Fi("../../../assets-raw/sprites_out/blocks/environment/" + (block.name + (variants <= 1 ? "" : "-" + (variant+1))))); + }catch(Throwable e){ + Log.err("Failed to autotile: " + block.name, e); + }finally{ + //the raw autotile source image must never be included, it isn't useful + basePath.delete(); + } + }); + + if(!iconPath.exists() && v == 0){ + //save the bottom right region as the "main" sprite for previews + Pixmap out = new Pixmap(basePath); + Pixmap cropped = out.crop(32, 32, 32, 32); + iconPath.writePng(cropped); + iconPath.parent().parent().parent().child("editor").child("editor-" + block.name + ".png").writePng(cropped); + out.dispose(); + gens.put(block, cropped); } - }); - - if(!iconPath.exists()){ - //save the bottom right region as the "main" sprite for previews - Pixmap out = new Pixmap(basePath); - Pixmap cropped = out.crop(32, 32, 32, 32); - iconPath.writePng(cropped); - iconPath.parent().parent().parent().child("editor").child("editor-" + block.name + ".png").writePng(cropped); - out.dispose(); - gens.put(block, cropped); + }else{ + Log.warn("Autotile floor '@' not found: @", block.name, basePath.absolutePath()); } - }else{ - Log.warn("Autotile floor '@' not found: @", block.name, basePath.absolutePath()); } } });