fix: commands repository not reset before world open

This commit is contained in:
MihailRis 2024-11-24 12:54:05 +03:00
parent 9ed80ec835
commit 1a00a91b60
3 changed files with 11 additions and 1 deletions

View File

@ -362,6 +362,7 @@ void Engine::loadContent() {
load_configs(pack.folder);
}
content = contentBuilder.build();
interpreter->reset();
scripting::on_content_load(content.get());
ContentLoader::loadScripts(*content);

View File

@ -125,6 +125,10 @@ namespace cmd {
const std::unordered_map<std::string, Command>& getCommands() const {
return commands;
}
void clear() {
commands.clear();
}
};
class CommandsInterpreter {
@ -158,5 +162,10 @@ namespace cmd {
CommandsRepository* getRepository() const {
return repository.get();
}
void reset() {
repository->clear();
variables.clear();
}
};
}

View File

@ -68,7 +68,6 @@ void scripting::initialize(Engine* engine) {
lua::initialize(*engine->getPaths());
load_script(fs::path("stdlib.lua"), true);
load_script(fs::path("stdcmd.lua"), true);
load_script(fs::path("classes.lua"), true);
}
@ -172,6 +171,7 @@ void scripting::on_content_load(Content* content) {
lua::setfield(L, "materials");
lua::pop(L);
}
load_script(fs::path("stdcmd.lua"), true);
}
void scripting::on_world_load(LevelController* controller) {