Browse Source

Warn users when TileMap is set as Y-sorted but no layer is

Gilles Roudière 1 year ago
parent
commit
a3bfd9b797
1 changed files with 13 additions and 1 deletions
  1. 13 1
      scene/2d/tile_map.cpp

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

@@ -4518,14 +4518,26 @@ PackedStringArray TileMap::get_configuration_warnings() const {
 		}
 		}
 	}
 	}
 
 
-	// Check if Y-sort is enabled on a layer but not on the node.
 	if (!is_y_sort_enabled()) {
 	if (!is_y_sort_enabled()) {
+		// Check if Y-sort is enabled on a layer but not on the node.
 		for (const Ref<TileMapLayer> &layer : layers) {
 		for (const Ref<TileMapLayer> &layer : layers) {
 			if (layer->is_y_sort_enabled()) {
 			if (layer->is_y_sort_enabled()) {
 				warnings.push_back(RTR("A TileMap layer is set as Y-sorted, but Y-sort is not enabled on the TileMap node itself."));
 				warnings.push_back(RTR("A TileMap layer is set as Y-sorted, but Y-sort is not enabled on the TileMap node itself."));
 				break;
 				break;
 			}
 			}
 		}
 		}
+	} else {
+		// Check if Y-sort is enabled on the node, but not on any of the layers.
+		bool need_warning = true;
+		for (const Ref<TileMapLayer> &layer : layers) {
+			if (layer->is_y_sort_enabled()) {
+				need_warning = false;
+				break;
+			}
+		}
+		if (need_warning) {
+			warnings.push_back(RTR("The TileMap node is set as Y-sorted, but Y-sort is not enabled on any of the TileMap's layers.\nThis may lead to unwanted behaviors, as a layer that is not Y-sorted will be Y-sorted as a whole."));
+		}
 	}
 	}
 
 
 	// Check if we are in isometric mode without Y-sort enabled.
 	// Check if we are in isometric mode without Y-sort enabled.