|
@@ -56,10 +56,15 @@ int TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::get
|
|
}
|
|
}
|
|
|
|
|
|
bool TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::_set(const StringName &p_name, const Variant &p_value) {
|
|
bool TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::_set(const StringName &p_name, const Variant &p_value) {
|
|
|
|
+ String name = p_name;
|
|
|
|
+ if (name == "name") {
|
|
|
|
+ // Use the resource_name property to store the source's name.
|
|
|
|
+ name = "resource_name";
|
|
|
|
+ }
|
|
bool valid = false;
|
|
bool valid = false;
|
|
- tile_set_scenes_collection_source->set(p_name, p_value, &valid);
|
|
|
|
|
|
+ tile_set_scenes_collection_source->set(name, p_value, &valid);
|
|
if (valid) {
|
|
if (valid) {
|
|
- emit_signal(SNAME("changed"), String(p_name).utf8().get_data());
|
|
|
|
|
|
+ emit_signal(SNAME("changed"), String(name).utf8().get_data());
|
|
}
|
|
}
|
|
return valid;
|
|
return valid;
|
|
}
|
|
}
|
|
@@ -68,11 +73,20 @@ bool TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::_g
|
|
if (!tile_set_scenes_collection_source) {
|
|
if (!tile_set_scenes_collection_source) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
+ String name = p_name;
|
|
|
|
+ if (name == "name") {
|
|
|
|
+ // Use the resource_name property to store the source's name.
|
|
|
|
+ name = "resource_name";
|
|
|
|
+ }
|
|
bool valid = false;
|
|
bool valid = false;
|
|
- r_ret = tile_set_scenes_collection_source->get(p_name, &valid);
|
|
|
|
|
|
+ r_ret = tile_set_scenes_collection_source->get(name, &valid);
|
|
return valid;
|
|
return valid;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::_get_property_list(List<PropertyInfo> *p_list) const {
|
|
|
|
+ p_list->push_back(PropertyInfo(Variant::STRING, "name", PROPERTY_HINT_NONE, ""));
|
|
|
|
+}
|
|
|
|
+
|
|
void TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::_bind_methods() {
|
|
void TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::_bind_methods() {
|
|
// -- Shape and layout --
|
|
// -- Shape and layout --
|
|
ClassDB::bind_method(D_METHOD("set_id", "id"), &TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::set_id);
|
|
ClassDB::bind_method(D_METHOD("set_id", "id"), &TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::set_id);
|
|
@@ -89,6 +103,10 @@ void TileSetScenesCollectionSourceEditor::TileSetScenesCollectionProxyObject::ed
|
|
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_scenes_collection_source);
|
|
ERR_FAIL_COND(p_tile_set->get_source(p_source_id) != p_tile_set_scenes_collection_source);
|
|
|
|
|
|
|
|
+ if (tile_set == p_tile_set && tile_set_scenes_collection_source == p_tile_set_scenes_collection_source && source_id == p_source_id) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
// Disconnect to changes.
|
|
// Disconnect to changes.
|
|
if (tile_set_scenes_collection_source) {
|
|
if (tile_set_scenes_collection_source) {
|
|
tile_set_scenes_collection_source->disconnect(CoreStringNames::get_singleton()->property_list_changed, callable_mp((Object *)this, &Object::notify_property_list_changed));
|
|
tile_set_scenes_collection_source->disconnect(CoreStringNames::get_singleton()->property_list_changed, callable_mp((Object *)this, &Object::notify_property_list_changed));
|
|
@@ -174,6 +192,10 @@ void TileSetScenesCollectionSourceEditor::SceneTileProxyObject::edit(TileSetScen
|
|
ERR_FAIL_COND(!p_tile_set_scenes_collection_source);
|
|
ERR_FAIL_COND(!p_tile_set_scenes_collection_source);
|
|
ERR_FAIL_COND(!p_tile_set_scenes_collection_source->has_scene_tile_id(p_scene_id));
|
|
ERR_FAIL_COND(!p_tile_set_scenes_collection_source->has_scene_tile_id(p_scene_id));
|
|
|
|
|
|
|
|
+ if (tile_set_scenes_collection_source == p_tile_set_scenes_collection_source && scene_id == p_scene_id) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
tile_set_scenes_collection_source = p_tile_set_scenes_collection_source;
|
|
tile_set_scenes_collection_source = p_tile_set_scenes_collection_source;
|
|
scene_id = p_scene_id;
|
|
scene_id = p_scene_id;
|
|
|
|
|