fix updating tileset list when assign texture and set autotile true
This commit is contained in:
parent
554e95747c
commit
bea40343ab
3 changed files with 12 additions and 1 deletions
|
@ -583,6 +583,14 @@ void AutotileEditor::_notification(int p_what) {
|
|||
}
|
||||
}
|
||||
|
||||
void AutotileEditor::_changed_callback(Object *p_changed, const char *p_prop) {
|
||||
if (p_prop == StringName("texture") || p_prop == StringName("is_autotile")) {
|
||||
edit(tile_set.ptr());
|
||||
autotile_list->update();
|
||||
workspace->update();
|
||||
}
|
||||
}
|
||||
|
||||
void AutotileEditor::_on_autotile_selected(int p_index) {
|
||||
|
||||
if (get_current_tile() >= 0) {
|
||||
|
@ -1581,6 +1589,7 @@ Vector2 AutotileEditor::snap_point(const Vector2 &point) {
|
|||
void AutotileEditor::edit(Object *p_node) {
|
||||
|
||||
tile_set = Ref<TileSet>(Object::cast_to<TileSet>(p_node));
|
||||
tile_set->add_change_receptor(this);
|
||||
helper->set_tileset(tile_set);
|
||||
|
||||
autotile_list->clear();
|
||||
|
|
|
@ -124,6 +124,7 @@ class AutotileEditor : public Control {
|
|||
protected:
|
||||
static void _bind_methods();
|
||||
void _notification(int p_what);
|
||||
virtual void _changed_callback(Object *p_changed, const char *p_prop);
|
||||
|
||||
private:
|
||||
void _on_autotile_selected(int p_index);
|
||||
|
|
|
@ -309,6 +309,7 @@ void TileSet::tile_set_texture(int p_id, const Ref<Texture> &p_texture) {
|
|||
ERR_FAIL_COND(!tile_map.has(p_id));
|
||||
tile_map[p_id].texture = p_texture;
|
||||
emit_changed();
|
||||
_change_notify("texture");
|
||||
}
|
||||
|
||||
Ref<Texture> TileSet::tile_get_texture(int p_id) const {
|
||||
|
@ -386,8 +387,8 @@ void TileSet::tile_set_is_autotile(int p_id, bool p_is_autotile) {
|
|||
|
||||
ERR_FAIL_COND(!tile_map.has(p_id));
|
||||
tile_map[p_id].is_autotile = p_is_autotile;
|
||||
_change_notify("");
|
||||
emit_changed();
|
||||
_change_notify("is_autotile");
|
||||
}
|
||||
|
||||
bool TileSet::tile_get_is_autotile(int p_id) const {
|
||||
|
|
Loading…
Reference in a new issue