diff options
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r-- | editor/editor_node.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 2cee2c2198..dc90256490 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1285,7 +1285,14 @@ void EditorNode::save_resource(const Ref<Resource> &p_resource) { if (p_resource->is_built_in()) { const String scene_path = p_resource->get_path().get_slice("::", 0); if (!scene_path.is_empty()) { - save_scene_if_open(scene_path); + if (ResourceLoader::exists(scene_path) && ResourceLoader::get_resource_type(scene_path) == "PackedScene") { + save_scene_if_open(scene_path); + } else { + // Not a packed scene, so save it as regular resource. + Ref<Resource> parent_resource = ResourceCache::get_ref(scene_path); + ERR_FAIL_COND_MSG(parent_resource.is_null(), "Parent resource not loaded, can't save."); + save_resource(parent_resource); + } return; } } |