Browse Source

Fixing a bug where tilemap navigation would not be accurate after a tilemap exits and then re-enters the tree. Fixing a bug where deleting a tile and then querying navigation would result in an incorrect path if both happened within the same frame.

James 7 years ago
parent
commit
69ee7945d7
1 changed files with 2 additions and 1 deletions
  1. 2 1
      scene/2d/tile_map.cpp

+ 2 - 1
scene/2d/tile_map.cpp

@@ -61,6 +61,7 @@ void TileMap::_notification(int p_what) {
 			}
 
 			pending_update = true;
+			_recreate_quadrants();
 			_update_dirty_quadrants();
 			RID space = get_world_2d()->get_space();
 			_update_quadrant_transform();
@@ -653,7 +654,7 @@ void TileMap::_make_quadrant_dirty(Map<PosKey, Quadrant>::Element *Q) {
 	pending_update = true;
 	if (!is_inside_tree())
 		return;
-	call_deferred("_update_dirty_quadrants");
+	_update_dirty_quadrants();
 }
 
 void TileMap::set_cellv(const Vector2 &p_pos, int p_tile, bool p_flip_x, bool p_flip_y, bool p_transpose) {