1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-27 17:28:41 +00:00

Add option for random mod load order (#14637)

This commit is contained in:
chmodsayshello 2024-05-12 14:20:18 +02:00 committed by GitHub
parent 57b6e74abb
commit 0889048cb5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 18 additions and 0 deletions

View file

@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "filesys.h"
#include "gettext.h"
#include "exceptions.h"
#include "util/numeric.h"
std::string ModConfiguration::getUnsatisfiedModsError() const
@ -226,6 +227,15 @@ void ModConfiguration::resolveDependencies()
modnames.insert(mod.name);
}
// Step 1.5 (optional): shuffle unsatisfied mods so non declared depends get found by their devs
if (g_settings->getBool("random_mod_load_order")) {
MyRandGenerator rg;
std::shuffle(m_unsatisfied_mods.begin(),
m_unsatisfied_mods.end(),
rg
);
}
// Step 2: get dependencies (including optional dependencies)
// of each mod, split mods into satisfied and unsatisfied
std::vector<ModSpec> satisfied;

View file

@ -419,6 +419,11 @@ void set_default_settings()
// Server
settings->setDefault("disable_escape_sequences", "false");
settings->setDefault("strip_color_codes", "false");
#ifndef NDEBUG
settings->setDefault("random_mod_load_order", "true");
#else
settings->setDefault("random_mod_load_order", "false");
#endif
#if USE_PROMETHEUS
settings->setDefault("prometheus_listener_address", "127.0.0.1:30000");
#endif