fix: script overriding
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user