diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-1-autotile.png b/core/assets-raw/sprites/blocks/environment/crux-floor-1-autotile.png index d73a9a72dc..c9bb24e5ec 100644 Binary files a/core/assets-raw/sprites/blocks/environment/crux-floor-1-autotile.png and b/core/assets-raw/sprites/blocks/environment/crux-floor-1-autotile.png differ diff --git a/core/assets-raw/sprites/blocks/environment/crux-floor-2-autotile.png b/core/assets-raw/sprites/blocks/environment/crux-floor-2-autotile.png new file mode 100644 index 0000000000..58b7aedf4a Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/crux-floor-2-autotile.png differ diff --git a/core/assets-raw/sprites/blocks/environment/plating.png b/core/assets-raw/sprites/blocks/environment/plating.png new file mode 100644 index 0000000000..534913714b Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/plating.png differ diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index c503a0a1e8..c184afb202 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -601,3 +601,4 @@ 63081=basalt-vent|block-basalt-vent-ui 63080=tile-logic-display|block-tile-logic-display-ui 63079=crux-floor-1|block-crux-floor-1-ui +63078=crux-floor-2|block-crux-floor-2-ui diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 0ebea668b2..0ecebafba9 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -59,7 +59,7 @@ public class Blocks{ shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, carbonBoulder, ferricBoulder, beryllicBoulder, yellowStoneBoulder, arkyicBoulder, crystalCluster, vibrantCrystalCluster, crystalBlocks, crystalOrbs, crystallineBoulder, redIceBoulder, rhyoliteBoulder, redStoneBoulder, metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor4, metalFloor5, basalt, magmarock, hotrock, snowWall, saltWall, - darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal, cruxFloor1, + darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal, cruxFloor1, cruxFloor2, pebbles, tendrils, //ores @@ -315,6 +315,7 @@ public class Blocks{ solid = true; variants = 0; canShadow = false; + drawEdgeOut = false; }}; empty = new EmptyFloor("empty"); @@ -810,10 +811,19 @@ public class Blocks{ darkMetal = new StaticWall("dark-metal"); cruxFloor1 = new Floor("crux-floor-1"){{ + autotile = true; + emitLight = true; + drawEdgeOut = false; + drawEdgeIn = false; + }}; + + cruxFloor2 = new Floor("crux-floor-2"){{ autotile = true; emitLight = true; lightRadius = 30f; lightColor = Team.crux.color.cpy().a(0.3f); + drawEdgeOut = false; + drawEdgeIn = false; }}; Seq.with(metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor4, metalFloor5, darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6) diff --git a/core/src/mindustry/world/blocks/environment/Floor.java b/core/src/mindustry/world/blocks/environment/Floor.java index a4bbd0b5f5..b67ecf9313 100644 --- a/core/src/mindustry/world/blocks/environment/Floor.java +++ b/core/src/mindustry/world/blocks/environment/Floor.java @@ -80,6 +80,10 @@ 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 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; @@ -236,7 +240,9 @@ public class Floor extends Block{ } Draw.alpha(1f); - drawEdges(tile); + if(drawEdgeIn){ + drawEdges(tile); + } drawOverlay(tile); } @@ -295,7 +301,7 @@ public class Floor extends Block{ Point2 point = Geometry.d8[i]; Tile other = tile.nearby(point); //special case: empty is, well, empty, so never draw emptiness on top, as that would just be an incorrect black texture - if(other != null && other.floor().cacheLayer == layer && other.floor().edges(tile.x, tile.y) != null && other.floor() != Blocks.empty){ + if(other != null && other.floor().drawEdgeOut && other.floor().cacheLayer == layer && other.floor().edges(tile.x, tile.y) != null){ if(!blended.getAndSet(other.floor().id)){ blenders.add(other.floor()); dirs[i] = other.floorID(); @@ -316,7 +322,7 @@ public class Floor extends Block{ Point2 point = Geometry.d8[i]; Tile other = tile.nearby(point); - if(other != null && doEdge(tile, other, other.floor()) && other.floor().cacheLayer == realCache && other.floor().edges(tile.x, tile.y) != null && other.floor() != Blocks.empty){ + if(other != null && other.floor().drawEdgeOut && doEdge(tile, other, other.floor()) && other.floor().cacheLayer == realCache && other.floor().edges(tile.x, tile.y) != null){ if(!blended.getAndSet(other.floor().id)){ blenders.add(other.floor()); }