fix: script overriding

This commit is contained in:
clasher113
2025-08-15 12:27:27 +03:00
parent 635b66a8c6
commit 547a39554c
+5 -4
View File
@@ -416,19 +416,20 @@ void ContentLoader::load() {
template <class T> template <class T>
static void load_script(const Content& content, T& def) { static void load_script(const Content& content, T& def) {
const auto& name = def.name; const auto& scriptName = def.scriptFile;
size_t pos = name.find(':'); if (scriptName.empty()) return;
size_t pos = scriptName.find(':');
if (pos == std::string::npos) { if (pos == std::string::npos) {
throw std::runtime_error("invalid content unit name"); throw std::runtime_error("invalid content unit name");
} }
const auto runtime = content.getPackRuntime(name.substr(0, pos)); const auto runtime = content.getPackRuntime(scriptName.substr(0, pos));
const auto& pack = runtime->getInfo(); const auto& pack = runtime->getInfo();
const auto& folder = pack.folder; const auto& folder = pack.folder;
auto scriptfile = folder / ("scripts/" + def.scriptName + ".lua"); auto scriptfile = folder / ("scripts/" + def.scriptName + ".lua");
if (io::is_regular_file(scriptfile)) { if (io::is_regular_file(scriptfile)) {
scripting::load_content_script( scripting::load_content_script(
runtime->getEnvironment(), runtime->getEnvironment(),
name, def.name,
scriptfile, scriptfile,
def.scriptFile, def.scriptFile,
def.rt.funcsset def.rt.funcsset