aboutsummaryrefslogtreecommitdiff
path: root/tools/editor/editor_data.cpp
diff options
context:
space:
mode:
authorJuan Linietsky2016-07-10 14:33:48 -0300
committerGitHub2016-07-10 14:33:48 -0300
commite525a0387bb79d5302cff768e580302fce0cba8f (patch)
tree1eaf42cd3b317f3b1d62ec9f55816d16203aa125 /tools/editor/editor_data.cpp
parentda3ad668259aa03caeae5904154e77481c1dba6b (diff)
parent158585b21cf5570c425428bb76c6749518199042 (diff)
downloadgodot-e525a0387bb79d5302cff768e580302fce0cba8f.tar.gz
godot-e525a0387bb79d5302cff768e580302fce0cba8f.tar.zst
godot-e525a0387bb79d5302cff768e580302fce0cba8f.zip
Merge pull request #5421 from MarianoGnu/issues
Save all edited scenes when Runing (and auto-save is enabled). Fixes #4410
Diffstat (limited to 'tools/editor/editor_data.cpp')
-rw-r--r--tools/editor/editor_data.cpp38
1 files changed, 29 insertions, 9 deletions
diff --git a/tools/editor/editor_data.cpp b/tools/editor/editor_data.cpp
index 0f1004103..8d3fd6c9c 100644
--- a/tools/editor/editor_data.cpp
+++ b/tools/editor/editor_data.cpp
@@ -326,6 +326,13 @@ Dictionary EditorData::get_editor_states() const {
}
+Dictionary EditorData::get_scene_editor_states(int p_idx) const
+{
+ ERR_FAIL_INDEX_V(p_idx,edited_scene.size(),Dictionary());
+ EditedScene es = edited_scene[p_idx];
+ return es.editor_states;
+}
+
void EditorData::set_editor_states(const Dictionary& p_states) {
List<Variant> keys;
@@ -613,11 +620,14 @@ void EditorData::set_edited_scene(int p_idx){
current_edited_scene=p_idx;
//swap
}
-Node* EditorData::get_edited_scene_root(){
-
- ERR_FAIL_INDEX_V(current_edited_scene,edited_scene.size(),NULL);
-
- return edited_scene[current_edited_scene].root;
+Node* EditorData::get_edited_scene_root(int p_idx){
+ if (p_idx < 0) {
+ ERR_FAIL_INDEX_V(current_edited_scene,edited_scene.size(),NULL);
+ return edited_scene[current_edited_scene].root;
+ } else {
+ ERR_FAIL_INDEX_V(p_idx,edited_scene.size(),NULL);
+ return edited_scene[p_idx].root;
+ }
}
void EditorData::set_edited_scene_root(Node* p_root) {
@@ -630,9 +640,14 @@ int EditorData::get_edited_scene_count() const {
return edited_scene.size();
}
-void EditorData::set_edited_scene_version(uint64_t version) {
+void EditorData::set_edited_scene_version(uint64_t version, int scene_idx) {
ERR_FAIL_INDEX(current_edited_scene,edited_scene.size());
- edited_scene[current_edited_scene].version=version;
+ if (scene_idx < 0) {
+ edited_scene[current_edited_scene].version=version;
+ } else {
+ ERR_FAIL_INDEX(scene_idx,edited_scene.size());
+ edited_scene[scene_idx].version=version;
+ }
}
@@ -758,10 +773,15 @@ void EditorData::set_edited_scene_import_metadata(Ref<ResourceImportMetadata> p_
}
-Ref<ResourceImportMetadata> EditorData::get_edited_scene_import_metadata() const{
+Ref<ResourceImportMetadata> EditorData::get_edited_scene_import_metadata(int idx) const{
ERR_FAIL_INDEX_V(current_edited_scene,edited_scene.size(),Ref<ResourceImportMetadata>());
- return edited_scene[current_edited_scene].medatata;
+ if(idx<0) {
+ return edited_scene[current_edited_scene].medatata;
+ } else {
+ ERR_FAIL_INDEX_V(idx,edited_scene.size(),Ref<ResourceImportMetadata>());
+ return edited_scene[idx].medatata;
+ }
}