Преглед изворни кода

fix(editor): TileMap floodfill with same tile ID and different variation

Closes https://github.com/godotengine/godot/issues/40435

(cherry picked from commit cefca25796c85cf41dad7e7e13b1f534fa5553c1)
Eric Tuvesson пре 5 година
родитељ
комит
be72285c70
1 измењених фајлова са 8 додато и 2 уклоњено
  1. 8 2
      editor/plugins/tile_map_editor_plugin.cpp

+ 8 - 2
editor/plugins/tile_map_editor_plugin.cpp

@@ -661,9 +661,15 @@ PoolVector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool era
 		return PoolVector<Vector2>();
 	}
 
+	// Check if the tile variation is the same
+	Vector2 prev_position = node->get_cell_autotile_coord(p_start.x, p_start.y);
 	if (ids.size() == 1 && ids[0] == prev_id) {
-		// Same ID, nothing to change
-		return PoolVector<Vector2>();
+		int current = manual_palette->get_current();
+		Vector2 position = manual_palette->get_item_metadata(current);
+		if (prev_position == position) {
+			// Same ID and variation, nothing to change
+			return PoolVector<Vector2>();
+		}
 	}
 
 	Rect2i r = node->get_used_rect();