Sfoglia il codice sorgente

Merge pull request #53100 from KoBeWi/fix_them_tiles_2-layer_count_of_oblivion

Fix TileMap layer loading
Gilles Roudière 4 anni fa
parent
commit
a98453670c
1 ha cambiato i file con 13 aggiunte e 1 eliminazioni
  1. 13 1
      scene/2d/tile_map.cpp

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

@@ -2034,10 +2034,22 @@ bool TileMap::_set(const StringName &p_name, const Variant &p_value) {
 		return false;
 	} else if (components.size() == 2 && components[0].begins_with("layer_") && components[0].trim_prefix("layer_").is_valid_int()) {
 		int index = components[0].trim_prefix("layer_").to_int();
-		if (index < 0 || index >= (int)layers.size()) {
+		if (index < 0) {
 			return false;
 		}
 
+		if (index >= (int)layers.size()) {
+			_clear_internals();
+			while (index >= (int)layers.size()) {
+				layers.push_back(TileMapLayer());
+			}
+			_recreate_internals();
+
+			notify_property_list_changed();
+			emit_signal(SNAME("changed"));
+			update_configuration_warnings();
+		}
+
 		if (components[1] == "name") {
 			set_layer_name(index, p_value);
 			return true;