Added script-listener to packs loading

This commit is contained in:
Xertis 2026-03-22 21:40:38 +03:00
parent b5f5aeb5c6
commit 61625ffe00
5 changed files with 92 additions and 1 deletions

View file

@ -627,6 +627,36 @@ void scripting::on_ui_close(UiDocument* layout, Inventory* inventory) {
});
}
void scripting::on_content_initialization() {
auto L = lua::get_main_state();
for (auto& pack : content_control->getAllContentPacks()) {
lua::emit_event(L, pack.id + ":.oncontentinitialization", [](auto L) {
return 0;
});
}
}
void scripting::on_content_loading() {
auto L = lua::get_main_state();
for (auto& pack : content_control->getAllContentPacks()) {
lua::emit_event(L, pack.id + ":.oncontentloading", [](auto L) {
return 0;
});
}
}
void scripting::on_content_loaded() {
auto L = lua::get_main_state();
for (auto& pack : content_control->getAllContentPacks()) {
lua::emit_event(L, pack.id + ":.oncontentloaded", [](auto L) {
return 0;
});
}
}
bool scripting::register_event(
int env, const std::string& name, const std::string& id
) {
@ -763,6 +793,21 @@ void scripting::load_world_script(
register_event(env, "on_inventory_closed", prefix + ":.inventoryclosed");
}
void scripting::load_main_script(
const scriptenv& senv,
const std::string& prefix,
const io::path& file,
const std::string& fileName,
MainFuncsSet& funcsset
) {
int env = *senv;
lua::pop(lua::get_main_state(), load_script(env, "main", file, fileName));
register_event(env, "on_content_initialization", prefix + ":.oncontentinitialization");
register_event(env, "on_content_loading", prefix + ":.oncontentloading");
register_event(env, "on_content_loaded", prefix + ":.oncontentloaded");
}
void scripting::load_layout_script(
const scriptenv& senv,
const std::string& prefix,