From 42fb6b7a722ccfe71301cdfcdcb41a8286042398 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 23 Aug 2025 17:04:40 -0400 Subject: [PATCH] New environmental metal wall blocks --- .../blocks/environment/grate-detailed.png | Bin 359 -> 0 bytes .../environment/metal-tiles-13-autotile.png | Bin 0 -> 1560 bytes .../environment/metal-tiles-13-mid-2.png | Bin 0 -> 121 bytes .../environment/metal-tiles-13-mid-3.png | Bin 0 -> 214 bytes .../environment/metal-tiles-13-mid-4.png | Bin 0 -> 196 bytes .../environment/metal-tiles-13-mid-5.png | Bin 0 -> 165 bytes .../environment/metal-tiles-13-mid-6.png | Bin 0 -> 211 bytes .../environment/metal-wall-1-autotile.png | Bin 0 -> 1892 bytes .../blocks/environment/metal-wall-1-mid-2.png | Bin 0 -> 120 bytes .../blocks/environment/metal-wall-1.png | Bin 0 -> 341 bytes .../environment/metal-wall-2-autotile.png | Bin 0 -> 1844 bytes .../blocks/environment/metal-wall-2-mid-2.png | Bin 0 -> 120 bytes .../blocks/environment/metal-wall-2.png | Bin 0 -> 301 bytes .../environment/metal-wall-3-autotile.png | Bin 0 -> 1195 bytes .../blocks/environment/metal-wall-3.png | Bin 0 -> 280 bytes core/assets/icons/icons.properties | 4 +++ core/src/mindustry/content/Blocks.java | 24 +++++++++++++++++- .../src/mindustry/content/ErekirTechTree.java | 2 +- core/src/mindustry/logic/LExecutor.java | 4 +-- .../world/blocks/environment/StaticWall.java | 21 +++++++++++++-- 20 files changed, 49 insertions(+), 6 deletions(-) delete mode 100644 core/assets-raw/sprites/blocks/environment/grate-detailed.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-tiles-13-autotile.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-2.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-3.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-4.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-5.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-6.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-wall-1-autotile.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-wall-1-mid-2.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-wall-1.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-wall-2-autotile.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-wall-2-mid-2.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-wall-2.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-wall-3-autotile.png create mode 100644 core/assets-raw/sprites/blocks/environment/metal-wall-3.png diff --git a/core/assets-raw/sprites/blocks/environment/grate-detailed.png b/core/assets-raw/sprites/blocks/environment/grate-detailed.png deleted file mode 100644 index b295bc8169c05ef29126fafe6f4013e16db8168b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmV-t0hs=YP)Px$AxT6*R9J<@S34GhFc6&NaReT8q4rs#wYFY@*2AiYkWQa>z$(0uEFpiUgD{!N zvb#yx@z75IP`3>_At3R3JfWg)o5l0*^EJjp_*}kF$sq{kSGscv-LY*vhR^p}xdeCk zCYyLCM7V)ekz=w7`txb=fo~Or^2rFi$I)>eG<^7mfs*2efzsjtz%JL@6r~!8pel&1 zfG7hg#k~!r76*Vz)}wEoQ@i07UrkbLAIJqNf<+BbCV~va_6yYn8;1Mb2W%5dQmFV^ z0?!d}nK*Xks|NNG2LPUHVpll#f!J|92jqF7SQ)NGx@aGuOcZZKx(VxfU~BV9k-*jn zYzd^;9XEeLZWB&9kkbU&2Rb2)bG;5*AE5Zo_kz-Q#XseMk!+KfBX9r!002ovPDHLk FV1hPx)(n&-?RCt{2ok?yZF$_hWMxVpES++TMe3A4jfZM4marm4>J|I93DN&@pWet?- z?c?L~`!=-YPjm%_SVjQN838nB1kjwn(G`&L^?3aE_xJlftS*%y3*a^2S6Da3QC+?s zj}W_OpzFf1&9P7V3g8;&{ywVgD7)5mk(5P!W+?!vBNmN8DKpBhRb4b?P@cUMfYyPi zPeJsj5B0oj_H|w@-*H)k1B-!whil9Q{ zTdah#zXH4hrP=M{il9Q{Q*21=i^c%f0rOnXuhjTgwxsq?X924@ zv@>D>X!oI|MCAmY5fuj%A^|)*oJ9mtjeqp#NT`>qPzO44gShx1PR#5SLh&c zr@)-Cn~$y;LDkvOw^Gx<0nZ4aIU|7Pi~yPg7eMs<+>#xAgB}dA3eeT)``M;Ps<_8J z1fIZpfQZJoeD;b8tDdm?0g%SHcqBwf@e;w6oz+H^`hEaP!I>N1qO51E4SHxJHT8#whPxjvL z^eX___|Lx^eROJtg+H06j)y&fMdNFp@xs!dtUbXj1ve+{Rk7$^DC;LMn&|;BqZ>ZD3yPeoU`jffwZ^+ZZ*-q?eLHOf+ zFMuS@q*=hx*TIi-9veeZQ2aTH!wt~*+_in~-oX!PkA@+|OYM9;9;(K_RX7@^X~61@udzpc#{IHr37H0%*+=zU=4cp$9etan;O2|~nll1u z&Iq76b2N;>j=n(!uw#H;+0DoFN5e9*ldq74py(^wBI=Mi)0acqqhVK2-WlXUbQ}GJ*s|`%1mJ zl>)g3Kr630(eXgpc>DPH{I)cL>Mpr;iL#5V3#yUD_X8jH(jYKuMU7i_^fIhfT`cbhxEupy27M<_SJGY;yJ8v~!{h`uX9Uok5kPZB z0L>WzG-m|RoDo2CMgYwj0W@a>&>U7m2nY01ZD;$^ya3p4VD!tOI@`BC9=_ZS)Hz82>LMBmdF%`X0n z1aNjf-8u-=PfA);D~xei@^M3P^GNgowAZGNxu>pomam*Ws^d? zu`h&uiqy%fwTvzqAGJwVh23YuHOyy{_L_x*nV^@Bt-1~^*T zs&ph;OO*c>lzU%57IyLfQ~=0Djm+ocGu!vT^nL(s8J+D@cJfwGb`(jcgDo>sD0H@O zosVF0KY;X^v5zf>@@(1r0R{}|R{{rHMgYwj0W@a>(3}xKbN&HA|H_}uHI~x=0000< KMNUMnLSTZO1o9jJ literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-2.png b/core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-2.png new file mode 100644 index 0000000000000000000000000000000000000000..5e4723b32dfd071c660f58b52981e8f0c92dc855 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}#-1*YArY-_ z&lxf@7;qdpu>9C9(f>_dJkz=xWA0wJ@1A?s5~vCZI85T%sl&w1D>CmANYvBS&t;uc GLK6TQ_aGAh literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-3.png b/core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-3.png new file mode 100644 index 0000000000000000000000000000000000000000..3597de2df3f27c8ca84dccad1c790bc4010a6820 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}6FglULn2z= zPVwezFyL^xSkYG{vis{l^$p?|xBC8Y*^sRCW>>;5BW9oIyZ%hqdj8lj3N>_Obc#fK z@7&ve?aI7x*%ys%%n=H0XBt=-mJq_qLFhLm|R@U&M(<3 zQu-zMft%Zdig tzC^Y~yIC%BT%T_sWcXf9<$-wvyOg&t;uc GLK6U~&oO@h literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-6.png b/core/assets-raw/sprites/blocks/environment/metal-tiles-13-mid-6.png new file mode 100644 index 0000000000000000000000000000000000000000..50f26e45163083be9a02812062d0657b9cebf4d8 GIT binary patch literal 211 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 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/metal-wall-3-autotile.png b/core/assets-raw/sprites/blocks/environment/metal-wall-3-autotile.png new file mode 100644 index 0000000000000000000000000000000000000000..605044775fb0adf32545e14ef123dfd44c45ce07 GIT binary patch literal 1195 zcmV;c1XTNpP)Px(Wl2OqRCt{2ok3FMFbqXQic3({dngvna&E$Y?m1ke3-(>bF_=}RLP%o8wk$b% zZwC&Mk$yY2+E(sfU;lhvE)N6PaJzjDmi`|<-mk;$_G#9E=ve!I^w5duSo(kT&!X96D{}?DgW27zxoJRcA}QC9HIt)V)DP1{kvZ;zrQ3GK0ZBHF&G7DfZqPT ziLN{9f2sZ5M?kJ|sEelmlL8?4wrKl*R{#XxmKOfsoCKzfFDEC<>!Y`qQtE#xqB#JZ z7X%O-1Q49fJOC5GGD`CRrT(v)2Y~Z}0D^-6g0qy2VA~+ApO`#Ls*4f_MwP8O1Q~?152LS|!a{-MwMIHdo2LcGd-tHg-aB@;x!^C-j zCD!X~@9lFm4w6djOYCwsP?;LR&+&h?O`!xoAFJRWfwO^1^bq`ka{+pAE&#d!0R#sD z1cy9;QoAd7BA`BiGG0Wm1?K`9!MOl%2?7WX0tgQK0hHRcVLt#=0RaRD0VrYp+FhxA z@&HOq0hkg&t@8j<`-}j}cpnK6Km$CB009JtJb+TWHcj&YOaN`+-NAvOK0v3`*auMJ zf2n=W1t^nR0cf2IklJSzpiGUCK+`^3!WvL2f>Qq%?Fl6KwrKl*HxIC9+rZ zdQb$r}nPtHTV)f-mj+L14!)`KLUyXMAmiB}C07`H!0J?zs0KuU?KyauJpwzC7dYwQ%`7vM;7#su;9Nrh81bG1H z0t65o1P~nc`T(ir%>H`q`@AvjB z0_p=ag8Bf#@j4P9fQEP!0Rm`@HxVEJ13Za<`T#~)@3)xj{{wKlCFoK4FxdbA002ov JPDHLkV1j+mC9(hj literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/metal-wall-3.png b/core/assets-raw/sprites/blocks/environment/metal-wall-3.png new file mode 100644 index 0000000000000000000000000000000000000000..8cec03f8b9867afc9d49d0177e74ee4ed60350b7 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}mpok@Ln2z= zPBY|dHsEo!7o5K0$i1$Gvem-h;-n7tT}i&csaZ7lNXwD9PwE{?e^Tmimt6jGv;85P z_Ri9o8*}5W85lOS6dZ3BZTTFpqab5@q3y-a!=*DB85X|dV0>0`Ii9VCLoeXugFptp zMI{9-UJi;$yR44vy8d~ux86PZ$1C~04=z%@5Wws)%RnXT+-5n;lzEM86W%u7nH4-U zeF0;K?Sv?=IV!&wM6oTY4-55HXk78GQKY4dGg%-jR-h>$*O||$mM?%~vf~ry6#d0Q c0t_FRCwgaXSCf9>2=pC;r>mdKI;Vst0P*c?RsaA1 literal 0 HcmV?d00001 diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index f5b01fd205..a9ed6ad37a 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -618,3 +618,7 @@ 63064=character-overlay-white|block-character-overlay-white-ui 63063=rune-overlay-crux|block-rune-overlay-crux-ui 63062=rune-overlay|block-rune-overlay-ui +63061=metal-wall-1|block-metal-wall-1-ui +63060=metal-wall-2|block-metal-wall-2-ui +63059=metal-tiles-13|block-metal-tiles-13-ui +63058=metal-wall-3|block-metal-wall-3-ui diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index eadd6bd72e..368b65d835 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -63,7 +63,9 @@ public class Blocks{ //old metal floors darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal, //new metal floors - metalTiles1, metalTiles2, metalTiles3, metalTiles4, metalTiles5, metalTiles6, metalTiles7, metalTiles8, metalTiles9, metalTiles10, metalTiles11, metalTiles12, + metalTiles1, metalTiles2, metalTiles3, metalTiles4, metalTiles5, metalTiles6, metalTiles7, metalTiles8, metalTiles9, metalTiles10, metalTiles11, metalTiles12, metalTiles13, + //new metal walls + metalWall1, metalWall2, metalWall3, metalWall4, //colored coloredFloor, coloredWall, @@ -908,6 +910,26 @@ public class Blocks{ lightColor = Team.crux.color.cpy().a(0.3f); }}; + metalTiles13 = new Floor("metal-tiles-13"){{ + autotile = true; + drawEdgeOut = false; + drawEdgeIn = false; + autotileMidVariants = 6; + }}; + + metalWall1 = new StaticWall("metal-wall-1"){{ + autotile = true; + }}; + + metalWall2 = new StaticWall("metal-wall-2"){{ + autotile = true; + autotileMidVariants = 2; + }}; + + metalWall3 = new StaticWall("metal-wall-3"){{ + autotile = true; + }}; + coloredFloor = new ColoredFloor("colored-floor"){{ autotile = true; drawEdgeOut = false; diff --git a/core/src/mindustry/content/ErekirTechTree.java b/core/src/mindustry/content/ErekirTechTree.java index 162131bbab..c28ad6875f 100644 --- a/core/src/mindustry/content/ErekirTechTree.java +++ b/core/src/mindustry/content/ErekirTechTree.java @@ -388,7 +388,7 @@ public class ErekirTechTree{ node(basin, Seq.with(new SectorComplete(atlas)), () -> { node(marsh, Seq.with(new SectorComplete(basin)), () -> { node(ravine, Seq.with(new SectorComplete(marsh), new Research(Liquids.slag)), () -> { - node(caldera, Seq.with(new SectorComplete(peaks), new Research(heatRedirector)), () -> { + node(caldera, Seq.with(new SectorComplete(peaks), new SectorComplete(ravine), new Research(heatRedirector)), () -> { node(stronghold, Seq.with(new SectorComplete(caldera), new Research(coreCitadel)), () -> { node(crevice, Seq.with(new SectorComplete(stronghold)), () -> { node(siege, Seq.with(new SectorComplete(crevice)), () -> { diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 7f88186d38..ab2bbe6fcc 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -57,11 +57,11 @@ public class LExecutor{ public IntSet linkIds = new IntSet(); public Team team = Team.derelict; public boolean privileged = false; + //maps variable name to index in vars; lazily initialized + protected @Nullable ObjectIntMap nameMap; //yes, this is a minor memory leak, but it's probably not significant enough to matter protected static IntFloatMap unitTimeouts = new IntFloatMap(); - //lookup variable by name, lazy init. - protected @Nullable ObjectIntMap nameMap; static{ Events.on(ResetEvent.class, e -> unitTimeouts.clear()); diff --git a/core/src/mindustry/world/blocks/environment/StaticWall.java b/core/src/mindustry/world/blocks/environment/StaticWall.java index fd48bf0c58..06b7be64bc 100644 --- a/core/src/mindustry/world/blocks/environment/StaticWall.java +++ b/core/src/mindustry/world/blocks/environment/StaticWall.java @@ -18,8 +18,10 @@ public class StaticWall extends Prop{ public TextureRegion[][] split; /** If true, this wall uses autotiling; variants are not supported. See https://github.com/GglLfr/tile-gen*/ public boolean autotile; + /** If >1, the middle region of the autotile has random variants. */ + public int autotileMidVariants = 1; - protected TextureRegion[] autotileRegions; + protected TextureRegion[] autotileRegions, autotileMidRegions; public StaticWall(String name){ super(name); @@ -46,7 +48,11 @@ public class StaticWall extends Prop{ } } - 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{ int rx = tile.x / 2 * 2; int ry = tile.y / 2 * 2; @@ -66,6 +72,10 @@ public class StaticWall extends Prop{ } } + public int variant(int x, int y, int max){ + return Mathf.randomSeed(Point2.pack(x, y), 0, Math.max(0, max - 1)); + } + public boolean checkAutotileSame(Tile tile, @Nullable Tile other){ return other != null && other.block() == this; } @@ -85,6 +95,13 @@ public class StaticWall extends Prop{ 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)); + } + } } }