Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 22 additions & 3 deletions core/config/project_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,19 @@ bool ProjectSettings::_set(const StringName &p_name, const Variant &p_value) {
} else {
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);
AutoloadInfo autoload;
autoload.name = node_name;
Expand Down Expand Up @@ -1468,9 +1480,16 @@ const HashMap<StringName, ProjectSettings::AutoloadInfo> &ProjectSettings::get_a
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.");
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) {
Expand Down
2 changes: 1 addition & 1 deletion core/config/project_settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ class ProjectSettings : public Object {
bool check_changed_settings_in_group(const String &p_setting_prefix) 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);
bool has_autoload(const StringName &p_autoload) const;
AutoloadInfo get_autoload(const StringName &p_name) const;
Expand Down
Loading