You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Add support for static variables in GDScript
Which allows editable data associated with a particular class instead of the instance. Scripts with static variables are kept in memory indefinitely unless the `@static_unload` annotation is used or the `static_unload()` method is called on the GDScript. If the custom function `_static_init()` exists it will be called when the class is loaded, after the static variables are set.
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user