add gfx.blockwraps library & add on_player_tick world event

This commit is contained in:
MihailRis
2024-11-21 06:48:23 +03:00
parent 2ba90625ce
commit 61b1aa8e3d
13 changed files with 98 additions and 15 deletions
+17
View File
@@ -323,6 +323,21 @@ bool scripting::on_block_interact(
}
}
void scripting::on_player_tick(Player* player, int tps) {
auto args = [=](lua::State* L) {
lua::pushinteger(L, player ? player->getId() : -1);
lua::pushinteger(L, tps);
return 2;
};
for (auto& [packid, pack] : content->getPacks()) {
if (pack->worldfuncsset.onplayertick) {
lua::emit_event(
lua::get_main_state(), packid + ":.playertick", args
);
}
}
}
bool scripting::on_item_use(Player* player, const ItemDef& item) {
std::string name = item.name + ".use";
return lua::emit_event(
@@ -724,6 +739,8 @@ void scripting::load_world_script(
register_event(env, "on_block_broken", prefix + ":.blockbroken");
funcsset.onblockinteract =
register_event(env, "on_block_interact", prefix + ":.blockinteract");
funcsset.onplayertick =
register_event(env, "on_player_tick", prefix + ":.playertick");
}
void scripting::load_layout_script(