From 9d98c40528f5df63af17a798919623be332e6c37 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 9 Jul 2024 02:55:02 +0300 Subject: [PATCH] add rigidbody.set/is_vdamping --- res/modules/internal/stdcomp.lua | 6 +++++- src/logic/scripting/lua/lib__rigidbody.cpp | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/res/modules/internal/stdcomp.lua b/res/modules/internal/stdcomp.lua index c756a032..9753b297 100644 --- a/res/modules/internal/stdcomp.lua +++ b/res/modules/internal/stdcomp.lua @@ -15,11 +15,15 @@ end local Rigidbody = {__index={ is_enabled=function(self) return __rigidbody.is_enabled(self.eid) end, - set_enabled=function(self, f) return __rigidbody.set_enabled(self.eid, f) end, + set_enabled=function(self, b) return __rigidbody.set_enabled(self.eid, b) end, get_vel=function(self) return __rigidbody.get_vel(self.eid) end, set_vel=function(self, v) return __rigidbody.set_vel(self.eid, v) end, get_size=function(self) return __rigidbody.get_size(self.eid) end, set_size=function(self, v) return __rigidbody.set_size(self.eid, v) end, + get_gravity_scale=function(self) return __rigidbody.get_gravity_scale(self.eid) end, + 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, }} local function new_Rigidbody(eid) diff --git a/src/logic/scripting/lua/lib__rigidbody.cpp b/src/logic/scripting/lua/lib__rigidbody.cpp index d7f68cd6..d0cd5672 100644 --- a/src/logic/scripting/lua/lib__rigidbody.cpp +++ b/src/logic/scripting/lua/lib__rigidbody.cpp @@ -56,6 +56,20 @@ static int l_rigidbody_set_gravity_scale(lua::State* L) { return 0; } +static int l_rigidbody_is_vdamping(lua::State* L) { + if (auto entity = get_entity(L, 1)) { + return lua::pushboolean(L, entity->getRigidbody().hitbox.verticalDamping); + } + return 0; +} + +static int l_rigidbody_set_vdamping(lua::State* L) { + if (auto entity = get_entity(L, 1)) { + entity->getRigidbody().hitbox.verticalDamping = lua::toboolean(L, 2); + } + return 0; +} + const luaL_Reg rigidbodylib [] = { {"is_enabled", lua::wrap}, {"set_enabled", lua::wrap}, @@ -65,5 +79,7 @@ const luaL_Reg rigidbodylib [] = { {"set_size", lua::wrap}, {"get_gravity_scale", lua::wrap}, {"set_gravity_scale", lua::wrap}, + {"is_vdamping", lua::wrap}, + {"set_vdamping", lua::wrap}, {NULL, NULL} };