diff options
author | Juan Linietsky <reduzio@gmail.com> | 2018-05-07 16:41:34 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-07 16:41:34 -0300 |
commit | 80b9edf0f69107d88aecd4df3783f20eb1b17dd5 (patch) | |
tree | b3bef1dacb3fbc2c1dba3bdcf994a06449d9f0db /core | |
parent | 2ba8b5b27c8c2a0a01eca5aa2db0e60870ff1668 (diff) | |
parent | 24e6361cbad13b29dcfa317e52f5b88d17156378 (diff) |
Merge pull request #16893 from GodotExplorer/debugger-improvement-3
Save runtime node as scene from remote scene tree.
Diffstat (limited to 'core')
-rw-r--r-- | core/script_debugger_remote.cpp | 13 | ||||
-rw-r--r-- | core/script_debugger_remote.h | 2 |
2 files changed, 15 insertions, 0 deletions
diff --git a/core/script_debugger_remote.cpp b/core/script_debugger_remote.cpp index 632285f48d..75bcedbbc8 100644 --- a/core/script_debugger_remote.cpp +++ b/core/script_debugger_remote.cpp @@ -37,6 +37,7 @@ #include "os/os.h" #include "project_settings.h" #include "scene/main/node.h" +#include "scene/resources/packed_scene.h" void ScriptDebuggerRemote::_send_video_memory() { @@ -148,6 +149,16 @@ void ScriptDebuggerRemote::_put_variable(const String &p_name, const Variant &p_ } } +void ScriptDebuggerRemote::_save_node(ObjectID id, const String &p_path) { + + Node *node = Object::cast_to<Node>(ObjectDB::get_instance(id)); + ERR_FAIL_COND(!node); + + Ref<PackedScene> ps = memnew(PackedScene); + ps->pack(node); + ResourceSaver::save(p_path, ps); +} + void ScriptDebuggerRemote::debug(ScriptLanguage *p_script, bool p_can_continue) { //this function is called when there is a debugger break (bug on script) @@ -322,6 +333,8 @@ void ScriptDebuggerRemote::debug(ScriptLanguage *p_script, bool p_can_continue) else remove_breakpoint(cmd[2], cmd[1]); + } else if (command == "save_node") { + _save_node(cmd[1], cmd[2]); } else { _parse_live_edit(cmd); } diff --git a/core/script_debugger_remote.h b/core/script_debugger_remote.h index 2c4e29f172..cc12d978d6 100644 --- a/core/script_debugger_remote.h +++ b/core/script_debugger_remote.h @@ -133,6 +133,8 @@ class ScriptDebuggerRemote : public ScriptDebugger { void _put_variable(const String &p_name, const Variant &p_variable); + void _save_node(ObjectID id, const String &p_path); + public: struct ResourceUsage { |