From 330892bbcdb67bf09a8d1c48f4bd764354bfb0ef Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 25 Jun 2024 19:09:09 +0300 Subject: [PATCH] update player.drop callback --- res/content/base/scripts/hud.lua | 2 +- src/logic/scripting/lua/libplayer.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/res/content/base/scripts/hud.lua b/res/content/base/scripts/hud.lua index e33f5a0f..9807e8b2 100644 --- a/res/content/base/scripts/hud.lua +++ b/res/content/base/scripts/hud.lua @@ -3,6 +3,6 @@ function on_hud_open() local pid = hud.get_player() local pvel = {player.get_vel(pid)} local eid = entity.test() - entity.set_vel(eid, pvel) + entity.set_vel(eid, vec3.add(vec3.mul(player.get_dir(pid), {8, 8, 8}), vec3.add(pvel, {0, 3, 0}))) end) end diff --git a/src/logic/scripting/lua/libplayer.cpp b/src/logic/scripting/lua/libplayer.cpp index b9315de7..20640fd4 100644 --- a/src/logic/scripting/lua/libplayer.cpp +++ b/src/logic/scripting/lua/libplayer.cpp @@ -78,6 +78,13 @@ static int l_player_set_rot(lua::State* L) { return 0; } +static int l_player_get_dir(lua::State* L) { + if (auto player = get_player(L, 1)) { + return lua::pushvec3_arr(L, player->camera->front); + } + return 0; +} + static int l_player_get_inv(lua::State* L) { auto player = get_player(L, 1); if (!player) { @@ -133,6 +140,7 @@ const luaL_Reg playerlib [] = { {"set_vel", lua::wrap}, {"get_rot", lua::wrap}, {"set_rot", lua::wrap}, + {"get_dir", lua::wrap}, {"get_inventory", lua::wrap}, {"is_flight", lua::wrap}, {"set_flight", lua::wrap},