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 zcmYjQ4NOyK6#ZUbGbkv?fH7u)I*K4a62ajBf#N#LpTIT>2*lzK*a;#VB4UvD1Q96^ zg-%4J_K9H{VWo^Rac-r?txyF8Yq3S8&dQI23Z+Ixa|~(LOGT%UkjgtBL@Xb*%6=swP^H zMFKMZP4B!wP5#~}h_VnO(#e$txkv)TI`Tf?KbU&dAEeQhtZqM3>?vH-gwBOIfO`L% zX+(z3?aw!C8+Ub)8x$ob-)`)u@)sYo<8&dQK0+EA)TC=ESYal=q~p}>%8+$US71!p zrSmPLdf_Zy{QJ+Nr0)Kb>=)$JBGgwlv5k8JId$E`Ksd{d0j~bR$f+g9$rxbE3E1s~ zw|+%>qAN)b<1!4d2#05OD@-{Zvk`u1dT$^Xo8AY9Ta{+vX>CjA!U$AucaheMlr-D< zx}Ebp6#b>Eje_GN{O54t=-OmK6)z^S1E2+@9r_l=ARJKv;vtu=g=C%FQnW8$O zj3&wngTpcvqFp00m?^8pPWkJr(l-|x)Ki@!1yy4E)YlAWCE1twnZ*32xDx(@B&=JnYkS66jOK055nf z*8{C2P7xJR#o_31_#s}V<414g=WVgB6WcszrMHm3^^nNmV!<-v+|@3>Xojf+tS%c`U03|X;*4a@oAPV?2?M{jg>YOTzi8S`G=FKUH#!*- zHiB$!P(#gA^K4v|??@XK8`=1oe0!SVUy#Qq7Jp-O+0(oRZ0KJ2Lf}f~qu}GN5Hrc8Dy2rGKJU7! z)B?4X9_*EBJYEVw_~_^s-hPxra{T5+S10p6yI-!CkLB#zUwqj4ZomzFh;@Ukr-Bo4 z+8wVX2%G3B*$5Xe4|?+hGUq}wLLoctLI*x3rw_+c=#<`o?7*Gh?Nu@XUDE5Goa|qR ztWrag(M*3Vcm=J1f{y=}JqrTchB!#J#DbgkkT9_CW{#?9B~pbLT!3ssW9K7ltk2m> zpv{e?N^`S)18`J0f10&a)lV8BJ+Ir$O>k4?5o1 z1Jn7oDDift8k(Jcrm<^vn1E@-^$MGg5BavhuBL;trAiNl&$gKc4xEb|=1yAOv0yLz gzd@E{+j}U@`Y}aSW-L z^LCD7&=Uh5*Y=f`?wglInBDo$a6qxG+kku3YNHUD)91>q?W^*yvi{pP(IrXqm5q&k z?EX5(sJip_7|ygZck0_DM?3p1r4^_uSf_`u2k;!}IM6w}qds z(M@({Z20^;;O5%&c`KGlF<8{gSHIovE`QN3N3B!k7%m&#w( zm9QUpWAppPuZt_L<^PI1a7}I6luvKwKR&-|zj)VIPv)al<{B)VU;7}M1KxAADr~&R z`-|}f`-}LRx1W0#KY#g!xyISP!Q(ww<^q`fD~6MbydtmfE)Y<;V(kQ${LAo#Im2vY z%D2xyZvLuvv_HW3H7|fe=#}h3z6mmy9Dpw3a!lGQ{e}4g|AqZOZatTFKY#fp`;WFd zhKct?5%O0UCpk-LT-)ua=&_=_1uO}2%!Qn!lW(4X-2C->Q(Xh|E2zb?3YJS6o%Sk= zG##ljf5E;$enI`mt>?}A<}JU>|AF@}gVJ7Yg!~F-m3EVWHRa7t6M)_TOM)D;;O3D@ zH_ty#fBl~IF9Z7(sKr(eMNW(Yy}xc|-pKhYG+o>Ehro_9j;Q4K2am-5&u;j#vjjEP&Y?#Th`3YsW}=91$9s}Lzo$!e_y=e?mSDSTkobB+&cJg z`EvR7$F58>m~+3+h@pX(+~m9d?{-k4UkOa~uY0y!?8r}R1?oO7nYenI zW%RLkRgOobw#xmy_3X~qybpB@!1$iWs?vV_2rzA(IM1+o|9t!C_ijJ93bs|>_i(%M zO5i=a0>>+$Ig0oA9R#KX-aPi`FT>4uQ%(K88+h#PT=Su>;RpgVY-mhpMELQXy`^kd VwFwVvB(OYT@O1TaS?83{1OQ%oDUtvH 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!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}+dW+zLn2z= zPO}zjP~dS-gKLIU>AH_1O&29}KecavKR=LTLeGSt9~(~WF%R^3es#W^PcqO844$rjF6*2UngB{C BXo~;< 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 zcmV+_0oDGAP)Px#N&_!+O?O++H;4Cq)RHH#>T&-41E&{s|;(UKR z_jG6}B}uf^iq2bjkZdfCvGBkJj7|`+W5WWmxuq2J*fl&P;@hFWTntbPDX7jl9(ph~#y0Wrx&0aS0LloHhM%hp zr+A32);wi6%79yQ^#dBC@P0s(MDLxrwG-cg7GnwT>Ib}X^#jr7XaZMDRfb-L^aIgJ wnEC;!hV}yz^B({41kT)&gp}WE{r3au4eE-|OZoNA-2eap07*qoM6N<$g2?%Vr2qf` 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!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}S3O-ELn2z= zhFOcXDDd!Da>%9TeizzS{qC#Mt%wgMit-&17NYz{XKWO#UK-b%TNpg$k@|Ce>YVQ% z0yl5mcI>eGN`+erLC4)hgNlRCJ=qxjgX7HIsVsdyy=(t$(b>N?%%ib7N6xN@JFHOu z|0j-WZjWqn=JMnkX*X^U(-XQ5?RM8^9GGQcy3A~2$9&6`e~#{_wLNii<2Ac{ zGXtjB+Z%2+s0e)GQ2x{)wy@GcneVA+ftpHTf2TQr2=ARnc>gTe~DWM4f?wD<$ 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 zcmV-00nh%4P)Px#>PbXFR9J=WS4k3tAPj_*@4%Jvy%817~4wjfM}Ug4PWJwryA;M_kHZo%`)TsR@ZVmw#(6;Xqud5$5p2 z7Y1sg6=IF#5VmXrTRUl>H$*mk3e<+Z#3>D+Cd~ECo}3AapG0xar}48yJjcH^p(L(p zg3CX=m)Vfhgp@B1qS_74l>`6#K(0`d6J72DT%VWtcH8zdSBQZ+?Hc}kHXIs6BQV~E ztp!Ros{26AoKW8fYUP9te@=4*N(h65KbH+h1ko1;U(ZXgtAft}00000oneEP)Px#;7LS5R9J=WRzVH}Aqcdj@4%h=WEO5va^&iBl%I^xcb~Y;sFPcok@6oL+`V z4>23jYJ>_1@dKG6U_X!{!tDnlMQDD2`h{o_8hJVWz+d)((+{*5&2too{D3vj5ppeG s^#kZUN60M^t}>h%x7MD!5k(7p19Y96WX?#^9smFU07*qoM6N<$f(43pn*aa+ 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!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}+dW+zLn2z= zPO}zjP~dS-gKLIU>AH_1O&29}KecavKR=LTLeGSt9~(~WF%R^3es#W^PcqO844$rjF6*2UngB{C BXo~;< 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!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}+dW+zLn2z= zPO}zjP~dS-gKLIU>AH_1O&29}KecavKR=LTLeGSt9~(~WF%R^3es#W^PcqO844$rjF6*2UngB{C BXo~;< 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 zcmV+t0qy>YP)Px#%t=H+R9J=WmO&DOAPhxm#&d+DwAkLTvXhEqeOE zAWihD(&KOldqQw)9{{4ubq&uJdkv$^B@d7$q97pJyo7*Xm{W-R-GTw|e*h6bAgRA$^%r`0#Vbed4LmmAgp>e4`@af2(RA#A-WoH Y1!K*9WO~5pCIA2c07*qoM6N<$f)8wQ7XSbN 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){