diff options
-rw-r--r-- | core/bind/core_bind.cpp | 13 | ||||
-rw-r--r-- | core/bind/core_bind.h | 3 | ||||
-rw-r--r-- | core/engine.cpp | 1 | ||||
-rw-r--r-- | core/engine.h | 11 | ||||
-rw-r--r-- | editor/editor_node.cpp | 2 | ||||
-rw-r--r-- | editor/project_manager.cpp | 2 | ||||
-rw-r--r-- | main/main.cpp | 1 |
7 files changed, 32 insertions, 1 deletions
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index 273ef78669..185c2e670c 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -2568,6 +2568,16 @@ bool _Engine::is_in_fixed_frame() const { return Engine::get_singleton()->is_in_fixed_frame(); } +void _Engine::set_editor_hint(bool p_enabled) { + + Engine::get_singleton()->set_editor_hint(p_enabled); +} + +bool _Engine::is_editor_hint() const { + + return Engine::get_singleton()->is_editor_hint(); +} + void _Engine::_bind_methods() { ClassDB::bind_method(D_METHOD("set_iterations_per_second", "iterations_per_second"), &_Engine::set_iterations_per_second); @@ -2588,6 +2598,9 @@ void _Engine::_bind_methods() { ClassDB::bind_method(D_METHOD("get_version_info"), &_Engine::get_version_info); ClassDB::bind_method(D_METHOD("is_in_fixed_frame"), &_Engine::is_in_fixed_frame); + + ClassDB::bind_method(D_METHOD("set_editor_hint", "enabled"), &_Engine::set_editor_hint); + ClassDB::bind_method(D_METHOD("is_editor_hint"), &_Engine::is_editor_hint); } _Engine *_Engine::singleton = NULL; diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h index e18d663d85..70ae31055d 100644 --- a/core/bind/core_bind.h +++ b/core/bind/core_bind.h @@ -647,6 +647,9 @@ public: bool is_in_fixed_frame() const; + void set_editor_hint(bool p_enabled); + bool is_editor_hint() const; + _Engine(); }; diff --git a/core/engine.cpp b/core/engine.cpp index c16a2903d3..c8218e47ac 100644 --- a/core/engine.cpp +++ b/core/engine.cpp @@ -121,4 +121,5 @@ Engine::Engine() { _in_fixed = false; _frame_ticks = 0; _frame_step = 0; + editor_hint = false; } diff --git a/core/engine.h b/core/engine.h index 16dfb77593..1a07f5d1df 100644 --- a/core/engine.h +++ b/core/engine.h @@ -51,9 +51,12 @@ class Engine { float _time_scale; bool _pixel_snap; uint64_t _fixed_frames; + uint64_t _idle_frames; bool _in_fixed; + bool editor_hint; + static Engine *singleton; public: @@ -85,6 +88,14 @@ public: _FORCE_INLINE_ bool get_use_pixel_snap() const { return _pixel_snap; } +#ifdef TOOLS_ENABLED + _FORCE_INLINE_ void set_editor_hint(bool p_enabled) { editor_hint = p_enabled; } + _FORCE_INLINE_ bool is_editor_hint() const { return editor_hint; } +#else + _FORCE_INLINE_ void set_editor_hint(bool p_enabled) {} + _FORCE_INLINE_ bool is_editor_hint() const { return false; } +#endif + Dictionary get_version_info() const; Engine(); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 730ba3cacc..0e3c62ade4 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -277,6 +277,8 @@ void EditorNode::_notification(int p_what) { } if (p_what == NOTIFICATION_ENTER_TREE) { + Engine::get_singleton()->set_editor_hint(true); + get_tree()->get_root()->set_disable_3d(true); //MessageQueue::get_singleton()->push_call(this,"_get_scene_metadata"); get_tree()->set_editor_hint(true); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index b77544befa..8970d956ff 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -465,6 +465,7 @@ void ProjectManager::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { + Engine::get_singleton()->set_editor_hint(true); get_tree()->set_editor_hint(true); } else if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { @@ -966,7 +967,6 @@ void ProjectManager::_run_project_confirm() { return; } - const String &selected = E->key(); String path = EditorSettings::get_singleton()->get("projects/" + selected); diff --git a/main/main.cpp b/main/main.cpp index 9376d83204..131c7bc62f 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -660,6 +660,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } if (editor) { + Engine::get_singleton()->set_editor_hint(true); main_args.push_back("-editor"); init_maximized = true; use_custom_res = false; |