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) {
|
void AutotileEditor::_on_autotile_selected(int p_index) {
|
||||||
|
|
||||||
if (get_current_tile() >= 0) {
|
if (get_current_tile() >= 0) {
|
||||||
|
@ -1581,6 +1589,7 @@ Vector2 AutotileEditor::snap_point(const Vector2 &point) {
|
||||||
void AutotileEditor::edit(Object *p_node) {
|
void AutotileEditor::edit(Object *p_node) {
|
||||||
|
|
||||||
tile_set = Ref<TileSet>(Object::cast_to<TileSet>(p_node));
|
tile_set = Ref<TileSet>(Object::cast_to<TileSet>(p_node));
|
||||||
|
tile_set->add_change_receptor(this);
|
||||||
helper->set_tileset(tile_set);
|
helper->set_tileset(tile_set);
|
||||||
|
|
||||||
autotile_list->clear();
|
autotile_list->clear();
|
||||||
|
|
|
@ -124,6 +124,7 @@ class AutotileEditor : public Control {
|
||||||
protected:
|
protected:
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
void _notification(int p_what);
|
void _notification(int p_what);
|
||||||
|
virtual void _changed_callback(Object *p_changed, const char *p_prop);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void _on_autotile_selected(int p_index);
|
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));
|
ERR_FAIL_COND(!tile_map.has(p_id));
|
||||||
tile_map[p_id].texture = p_texture;
|
tile_map[p_id].texture = p_texture;
|
||||||
emit_changed();
|
emit_changed();
|
||||||
|
_change_notify("texture");
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref<Texture> TileSet::tile_get_texture(int p_id) const {
|
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));
|
ERR_FAIL_COND(!tile_map.has(p_id));
|
||||||
tile_map[p_id].is_autotile = p_is_autotile;
|
tile_map[p_id].is_autotile = p_is_autotile;
|
||||||
_change_notify("");
|
|
||||||
emit_changed();
|
emit_changed();
|
||||||
|
_change_notify("is_autotile");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TileSet::tile_get_is_autotile(int p_id) const {
|
bool TileSet::tile_get_is_autotile(int p_id) const {
|
||||||
|
|
Loading…
Reference in a new issue