Quellcode durchsuchen

TileMapEditor::_bucket_fill Check autotile coordinates only if autotile is selected

(cherry picked from commit a1b903066e7b216176e3f0d646fc36c1720b5792)
kleonc vor 4 Jahren
Ursprung
Commit
bf63878141
1 geänderte Dateien mit 7 neuen und 3 gelöschten Zeilen
  1. 7 3
      editor/plugins/tile_map_editor_plugin.cpp

+ 7 - 3
editor/plugins/tile_map_editor_plugin.cpp

@@ -662,11 +662,15 @@ PoolVector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool era
 	}
 
 	// 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) {
 		int current = manual_palette->get_current();
-		Vector2 position = manual_palette->get_item_metadata(current);
-		if (prev_position == position) {
+		if (current == -1) {
+			// Same ID, no variation selected, nothing to change
+			return PoolVector<Vector2>();
+		}
+		Vector2 prev_autotile_coord = node->get_cell_autotile_coord(p_start.x, p_start.y);
+		Vector2 autotile_coord = manual_palette->get_item_metadata(current);
+		if (autotile_coord == prev_autotile_coord) {
 			// Same ID and variation, nothing to change
 			return PoolVector<Vector2>();
 		}