summaryrefslogtreecommitdiffstats
path: root/core/config/engine.h
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2021-08-24 19:03:10 -0300
committerreduz <reduzio@gmail.com>2021-08-25 08:32:25 -0300
commite2f8df8c5b3b6a1d4c18a75ff1c8293cc5909bc0 (patch)
treea85c182dce309f35dcf3da83349a688c644fd5a4 /core/config/engine.h
parentca7f53dd25cd7ee52004a09d4b7ababb9fa0bca6 (diff)
downloadredot-engine-e2f8df8c5b3b6a1d4c18a75ff1c8293cc5909bc0.tar.gz
Add ability to register singletons from engine API
* Exposed functions in Engine to register and unregister singletons. * Added the concept of user singletons, which can be removed (the system ones can't).
Diffstat (limited to 'core/config/engine.h')
-rw-r--r--core/config/engine.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/core/config/engine.h b/core/config/engine.h
index e6b5df2d5a..ae33acede2 100644
--- a/core/config/engine.h
+++ b/core/config/engine.h
@@ -42,6 +42,7 @@ public:
StringName name;
Object *ptr;
StringName class_name; //used for binding generation hinting
+ bool user_created = false;
Singleton(const StringName &p_name = StringName(), Object *p_ptr = nullptr, const StringName &p_class_name = StringName());
};
@@ -109,8 +110,10 @@ public:
void add_singleton(const Singleton &p_singleton);
void get_singletons(List<Singleton> *p_singletons);
- bool has_singleton(const String &p_name) const;
- Object *get_singleton_object(const String &p_name) const;
+ bool has_singleton(const StringName &p_name) const;
+ Object *get_singleton_object(const StringName &p_name) const;
+ void remove_singleton(const StringName &p_name);
+ bool is_singleton_user_created(const StringName &p_name) const;
#ifdef TOOLS_ENABLED
_FORCE_INLINE_ void set_editor_hint(bool p_enabled) { editor_hint = p_enabled; }