From 3b9355be3fa1ed0e45a73cc9791603be72862293 Mon Sep 17 00:00:00 2001 From: smix8 <52464204+smix8@users.noreply.github.com> Date: Thu, 22 Sep 2022 17:14:51 +0200 Subject: [PATCH] Fix TileMaps with origin offset placing NavPolygons wrong without a Navigation2D node The legacy navigation was positioning baked TileMap navpolygons relative to the current Navigation2D node assuming that it is usually one of the parent nodes. Without the deprecated Navigation2D node the default navigation map of the world_2d is used. This navigation map has no relative Node2D so it needs to use the global_transform of the TileMap to place navregions with the correct offset in case the TileMap is moved from the origin. (cherry picked from commit 881e49c375f126987aa57528d6f8ef70462869c6) --- scene/2d/tile_map.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 8b7f1dc6801..e6d1638159f 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -160,7 +160,7 @@ void TileMap::_update_quadrant_transform() { if (navigation) { nav_rel = get_relative_transform_to_parent(navigation); } else { - nav_rel = get_transform(); + nav_rel = get_global_transform(); } } @@ -346,7 +346,7 @@ void TileMap::update_dirty_quadrants() { if (navigation) { nav_rel = get_relative_transform_to_parent(navigation); } else { - nav_rel = get_transform(); + nav_rel = get_global_transform(); } }