mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +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:
parent
352ebe9725
commit
0ba6048ad3
36 changed files with 689 additions and 86 deletions
|
@ -185,6 +185,9 @@ String GDScriptWarning::get_message() const {
|
|||
case ONREADY_WITH_EXPORT: {
|
||||
return R"("@onready" will set the default value after "@export" takes effect and will override it.)";
|
||||
}
|
||||
case REDUNDANT_STATIC_UNLOAD: {
|
||||
return R"(The "@static_unload" annotation is redundant because the file does not have a class with static variables.)";
|
||||
}
|
||||
case WARNING_MAX:
|
||||
break; // Can't happen, but silences warning
|
||||
}
|
||||
|
@ -254,6 +257,7 @@ String GDScriptWarning::get_name_from_code(Code p_code) {
|
|||
"NATIVE_METHOD_OVERRIDE",
|
||||
"GET_NODE_DEFAULT_WITHOUT_ONREADY",
|
||||
"ONREADY_WITH_EXPORT",
|
||||
"REDUNDANT_STATIC_UNLOAD",
|
||||
};
|
||||
|
||||
static_assert((sizeof(names) / sizeof(*names)) == WARNING_MAX, "Amount of warning types don't match the amount of warning names.");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue