diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 75df389a5f..4ae1258e7d 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -363,6 +363,7 @@ publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure publish.error = Error publishing item: {0} steam.error = Failed to initialize Steam services.\nError: {0} +editor.cliffs = Walls To Cliffs editor.brush = Brush editor.openin = Open In Editor editor.oregen = Ore Generation diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index 213e4e4a83..4b0fc6b8fa 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -576,13 +576,11 @@ public class MapEditorDialog extends Dialog implements Disposable{ }).growX().top(); } - if(experimental){ - mid.row(); + mid.row(); - mid.table(t -> { - t.button("Cliffs", Icon.terrain, Styles.cleart, editor::addCliffs).growX().margin(9f); - }).growX().top(); - } + mid.table(t -> { + t.button("@editor.cliffs", Icon.terrain, Styles.cleart, editor::addCliffs).growX().margin(9f); + }).growX().top(); }).margin(0).left().growY(); diff --git a/core/src/mindustry/editor/MapRenderer.java b/core/src/mindustry/editor/MapRenderer.java index e5a0ce1c01..535ef0eed5 100644 --- a/core/src/mindustry/editor/MapRenderer.java +++ b/core/src/mindustry/editor/MapRenderer.java @@ -10,6 +10,7 @@ import mindustry.content.*; import mindustry.game.*; import mindustry.graphics.*; import mindustry.world.*; +import mindustry.world.blocks.environment.*; import static mindustry.Vars.*; @@ -132,6 +133,11 @@ public class MapRenderer implements Disposable{ wall.editorVariantRegions()[Mathf.randomSeed(idxWall, 0, wall.editorVariantRegions().length - 1)] : wall.editorIcon(); + if(wall == Blocks.cliff){ + mesh.setColor(Tmp.c1.set(floor.mapColor).mul(1.6f)); + region = ((Cliff)Blocks.cliff).editorCliffs[tile.data & 0xff]; + } + offsetX = tilesize / 2f - region.width / 2f * Draw.scl; offsetY = tilesize / 2f - region.height / 2f * Draw.scl; }else if(wall == Blocks.air && !tile.overlay().isAir()){ diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index c0c7e24fe8..cc40a2c040 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -150,7 +150,7 @@ public class BlockRenderer{ public void checkChanges(){ darkEvents.each(pos -> { var tile = world.tile(pos); - if(tile != null){ + if(tile != null && tile.block().fillsTile){ tile.data = world.getWallDarkness(tile); } }); diff --git a/core/src/mindustry/world/blocks/environment/Cliff.java b/core/src/mindustry/world/blocks/environment/Cliff.java index 49dba95d7c..d3a0c99771 100644 --- a/core/src/mindustry/world/blocks/environment/Cliff.java +++ b/core/src/mindustry/world/blocks/environment/Cliff.java @@ -9,6 +9,7 @@ import mindustry.world.*; public class Cliff extends Block{ public float size = 11f; public @Load(value = "cliffmask#", length = 256) TextureRegion[] cliffs; + public @Load(value = "editor-cliffmask#", length = 256) TextureRegion[] editorCliffs; public Cliff(String name){ super(name); diff --git a/tools/src/mindustry/tools/Generators.java b/tools/src/mindustry/tools/Generators.java index 416656cd33..e1658acd6f 100644 --- a/tools/src/mindustry/tools/Generators.java +++ b/tools/src/mindustry/tools/Generators.java @@ -158,7 +158,9 @@ public class Generators{ } }); - Fi.get("../blocks/environment/cliffmask" + (val & 0xff) + ".png").writePng(result); + Fi fi = Fi.get("../blocks/environment/cliffmask" + (val & 0xff) + ".png"); + fi.writePng(result); + fi.copyTo(Fi.get("../editor").child("editor-" + fi.name())); }); }