From c2f365a92c95cbb997f68325133ac71afc9e3156 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 14 Jul 2025 02:18:19 -0400 Subject: [PATCH] more textures --- .../environment/crux-floor-7-autotile.png | Bin 1149 -> 1254 bytes .../blocks/environment/crux-floor-7-mid-2.png | Bin 0 -> 253 bytes .../blocks/environment/crux-floor-7-mid-3.png | Bin 0 -> 298 bytes .../blocks/environment/crux-floor-7-mid-4.png | Bin 0 -> 283 bytes .../blocks/environment/crux-floor-7-mid-5.png | Bin 0 -> 304 bytes .../blocks/environment/crux-floor-7-mid-6.png | Bin 0 -> 294 bytes .../blocks/environment/crux-floor-7-mid-7.png | Bin 0 -> 253 bytes .../blocks/environment/crux-floor-7-mid-8.png | Bin 0 -> 253 bytes .../blocks/environment/crux-floor-7-mid-9.png | Bin 0 -> 274 bytes core/src/mindustry/content/Blocks.java | 1 + .../world/blocks/environment/Floor.java | 21 +++++++++++++++--- 11 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-2.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-3.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-4.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-5.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-6.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-7.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-8.png create mode 100644 core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-9.png diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-7-autotile.png b/core/assets-raw/sprites/blocks/environment/crux-floor-7-autotile.png index eba9b8cb2b083ffd3820a9476e4ab0174f9021a5..53c313633839a8d470dd39b74af635c0f6d0b548 100644 GIT binary patch delta 1221 zcmey%@r-kVVf_M67srr_IdA7W2I&}bw9O5FFZ1|Tk!96?<`wM)dW*DIyJcT;Xkd8w zf7-1Uo0MHnXOAC6*i|0sX-Uk0D@{c?Fmk9{(yXPi-)|Lbms&qphU zN%qIA&E|YuS}efHaB}&_u8AozC%3+7T@ZS5`Mjm~K5zK&zjE)Udz?GY)TF(Wi70Q- zIr%(p^1=G4yH&q2&6@1RAg6CxKlP9M1TO~uE~9ku|EmKzAAGC{vz_ez?K@NL`}C`S zvp0UQ*KLSCZajIxn|x+FuDaC!QEUFpwq;V8yrcZB24~2J%|F(6y|ixF*0U-vUhwnu z17|p+661SILKz~ucQR~A4JrMdHG^w`Qc23%+zx-Ke&Rq`D8nfS$!Jc6s<{i4qB$8( z-1K75V1AmT+R)DOn&qlTrCq}{yQ;YfqGJCp&*NXPwLeb%!?9EKuRb$w`KJAwb5&Cv zgY)mM1@Z@O?3213%ILuMi?QeJ>PE2WgPMls`MozhSuErko-^O@c{J_C-yfmBe_kxF zXX5^^!92UUb-^=;d%?^dHcUp>UP^xdytU;Ub3n@a%ZtB%-WqW>ek-5D#I1hMf4x8O zNlRguU;nrHy-S%o)?HrwH=X4*!`Vo!h8I@0x9Z)d-Dh0%`b)8i z*x?(95w+$QV+_lNRr&GWTk3Te|E%}Eu}d&~c;Iam1?sNSk)iD1v*^Ja*->Yo2S zYvY&rr+x?T@jS|#w&3C=yPw9=p?54hTU)M3% z-Mi;Ix1^zqQ#AP9*3F?;GR|E7eEDg1N=ap{>BLIWFO8 z^^^ZMoBf+o|4G*2H=|Xup!Hb^ndocY3N8xAjna&h3v+LTGPoQ#t{fJoKe1l%KI4IV z3Hl2x1ssYM8lJ)P9y?P8AIk+9js=#BJ~M7GK5;nv<{atz&iZe%3@4vI7SujDV^Ve` zlf$Q{5yx`Ubk^}|GN{zcb>GN5_TWan-}aV;vTw|d|5k`B)J^o*C*v)6=1Bdq|99OP zCfT=#=A=EY|FZkyj76mkD)X0}3cp^Lzzs2U{r`-lx&W1{%KpB3xAsX#&*i`H@%P`T z4dNGM{_JmfHe)}t%Y6O@meUFM89%&v@>p=S$a7`~7L%)d8-?ccGYIx zZC{mtmG$4Yi7rW+uWW4WWB1oNM%A6a$8e^V!Gn)+f((;_WqlM|e0=<|w@*@P_Ut|V zyyw>b)VCi*8J=%nxGns2jc&3tW5eg)0XNsC&s(ufiov2@zWQzbc6a%Ub~&O=S;Bw* z{&{oz=E;gZF{_fR&atej-?w&aH)F%++X3tcr~UQbcK?=h=G&{$4CnIQGbhVEzg`zU zYx7RNhR>&aw)v*~yJl;`%5ZMI@hLam&)a%<#hVsQzV@zlYvrA<+YKigJ5HImpzEDt z32T7mezRk-`;R=$I=Q*wi3f9i!h6M|vF|(na22Gm-*tX}Y#l?zo|v%ro!MUzjt@Hl}?0{Nv`YYDfD6j9>EtID}rwF65gabID=hJwYzV zq`lH#m@n{O*#G0!b7}Yb^Os+;|7fdYn0QYVq2LPRBxfm&Yr7p4Jyw*rfF(h$xsa1| z^3C&)o4(I3e;vRhax9Nf!<#? zGjHVl6`HQ?`a@tx8Anv|`-4Yf|7SORUcBx7P3OzH2UJ(38$lvI*N$0$CDrYA+7ZQ4 zQwF%BM8i}p)s8i;mdROma<*dCOoW>3=9kmp00i_ I>zopr0N_R@rvLx| diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-2.png b/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-2.png new file mode 100644 index 0000000000000000000000000000000000000000..b2528814b01a94d9c9cba3ea9dcc2fd85f8b84bf GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>VA$^I z;usRq`gWSNP=f-Giz0ic`^9VCH>&b>a+ryo+o9O-hihAshump}gEvZV@2%WoFk2$_ z+`*qR^OD5+&Ypbe>AhmFqto#=p^JA8@$}oasw>y*Hdi>9G3V6n#}>63f}Xo_ENwg+ zLq5m+E9Uf;&e(XKEoybW@P>Vty^DFE$MdW6-F%W67#J8lUHx3v IIVCg!07@rlivR!s literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-3.png b/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-3.png new file mode 100644 index 0000000000000000000000000000000000000000..235d30cb7c412548a5ea477754eec009d29d9778 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>V0hx` z;usRq`gWQv-(dxw)`PDsPXylDI{n10;`Z((-dYQf9oxTzr&gG$-ljX@QBA$g_mT`v zRnIL~yUs;dOvusc-T2`EYmcA6hUCLc8+R@h`EtY5M&;4%tqiQm$-48ef8F|>$uMyG z*+a}*7npAUwA@=F_rTh@LOY`N>mRmm2Kacg+9yu|HyLg&ZL$p_p|&#&k1GB7YOc)I$ztaD0e F0szSQgrxug literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-4.png b/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-4.png new file mode 100644 index 0000000000000000000000000000000000000000..d7650d87891a8fb3d68520030c947659370cf283 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>V7Th( z;usRq`Zmm3tVMx`$C5)XHTS#Fw(56Zm2O3RFj186h_DdlH#%dZVD-|t-rU0ADUZ~j z>r>}^{}8x&e4$6E_MGMqa3i~_F`9pZ`^qTXxJY(dw*Wu6j lsaSd7P<@zm-w%Pe|DK)Bvb}!5i-CcG!PC{xWt~$(69Dd*ZJ+=E literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-5.png b/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-5.png new file mode 100644 index 0000000000000000000000000000000000000000..54a79297d9118aab694b4a2d004abca35df98e41 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>V0h)} z;usRq`ZnBCs6~ONWy<>l%g@9-7mlmlUUS5hN?dkvzkU7J@@(r> z%fkmB+FGr9$ef;-*W1RwwCNfz)3)3QMfaFf@pFH_by&&SX)(P%TkoMm%nHG09}bJN zWi1j->U|=xEr%)EI&*=!i&+iVmA1V{G`c7B7zG7W?VE?kpF@+2YT8uV3ACo`HdZ!PC{x JWt~$(69C!We;oh- literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-6.png b/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-6.png new file mode 100644 index 0000000000000000000000000000000000000000..6ab458be622b1b3ec3be54101c36d68114df72f0 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>V0hr^ z;usRq`Zmmwk6Dpp%aZp8mT$TK??3C^{w?j>ItvBa#C`a!m-jXq&tiR6wA()JY4@oZ z0h{f?kRETDz&WUUD z;5U@MnAO6?@sW9^QiA;i#Y1n|m0UCG8h*8A2uf92{yh-?t?@Gd7KyXPBJF<~OwS7z x>BfI$eqrN&LRWB|(HzO`*XHdObmgvLE}1(!<($VQIR*v>22WQ%mvv4FO#lUocAEeI literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-7.png b/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-7.png new file mode 100644 index 0000000000000000000000000000000000000000..b2528814b01a94d9c9cba3ea9dcc2fd85f8b84bf GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>VA$^I z;usRq`gWSNP=f-Giz0ic`^9VCH>&b>a+ryo+o9O-hihAshump}gEvZV@2%WoFk2$_ z+`*qR^OD5+&Ypbe>AhmFqto#=p^JA8@$}oasw>y*Hdi>9G3V6n#}>63f}Xo_ENwg+ zLq5m+E9Uf;&e(XKEoybW@P>Vty^DFE$MdW6-F%W67#J8lUHx3v IIVCg!07@rlivR!s literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-8.png b/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-8.png new file mode 100644 index 0000000000000000000000000000000000000000..b2528814b01a94d9c9cba3ea9dcc2fd85f8b84bf GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>VA$^I z;usRq`gWSNP=f-Giz0ic`^9VCH>&b>a+ryo+o9O-hihAshump}gEvZV@2%WoFk2$_ z+`*qR^OD5+&Ypbe>AhmFqto#=p^JA8@$}oasw>y*Hdi>9G3V6n#}>63f}Xo_ENwg+ zLq5m+E9Uf;&e(XKEoybW@P>Vty^DFE$MdW6-F%W67#J8lUHx3v IIVCg!07@rlivR!s literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-9.png b/core/assets-raw/sprites/blocks/environment/crux-floor-7-mid-9.png new file mode 100644 index 0000000000000000000000000000000000000000..1c1918d0871397b6d773df5e61d06da456030983 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>U^wIH z;usRq`gWS5P_qJ$Yv!@ymc?6c-}}!}HF4L5b14R#oL;YdP6~bc>Cf`F|M}~`p7&36 zoDBNBX~SdPstr0hZ!<4CuU%-aP;mR0Y1Em$zj}7Ob>KaeoOkv8JYiW4>F6Has$T~b ze7~%^^tgbd+NmI0o?+4HQr`1o)x3+(sPa!xTcn_HYfno<{EXm^-*=lBKh!e_+AFNQ zVk3|^?}c_pi$tXZYsb2Y>{o0i2>Q?E^vplS9CCvx@bc=)2H^^YHC1N(8E#@6>+k(l d+$B}OntZl4rRu;7H3kL-22WQ%mvv4FO#lyUaTfpp literal 0 HcmV?d00001 diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 7c68a43226..aeb94adadb 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -854,6 +854,7 @@ public class Blocks{ autotile = true; drawEdgeOut = false; drawEdgeIn = false; + autotileMidVariants = 9; }}; coloredFloor = new ColoredFloor("colored-floor"){{ diff --git a/core/src/mindustry/world/blocks/environment/Floor.java b/core/src/mindustry/world/blocks/environment/Floor.java index e14a517f5b..da9b0154f3 100644 --- a/core/src/mindustry/world/blocks/environment/Floor.java +++ b/core/src/mindustry/world/blocks/environment/Floor.java @@ -80,13 +80,15 @@ public class Floor extends Block{ public int tilingVariants = 0; /** If true, this floor uses autotiling; variants are not supported. See https://github.com/GglLfr/tile-gen*/ public boolean autotile = false; + /** If >1, the middle region of the autotile has random variants. */ + public int autotileMidVariants = 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. */ public boolean drawEdgeOut = true; protected TextureRegion[][][] tilingRegions; - protected TextureRegion[] autotileRegions; + protected TextureRegion[] autotileRegions, autotileMidRegions; protected int tilingSize; protected TextureRegion[][] edges; protected Seq blenders = new Seq<>(); @@ -146,6 +148,12 @@ public class Floor extends Block{ if(autotile){ autotileRegions = TileBitmask.load(name); + if(autotileMidVariants > 1){ + autotileMidRegions = new TextureRegion[autotileMidVariants]; + for(int i = 0; i < autotileMidVariants; i++){ + autotileMidRegions[i] = Core.atlas.find((i == 0 ? name + "-13" : name + "-mid-" + (i + 1))); + } + } } if(Core.atlas.has(name + "-edge")){ @@ -234,7 +242,10 @@ public class Floor extends Block{ } } - Draw.rect(autotileRegions[TileBitmask.values[bits]], tile.worldx(), tile.worldy()); + int bit = TileBitmask.values[bits]; + TextureRegion region = bit == 13 && autotileMidVariants > 1 ? autotileMidRegions[variant(tile.x, tile.y, autotileMidRegions.length)] : autotileRegions[bit]; + + Draw.rect(region, tile.worldx(), tile.worldy()); }else{ Draw.rect(variantRegions[variant(tile.x, tile.y)], tile.worldx(), tile.worldy()); } @@ -251,7 +262,11 @@ public class Floor extends Block{ } public int variant(int x, int y){ - return Mathf.randomSeed(Point2.pack(x, y), 0, Math.max(0, variantRegions.length - 1)); + return variant(x, y, variantRegions.length); + } + + public int variant(int x, int y, int max){ + return Mathf.randomSeed(Point2.pack(x, y), 0, Math.max(0, max - 1)); } public void drawOverlay(Tile tile){