summaryrefslogtreecommitdiffstats
path: root/editor/editor_node.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r--editor/editor_node.cpp9
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;
}
}