diff options
author | kobewi <kobewi4e@gmail.com> | 2022-12-25 15:08:32 +0100 |
---|---|---|
committer | kobewi <kobewi4e@gmail.com> | 2023-01-16 10:16:30 +0100 |
commit | 6444c7d1271e1dfa589edb7bb8a9f4cf181909ad (patch) | |
tree | c16202ebf03424dd014b0e68dadd3b4ed42b5af3 /core/config | |
parent | 0f0b853c988f2c3ff322d8eaf97dd4f8d5de46c8 (diff) |
Move global script class cache to separate file
Diffstat (limited to 'core/config')
-rw-r--r-- | core/config/project_settings.cpp | 24 | ||||
-rw-r--r-- | core/config/project_settings.h | 2 |
2 files changed, 26 insertions, 0 deletions
diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp index 73d7d7420f..de27b6d5ac 100644 --- a/core/config/project_settings.cpp +++ b/core/config/project_settings.cpp @@ -33,6 +33,7 @@ #include "core/core_bind.h" // For Compression enum. #include "core/core_string_names.h" #include "core/input/input_map.h" +#include "core/io/config_file.h" #include "core/io/dir_access.h" #include "core/io/file_access.h" #include "core/io/file_access_network.h" @@ -1148,6 +1149,29 @@ Variant ProjectSettings::get_setting(const String &p_setting, const Variant &p_d } } +Array ProjectSettings::get_global_class_list() { + Array script_classes; + + Ref<ConfigFile> cf; + cf.instantiate(); + if (cf->load(get_project_data_path().path_join("global_script_class_cache.cfg")) == OK) { + script_classes = cf->get_value("", "list"); + } else { +#ifndef TOOLS_ENABLED + // Script classes can't be recreated in exported project, so print an error. + ERR_PRINT("Could not load global script cache."); +#endif + } + return script_classes; +} + +void ProjectSettings::store_global_class_list(const Array &p_classes) { + Ref<ConfigFile> cf; + cf.instantiate(); + cf->set_value("", "list", p_classes); + cf->save(get_project_data_path().path_join("global_script_class_cache.cfg")); +} + bool ProjectSettings::has_custom_feature(const String &p_feature) const { return custom_features.has(p_feature); } diff --git a/core/config/project_settings.h b/core/config/project_settings.h index 353e298919..29c495c46b 100644 --- a/core/config/project_settings.h +++ b/core/config/project_settings.h @@ -141,6 +141,8 @@ public: void set_setting(const String &p_setting, const Variant &p_value); Variant get_setting(const String &p_setting, const Variant &p_default_value = Variant()) const; + Array get_global_class_list(); + void store_global_class_list(const Array &p_classes); bool has_setting(String p_var) const; String localize_path(const String &p_path) const; |