mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-07 20:11:50 +00:00
Merge pull request #821 from Xertis/main
Added script-listener to packs loading
This commit is contained in:
commit
936a5c8525
6 changed files with 99 additions and 3 deletions
|
|
@ -627,6 +627,26 @@ void scripting::on_ui_close(UiDocument* layout, Inventory* inventory) {
|
|||
});
|
||||
}
|
||||
|
||||
void scripting::on_scripts_loading() {
|
||||
auto L = lua::get_main_state();
|
||||
|
||||
for (auto& pack : content_control->getAllContentPacks()) {
|
||||
lua::emit_event(L, pack.id + ":.onscriptsloading", [](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 +783,19 @@ void scripting::load_world_script(
|
|||
register_event(env, "on_inventory_closed", prefix + ":.inventoryclosed");
|
||||
}
|
||||
|
||||
void scripting::load_content_script(
|
||||
const scriptenv& senv,
|
||||
const std::string& prefix,
|
||||
const io::path& file,
|
||||
const std::string& fileName
|
||||
) {
|
||||
int env = *senv;
|
||||
lua::pop(lua::get_main_state(), load_script(env, "content", file, fileName));
|
||||
|
||||
register_event(env, "on_scripts_loading", prefix + ":.onscriptsloading");
|
||||
register_event(env, "on_content_loaded", prefix + ":.oncontentloaded");
|
||||
}
|
||||
|
||||
void scripting::load_layout_script(
|
||||
const scriptenv& senv,
|
||||
const std::string& prefix,
|
||||
|
|
|
|||
|
|
@ -160,6 +160,12 @@ namespace scripting {
|
|||
/// @brief Called on UI view close
|
||||
void on_ui_close(UiDocument* layout, Inventory* inventory);
|
||||
|
||||
/// @brief Called on Content loading
|
||||
void on_scripts_loading();
|
||||
|
||||
/// @brief Called on Content loading finish
|
||||
void on_content_loaded();
|
||||
|
||||
/// @brief Load script associated with a Block
|
||||
/// @param env environment
|
||||
/// @param prefix pack id
|
||||
|
|
@ -221,6 +227,13 @@ namespace scripting {
|
|||
WorldFuncsSet& funcsset
|
||||
);
|
||||
|
||||
void load_content_script(
|
||||
const scriptenv& env,
|
||||
const std::string& packid,
|
||||
const io::path& file,
|
||||
const std::string& fileName
|
||||
);
|
||||
|
||||
/// @brief Load script associated with an UiDocument
|
||||
/// @param env environment
|
||||
/// @param prefix pack id
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue