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 zcmeAS@N?(olHy`uVBq!ia0y~yU}ykg4mJh`hQoG=rx_R+7>k44ofy`glX=O&z$)qK z;uumf=j~kIpeF`At!G8t7bIL?qdATDyFEhz#|_6q_J~xi%gNT;>T*t2-OpR*vFOF# zX>X5|t&@{KXV2O4^!yu!12G8=4-POKY-DUIuKmJpUcNn9DRRpD^ZM65K7YQv{@>q! zA14NRz5G{__3Quk>DOQVTrJA*=<~xT0ZRYfpKC}lJUZ=oa%sxH?B}P<7ujq=f&KF@TAq%5f2qZikC)-&%QI(UyMJ&VK46+DYQL3- zd8c?sOKaB6)xPDd4L?%Tp0^d%2C?2qKKNDj8)s(k=I=9ZF3JyhobZ(~O!)t&{OC!m z<}&vkj7n0LPH_ELe7wTcG27>KFVl`k&-=CpJgZK6u`|C+KB2$WC3ngshu*+b5i%yL zCPuJEMAoeR9O1Bq>CMI)?hlS^ne?JMVnxrehD*aVJz@>wX9CG521f!$nb({&K>& zA20MoSNcdfIB&S9_CcX;Qx?Pf3PJmW44=--v3E3-<5B1^|0v9J!Te5xK zzMY)0m|wElZp*BYss6_jOcc7)>b?Fp3(h;6pjh_y+?NT{9j~}7TJ?l;v)+MQ+kfjM z)TK_?5-`oj;P)@7(1I7m3|eA78y5ZW+|2Lb8}ZWZz5nw4&*$hK%UD)tv`loRLiVGm zmmGaP&A*<04s+2y&~YTfu+elwbcKSC4o~MbzUvY*xrMzCnlb(3oiqZ|qfKPYkT#i@nd+=ePccT+#KvUq7r^ zqfw{zm2sc_{(rN#J$>5d=5W&WywdfUe>FOgoXz)ejEp*>g4Vm-+AYceC+-xMg=>0KR(q@ z^(B3a7!~%(Oo{P&w!duMo6`$Ee-?h}wDkKEx#fOe_k7OZyMO!i>&y0^=DarhaLk{b z&k|0!O_WogyhZKKtD+s(lCNyuQg}n)>!0o+qWsmuSCT}cB~6@m2tK#>^2pD*Q$2BB^3J1&e+ugS z)!3mnV`{v~)Y?CDsv~bPtehb8{*m{lJ&cnctUoIBd(-($rd{rga%~m1`>W0hwv_p) zoYVjIwZMD-nrlZg`V~xylk44ofy`glX=O&z`DxQ z#WAE}&fB?;K~D^LTv?9_YTPi*?n*uUm*1eEBk_7{Eqj{iGETpw=t+NN|8AeXF!}VQ z{v7qdqR*dd{!DV*QD38B_pHcj_qXMl@{PCeu|2tD^<(Gp>o;1D2r#`6{4=S{O^k65 zLlxWpC3^#18FU$19!%e2y@=!8wmO4b3#x8gzmL~G@%Z-Z{`&ua|A+`qTz**b^?&<+ zd)9B;KZ~)-x|lzsCgb7%wPs?h2OiuGeC+N0fBn{}bC`nI&jfQvrhA^ zhwDjOuGC*sns88m`PTD6f6uzkND5})sk61Moi1GCc%RMfK=RtD(lwrI8H;$dUMdJ} zO|LomE1~<+jXx(Cc=qx2=IaF<~( z+z@Ik{ov~IF6xZqV!c^aDVvv8RItP^(>$=aVXGeI56WL zpIWkEZlz{J!-t6*4xG_1+i5G1)cWm}%&&d>R5jzB(i_CSe$;i`l*$ywu=dsC=;oB} z1zZOXdwTS_Z(}#{(H>^r4G-JzZp;L`>~Z{2}jbwSdcvr z0vHZ1WN0cry*st=ryk!@jz@+^=PXTR{23}U>lgD)_3on!z3mn1wtOr7`ub7y>*P(Q4E{gC2Q&CCH&}?h;Bok~kfF($k)@r9gO61} zhHHWGUipKI85nNdy?toOmtG5=wsU)1 zsqc^c)a(ACb*f|X1JRnyKuMEN>?#5|-+A_3sk7c8!s7mp^M(I0f%rB4YQ>BTYElk1 z-%I{{Vu_yQg6)fKUf8Ow&%E-sal$>m+rsm*H8%4IWG=j3v_`e|>W$P{j7pshy;Aq% z{nD?oEt)9I-~IBdduBv0hsE*#$4`l`ZPvea%b{yQ?g!gnf%Rs6N*69`{|E|}KGAy5 zXe+m&c9!3>TCWaMxEw8;bOnAcb)ZP}dCvT@DLj3CJp z%ehZ~e2dDv$)wS@*}+=uwf3UPwzG1M@VoP!+A3js=*jZr=EME&{HIE9UH4%uU-{s= zPTPd=@46m8kKR@ndn^8)>08Op>yxI$+th5jw(Mr~p)B5hm8PZHGR5*S|8Hlldb+!b z@y6*84@Qj)MJC^9%i}=|UIDHXs?Q`9YRC(0T%N+4@b>?sTMlv3FT7VrdG3>Em?5@x z((I*)(@G1MGHdxZ%Qe0IJCEW0k44ofy`glX=O&z?$vp z;uumf=j~kYpeF`AZM;VXcO_h3qdATDyZwO!iZ5hE$`iyw6qY=0*EuR`F8j1S1f0h-LcMcg~|?9CC0xig&Z0w7D z#lXgVr~L%3dEtTu-48E+zC6Ev|J?J6EduZQk1zUP|M&YOn|dSW3f@^NGV)$O?92OB zFbLFGX4PoE{C{OG#h(m$+W_gk5PC4QP< z&39#no}d3L?%b`r&T!>H{&DjUzUQ_7{i{$pn%eo(v`OFnocXQDZ6OV>%TmOfmh_zC z`r35jEZY{>O}6&gnm4LHI4|W-a?F$cb3l-x>3??%hgY-y+wyN`6#~u+mAsm&ugO%# zyWyC3qlP5I$}RuP?83Kt>o8Yv)@9rY?^-*ntTU~_bn{gXTh_Sh(&s;F{$E(hn8saa za6vtjQ7<^Kknu~|6t$@EM9mj@898t}Qd1%NVss{=MvGri`z3d&+&d9A5veDCqQLY$!w4!N>AIhU0*x0ESUe z2{qOQA0@=)cyAwH!q8N3K;Vx>8mmAHQ~QJEhW|qhm{xSZMooseW`jgwiG zzvTVDt2fr4Vh~`IUmLyuicdqN1N)Zuzq|dI4Ub*l{Cs!V`dw4I7HBX#u#`lx*PoB; zf-JC!QUo3JG^f@?~pJ5>kbHe|vsZHTlc-kTD?Hn?EK zy!<)%VyEVLj-DSfiEHY&)<(|P|LQqoZ$n^i-fg+f$7iulG2=RTzx|V!gy=>0Ll$iU zHF7euRgZVAVL8U5_~YBnwTvqB{(D>IY_U6g)Y+E%>(sKR-sJ-Sl@PW*IO%<#l%6{EnPpBiEe zP50T)Z3rsTdHtJ#qfR=@C7|leyVDCRBwXfQ>u;KR>$sHzb5@uA$)k&2y=P{yo8#cs zp-|rULOscA#@A@Zr7yR;-rthDVxPD{@rRZ5*;BO`6@KhV)^QYLXwt9F$@gG#_)vQO cV)Or}i;^=uq<2;`FfcH9y85}Sb4q9e0PA6mfB*mh literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-11.aseprite b/core/assets-raw/sprites/blocks/environment/crux-floor-11.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..545f8a629a45a1887a6f35050411d5f9e0c21414 GIT binary patch literal 41712 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 F695_r9x?y` literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile3.png b/core/assets-raw/sprites/blocks/environment/crux-floor-12-autotile3.png new file mode 100644 index 0000000000000000000000000000000000000000..3a83d7cf9624b7c0c82c57c95ef4703e74ee818a GIT binary patch literal 7280 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 My85}Sb4q9e0CLFO7XSbN 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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 F695_r9x?y` literal 0 HcmV?d00001 diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index 4d5a8d6afb..6ec07cd35a 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -612,3 +612,5 @@ 63070=crux-floor-9|block-crux-floor-9-ui 63069=crux-floor-10|block-crux-floor-10-ui 63068=colored-wall|block-colored-wall-ui +63067=crux-floor-11|block-crux-floor-11-ui +63066=crux-floor-12|block-crux-floor-12-ui diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 12390fe663..19ddda6744 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -60,8 +60,11 @@ public class Blocks{ arkyicBoulder, crystalCluster, vibrantCrystalCluster, crystalBlocks, crystalOrbs, crystallineBoulder, redIceBoulder, rhyoliteBoulder, redStoneBoulder, metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor4, metalFloor5, basalt, magmarock, hotrock, snowWall, saltWall, + //old metal floors + darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal, + //new metal floors - darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal, cruxFloor1, cruxFloor2, cruxFloor3, cruxFloor4, cruxFloor5, cruxFloor6, cruxFloor7, cruxFloor8, cruxFloor9, cruxFloor10, + cruxFloor1, cruxFloor2, cruxFloor3, cruxFloor4, cruxFloor5, cruxFloor6, cruxFloor7, cruxFloor8, cruxFloor9, cruxFloor10, cruxFloor11, cruxFloor12, //colored coloredFloor, coloredWall, @@ -881,6 +884,23 @@ public class Blocks{ drawEdgeIn = false; }}; + cruxFloor11 = new Floor("crux-floor-11"){{ + autotile = true; + drawEdgeOut = false; + drawEdgeIn = false; + autotileVariants = 3; + }}; + + cruxFloor12 = new Floor("crux-floor-12"){{ + autotile = true; + drawEdgeOut = false; + drawEdgeIn = false; + autotileVariants = 4; + emitLight = true; + lightRadius = 30f; + lightColor = Team.crux.color.cpy().a(0.3f); + }}; + coloredFloor = new ColoredFloor("colored-floor"){{ autotile = true; drawEdgeOut = false; diff --git a/core/src/mindustry/world/blocks/TileBitmask.java b/core/src/mindustry/world/blocks/TileBitmask.java index b8ebacf6a9..b27660ffaf 100644 --- a/core/src/mindustry/world/blocks/TileBitmask.java +++ b/core/src/mindustry/world/blocks/TileBitmask.java @@ -31,4 +31,15 @@ public class TileBitmask{ } return regions; } + + public static TextureRegion[][] loadVariants(String name, int variants){ + var regions = new TextureRegion[variants][47]; + for(int v = 0; v < variants; v++){ + for(int i = 0; i < 47; i++){ + regions[v][i] = Core.atlas.find(name + "-" + (v+1) + "-" + i); + } + } + + return regions; + } } diff --git a/core/src/mindustry/world/blocks/environment/Floor.java b/core/src/mindustry/world/blocks/environment/Floor.java index d72565bc53..e00c183ec7 100644 --- a/core/src/mindustry/world/blocks/environment/Floor.java +++ b/core/src/mindustry/world/blocks/environment/Floor.java @@ -82,6 +82,8 @@ public class Floor extends Block{ public boolean autotile = false; /** If >1, 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()); } } });