Fix some TileMap errors and crashes
This commit is contained in:
parent
4848877b80
commit
be6d5bbba6
2 changed files with 16 additions and 6 deletions
|
@ -404,13 +404,16 @@ void TileAtlasView::_draw_background_right() {
|
|||
}
|
||||
|
||||
void TileAtlasView::set_atlas_source(TileSet *p_tile_set, TileSetAtlasSource *p_tile_set_atlas_source, int p_source_id) {
|
||||
ERR_FAIL_COND(!p_tile_set);
|
||||
ERR_FAIL_COND(!p_tile_set_atlas_source);
|
||||
tile_set = p_tile_set;
|
||||
tile_set_atlas_source = p_tile_set_atlas_source;
|
||||
|
||||
if (!tile_set) {
|
||||
return;
|
||||
}
|
||||
|
||||
ERR_FAIL_COND(p_source_id < 0);
|
||||
ERR_FAIL_COND(p_tile_set->get_source(p_source_id) != p_tile_set_atlas_source);
|
||||
|
||||
tile_set = p_tile_set;
|
||||
tile_set_atlas_source = p_tile_set_atlas_source;
|
||||
source_id = p_source_id;
|
||||
|
||||
// Show or hide the view.
|
||||
|
|
|
@ -120,10 +120,9 @@ void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_bind_methods() {
|
|||
}
|
||||
|
||||
void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::edit(Ref<TileSet> p_tile_set, TileSetAtlasSource *p_tile_set_atlas_source, int p_source_id) {
|
||||
ERR_FAIL_COND(!p_tile_set.is_valid());
|
||||
ERR_FAIL_COND(!p_tile_set_atlas_source);
|
||||
ERR_FAIL_COND(p_source_id < 0);
|
||||
ERR_FAIL_COND(p_tile_set->get_source(p_source_id) != p_tile_set_atlas_source);
|
||||
ERR_FAIL_COND(p_tile_set.is_valid() && p_tile_set->get_source(p_source_id) != p_tile_set_atlas_source);
|
||||
|
||||
if (p_tile_set == tile_set && p_tile_set_atlas_source == tile_set_atlas_source && p_source_id == source_id) {
|
||||
return;
|
||||
|
@ -611,6 +610,10 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() {
|
|||
|
||||
tile_data_editors_tree->clear();
|
||||
|
||||
if (tile_set.is_null()) {
|
||||
return;
|
||||
}
|
||||
|
||||
TreeItem *root = tile_data_editors_tree->create_item();
|
||||
|
||||
TreeItem *group;
|
||||
|
@ -919,6 +922,10 @@ void TileSetAtlasSourceEditor::_update_atlas_view() {
|
|||
alternative_tiles_control->get_child(i)->queue_free();
|
||||
}
|
||||
|
||||
if (tile_set.is_null()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Vector2i pos;
|
||||
Vector2 texture_region_base_size = tile_set_atlas_source->get_texture_region_size();
|
||||
int texture_region_base_size_min = MIN(texture_region_base_size.x, texture_region_base_size.y);
|
||||
|
|
Loading…
Reference in a new issue