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) {
|
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);
|
tile_set = p_tile_set;
|
||||||
ERR_FAIL_COND(!p_tile_set_atlas_source);
|
tile_set_atlas_source = p_tile_set_atlas_source;
|
||||||
|
|
||||||
|
if (!tile_set) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ERR_FAIL_COND(p_source_id < 0);
|
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->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;
|
source_id = p_source_id;
|
||||||
|
|
||||||
// Show or hide the view.
|
// 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) {
|
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_tile_set_atlas_source);
|
||||||
ERR_FAIL_COND(p_source_id < 0);
|
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) {
|
if (p_tile_set == tile_set && p_tile_set_atlas_source == tile_set_atlas_source && p_source_id == source_id) {
|
||||||
return;
|
return;
|
||||||
|
@ -611,6 +610,10 @@ void TileSetAtlasSourceEditor::_update_tile_data_editors() {
|
||||||
|
|
||||||
tile_data_editors_tree->clear();
|
tile_data_editors_tree->clear();
|
||||||
|
|
||||||
|
if (tile_set.is_null()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
TreeItem *root = tile_data_editors_tree->create_item();
|
TreeItem *root = tile_data_editors_tree->create_item();
|
||||||
|
|
||||||
TreeItem *group;
|
TreeItem *group;
|
||||||
|
@ -919,6 +922,10 @@ void TileSetAtlasSourceEditor::_update_atlas_view() {
|
||||||
alternative_tiles_control->get_child(i)->queue_free();
|
alternative_tiles_control->get_child(i)->queue_free();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tile_set.is_null()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Vector2i pos;
|
Vector2i pos;
|
||||||
Vector2 texture_region_base_size = tile_set_atlas_source->get_texture_region_size();
|
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);
|
int texture_region_base_size_min = MIN(texture_region_base_size.x, texture_region_base_size.y);
|
||||||
|
|
Loading…
Reference in a new issue