Merge pull request #17166 from Noshyaar/tilemap2
TileSet&TextureRegion: fix error when getting nonexistent tile
This commit is contained in:
commit
8b629bbcbe
2 changed files with 8 additions and 2 deletions
|
@ -57,8 +57,9 @@ void TextureRegionEditor::_region_draw() {
|
|||
base_tex = obj_styleBox->get_texture();
|
||||
else if (atlas_tex.is_valid())
|
||||
base_tex = atlas_tex->get_atlas();
|
||||
else if (tile_set.is_valid() && selected_tile != -1)
|
||||
else if (tile_set.is_valid() && selected_tile != -1 && tile_set->has_tile(selected_tile))
|
||||
base_tex = tile_set->tile_get_texture(selected_tile);
|
||||
|
||||
if (base_tex.is_null())
|
||||
return;
|
||||
|
||||
|
@ -688,10 +689,11 @@ void TextureRegionEditor::_edit_region() {
|
|||
texture = obj_styleBox->get_texture();
|
||||
else if (atlas_tex.is_valid())
|
||||
texture = atlas_tex->get_atlas();
|
||||
else if (tile_set.is_valid() && selected_tile != -1)
|
||||
else if (tile_set.is_valid() && selected_tile != -1 && tile_set->has_tile(selected_tile))
|
||||
texture = tile_set->tile_get_texture(selected_tile);
|
||||
|
||||
if (texture.is_null()) {
|
||||
edit_draw->update();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -780,6 +782,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) {
|
|||
tile_set = Ref<TileSet>(NULL);
|
||||
editor = p_editor;
|
||||
undo_redo = editor->get_undo_redo();
|
||||
selected_tile = -1;
|
||||
|
||||
snap_step = Vector2(10, 10);
|
||||
snap_separation = Vector2(0, 0);
|
||||
|
|
|
@ -1826,6 +1826,8 @@ bool TileSetEditorHelper::_get(const StringName &p_name, Variant &r_ret) const {
|
|||
|
||||
if (selected_tile < 0 || tileset.is_null())
|
||||
return false;
|
||||
if (!tileset->has_tile(selected_tile))
|
||||
return false;
|
||||
|
||||
String name = p_name.operator String();
|
||||
bool v = false;
|
||||
|
@ -1850,6 +1852,7 @@ void TileSetEditorHelper::_get_property_list(List<PropertyInfo> *p_list) const {
|
|||
TileSetEditorHelper::TileSetEditorHelper(TileSetEditor *p_tileset_editor) {
|
||||
|
||||
tileset_editor = p_tileset_editor;
|
||||
selected_tile = -1;
|
||||
}
|
||||
|
||||
void TileSetEditorPlugin::edit(Object *p_node) {
|
||||
|
|
Loading…
Reference in a new issue