Merge pull request #80658 from Sch1nken/tilemap-erase-scenes

TileMap: Check for possible scenes to be erased
This commit is contained in:
Rémi Verschelde 2023-08-16 09:18:11 +02:00
commit ed81c93be7
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 11 additions and 0 deletions

View File

@ -1839,6 +1839,17 @@ void TileMapLayer::set_cell(const Vector2i &p_coords, int p_source_id, const Vec
ERR_FAIL_COND(!Q);
TileMapQuadrant &q = Q->value;
// Find node in scenes and remove it.
HashMap<Vector2i, String>::Iterator entry = q.scenes.find(pk);
if (entry != q.scenes.end()) {
String scene_name = entry->value;
Node *scene = tile_map_node->get_node_or_null(scene_name);
if (scene) {
scene->queue_free();
instantiated_scenes.erase(Vector2i(pk.x, pk.y));
}
}
q.cells.erase(pk);
// Remove or make the quadrant dirty.