diff options
| author | Juan Linietsky | 2016-07-10 14:33:48 -0300 |
|---|---|---|
| committer | GitHub | 2016-07-10 14:33:48 -0300 |
| commit | e525a0387bb79d5302cff768e580302fce0cba8f (patch) | |
| tree | 1eaf42cd3b317f3b1d62ec9f55816d16203aa125 /tools/editor/editor_data.cpp | |
| parent | da3ad668259aa03caeae5904154e77481c1dba6b (diff) | |
| parent | 158585b21cf5570c425428bb76c6749518199042 (diff) | |
| download | godot-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.cpp | 38 |
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; + } } |
