From 9b7b46143d2df7d4f2efcb89ceb5034c7a57e79c Mon Sep 17 00:00:00 2001 From: Leon Krause Date: Mon, 13 Nov 2017 21:46:57 +0100 Subject: Move singleton management from ProjectSettings to Engine --- core/engine.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'core/engine.h') diff --git a/core/engine.h b/core/engine.h index 3b4979582..4a573c153 100644 --- a/core/engine.h +++ b/core/engine.h @@ -37,6 +37,17 @@ class Engine { +public: + struct Singleton { + StringName name; + Object *ptr; + Singleton(const StringName &p_name = StringName(), Object *p_ptr = NULL) + : name(p_name), + ptr(p_ptr) { + } + }; + +private: friend class Main; uint64_t frames_drawn; @@ -54,6 +65,9 @@ class Engine { uint64_t _idle_frames; bool _in_physics; + List singletons; + Map singleton_ptrs; + bool editor_hint; static Engine *singleton; @@ -83,6 +97,11 @@ public: void set_frame_delay(uint32_t p_msec); uint32_t get_frame_delay() const; + void add_singleton(const Singleton &p_singleton); + void get_singletons(List *p_singletons); + bool has_singleton(const String &p_name) const; + Object *get_singleton_object(const String &p_name) const; + _FORCE_INLINE_ bool get_use_pixel_snap() const { return _pixel_snap; } #ifdef TOOLS_ENABLED -- cgit v1.2.3-70-g09d2