From 64fc443e2416a9c27b15010e8e0bfeb424c5436c Mon Sep 17 00:00:00 2001 From: kobewi Date: Fri, 7 Oct 2022 22:27:31 +0200 Subject: Warn if isometric TileMap is not Y-sorted --- scene/2d/tile_map.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'scene/2d/tile_map.cpp') diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index e865806a7f..c3b6de985b 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -755,6 +755,7 @@ void TileMap::set_y_sort_enabled(bool p_enable) { _clear_internals(); _recreate_internals(); emit_signal(SNAME("changed")); + update_configuration_warnings(); } Vector2i TileMap::_coords_to_quadrant_coords(int p_layer, const Vector2i &p_coords) const { @@ -3943,6 +3944,22 @@ PackedStringArray TileMap::get_configuration_warnings() const { } } + if (tile_set.is_valid() && tile_set->get_tile_shape() == TileSet::TILE_SHAPE_ISOMETRIC) { + bool warn = !is_y_sort_enabled(); + if (!warn) { + for (int layer = 0; layer < (int)layers.size(); layer++) { + if (!layers[layer].y_sort_enabled) { + warn = true; + break; + } + } + } + + if (warn) { + warnings.push_back(RTR("Isometric TileSet will likely not look as intended without Y-sort enabled for the TileMap and all of its layers.")); + } + } + return warnings; } @@ -4038,6 +4055,7 @@ void TileMap::_tile_set_changed() { emit_signal(SNAME("changed")); _tile_set_changed_deferred_update_needed = true; call_deferred(SNAME("_tile_set_changed_deferred_update")); + update_configuration_warnings(); } void TileMap::_tile_set_changed_deferred_update() { -- cgit v1.2.3