Forráskód Böngészése

Fix crash when opening a TileSet with invalid tiles

Haoyu Qiu 2 éve
szülő
commit
8b5d5dc2c4
1 módosított fájl, 5 hozzáadás és 3 törlés
  1. 5 3
      editor/plugins/tiles/tiles_editor_plugin.cpp

+ 5 - 3
editor/plugins/tiles/tiles_editor_plugin.cpp

@@ -108,9 +108,11 @@ void TilesEditorPlugin::_thread() {
 						Vector2i coords = tile_map->get_cell_atlas_coords(0, cell);
 						int alternative = tile_map->get_cell_alternative_tile(0, cell);
 
-						Vector2 center = world_pos - atlas_source->get_tile_data(coords, alternative)->get_texture_origin();
-						encompassing_rect.expand_to(center - atlas_source->get_tile_texture_region(coords).size / 2);
-						encompassing_rect.expand_to(center + atlas_source->get_tile_texture_region(coords).size / 2);
+						if (atlas_source->has_tile(coords) && atlas_source->has_alternative_tile(coords, alternative)) {
+							Vector2 center = world_pos - atlas_source->get_tile_data(coords, alternative)->get_texture_origin();
+							encompassing_rect.expand_to(center - atlas_source->get_tile_texture_region(coords).size / 2);
+							encompassing_rect.expand_to(center + atlas_source->get_tile_texture_region(coords).size / 2);
+						}
 					}
 				}