mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Merge pull request #113078 from bruvzg/proj_ov_aload_front
Allow `override.cfg` to add autoloads to the front of the list.
This commit is contained in:
commit
a2df35489a
2 changed files with 23 additions and 4 deletions
|
|
@ -339,7 +339,19 @@ bool ProjectSettings::_set(const StringName &p_name, const Variant &p_value) {
|
||||||
} else {
|
} else {
|
||||||
props[p_name] = VariantContainer(p_value, last_order++);
|
props[p_name] = VariantContainer(p_value, last_order++);
|
||||||
}
|
}
|
||||||
if (p_name.operator String().begins_with("autoload/")) {
|
if (p_name.operator String().begins_with("autoload_prepend/")) {
|
||||||
|
String node_name = p_name.operator String().get_slicec('/', 1);
|
||||||
|
AutoloadInfo autoload;
|
||||||
|
autoload.name = node_name;
|
||||||
|
String path = p_value;
|
||||||
|
if (path.begins_with("*")) {
|
||||||
|
autoload.is_singleton = true;
|
||||||
|
autoload.path = path.substr(1).simplify_path();
|
||||||
|
} else {
|
||||||
|
autoload.path = path.simplify_path();
|
||||||
|
}
|
||||||
|
add_autoload(autoload, true);
|
||||||
|
} else if (p_name.operator String().begins_with("autoload/")) {
|
||||||
String node_name = p_name.operator String().get_slicec('/', 1);
|
String node_name = p_name.operator String().get_slicec('/', 1);
|
||||||
AutoloadInfo autoload;
|
AutoloadInfo autoload;
|
||||||
autoload.name = node_name;
|
autoload.name = node_name;
|
||||||
|
|
@ -1468,9 +1480,16 @@ const HashMap<StringName, ProjectSettings::AutoloadInfo> &ProjectSettings::get_a
|
||||||
return autoloads;
|
return autoloads;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectSettings::add_autoload(const AutoloadInfo &p_autoload) {
|
void ProjectSettings::add_autoload(const AutoloadInfo &p_autoload, bool p_front_insert) {
|
||||||
ERR_FAIL_COND_MSG(p_autoload.name == StringName(), "Trying to add autoload with no name.");
|
ERR_FAIL_COND_MSG(p_autoload.name == StringName(), "Trying to add autoload with no name.");
|
||||||
autoloads[p_autoload.name] = p_autoload;
|
if (p_front_insert) {
|
||||||
|
if (autoloads.has(p_autoload.name)) {
|
||||||
|
autoloads.erase(p_autoload.name);
|
||||||
|
}
|
||||||
|
autoloads.insert(p_autoload.name, p_autoload, true);
|
||||||
|
} else {
|
||||||
|
autoloads[p_autoload.name] = p_autoload;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectSettings::remove_autoload(const StringName &p_autoload) {
|
void ProjectSettings::remove_autoload(const StringName &p_autoload) {
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,7 @@ public:
|
||||||
bool check_changed_settings_in_group(const String &p_setting_prefix) const;
|
bool check_changed_settings_in_group(const String &p_setting_prefix) const;
|
||||||
|
|
||||||
const HashMap<StringName, AutoloadInfo> &get_autoload_list() const;
|
const HashMap<StringName, AutoloadInfo> &get_autoload_list() const;
|
||||||
void add_autoload(const AutoloadInfo &p_autoload);
|
void add_autoload(const AutoloadInfo &p_autoload, bool p_front_insert = false);
|
||||||
void remove_autoload(const StringName &p_autoload);
|
void remove_autoload(const StringName &p_autoload);
|
||||||
bool has_autoload(const StringName &p_autoload) const;
|
bool has_autoload(const StringName &p_autoload) const;
|
||||||
AutoloadInfo get_autoload(const StringName &p_name) const;
|
AutoloadInfo get_autoload(const StringName &p_name) const;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue