summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript_cache.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-04-27 16:56:08 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-04-27 16:56:08 +0200
commitc4a9d3212689a54679eebbce0a8525bd027ba101 (patch)
tree3bd7bca690fb4eaad98df7c9b085797d3e668c97 /modules/gdscript/gdscript_cache.cpp
parent190f1588ccd813739b248e11c74c7b375e88a47a (diff)
parent0ba6048ad3c945e2bd1d0114b5095535c22103ce (diff)
downloadredot-engine-c4a9d3212689a54679eebbce0a8525bd027ba101.tar.gz
Merge pull request #76264 from vnen/gdscript-static-variales
Add support for static variables in GDScript
Diffstat (limited to 'modules/gdscript/gdscript_cache.cpp')
-rw-r--r--modules/gdscript/gdscript_cache.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript_cache.cpp b/modules/gdscript/gdscript_cache.cpp
index a009e8e0a8..126fccbbf0 100644
--- a/modules/gdscript/gdscript_cache.cpp
+++ b/modules/gdscript/gdscript_cache.cpp
@@ -342,6 +342,16 @@ Error GDScriptCache::finish_compiling(const String &p_owner) {
return err;
}
+void GDScriptCache::add_static_script(Ref<GDScript> p_script) {
+ ERR_FAIL_COND_MSG(p_script.is_null(), "Trying to cache empty script as static.");
+ ERR_FAIL_COND_MSG(!p_script->is_valid(), "Trying to cache non-compiled script as static.");
+ singleton->static_gdscript_cache[p_script->get_fully_qualified_name()] = p_script;
+}
+
+void GDScriptCache::remove_static_script(const String &p_fqcn) {
+ singleton->static_gdscript_cache.erase(p_fqcn);
+}
+
Ref<PackedScene> GDScriptCache::get_packed_scene(const String &p_path, Error &r_error, const String &p_owner) {
MutexLock lock(singleton->mutex);