diff --git a/res/modules/internal/stdcomp.lua b/res/modules/internal/stdcomp.lua index fd6a8039..0754c5a4 100644 --- a/res/modules/internal/stdcomp.lua +++ b/res/modules/internal/stdcomp.lua @@ -24,6 +24,7 @@ local Rigidbody = {__index={ set_gravity_scale=function(self, s) return __rigidbody.set_gravity_scale(self.eid, s) end, is_vdamping=function(self) return __rigidbody.is_vdamping(self.eid) end, set_vdamping=function(self, b) return __rigidbody.set_vdamping(self.eid, b) end, + is_grounded=function(self) return __rigidbody.is_grounded(self.eid) end, }} local function new_Rigidbody(eid) diff --git a/src/logic/scripting/lua/lib__rigidbody.cpp b/src/logic/scripting/lua/lib__rigidbody.cpp index d0cd5672..12768f15 100644 --- a/src/logic/scripting/lua/lib__rigidbody.cpp +++ b/src/logic/scripting/lua/lib__rigidbody.cpp @@ -70,6 +70,13 @@ static int l_rigidbody_set_vdamping(lua::State* L) { return 0; } +static int l_rigidbody_is_grounded(lua::State* L) { + if (auto entity = get_entity(L, 1)) { + return lua::pushboolean(L, entity->getRigidbody().hitbox.grounded); + } + return 0; +} + const luaL_Reg rigidbodylib [] = { {"is_enabled", lua::wrap}, {"set_enabled", lua::wrap}, @@ -81,5 +88,6 @@ const luaL_Reg rigidbodylib [] = { {"set_gravity_scale", lua::wrap}, {"is_vdamping", lua::wrap}, {"set_vdamping", lua::wrap}, + {"is_grounded", lua::wrap}, {NULL, NULL} };