From 3d60e1432ec43ade4aa61b5a70dd6b8975417e9f Mon Sep 17 00:00:00 2001 From: Alexander Date: Wed, 24 Apr 2019 21:16:08 -0400 Subject: updates --- src/shared/lua_api/phys/bcollider.cpp | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/shared/lua_api/phys/bcollider.cpp (limited to 'src/shared/lua_api/phys/bcollider.cpp') diff --git a/src/shared/lua_api/phys/bcollider.cpp b/src/shared/lua_api/phys/bcollider.cpp new file mode 100644 index 0000000..356c504 --- /dev/null +++ b/src/shared/lua_api/phys/bcollider.cpp @@ -0,0 +1,44 @@ +extern "C" { + #include + #include + #include +} +#include +#include +#include "bcollider.hpp" + + +/*Collider things from lua have the form of: +{ + type = "ghost" | "multi" | "rigidbody" | "softbody" + collider = ud_btCollisionObject, + node = ud_ISceneNode, --Optional, on client +} +*/ +btCollisionObject* popCollider(lua_State *L){ + lua_getfield(L,-1,"collider"); + btCollisionObject *r = (btCollisionObject*)lua_touserdata(L,-1); + lua_pop(L,2); + return r; +} + +/*** +Activates this object. +If this object was sleeping, it will move again. If you are using +applyforce or setvelocity, you will need to activate() the rigidbody for it +to move. +@function collider:activate() +*/ +//collider:activate() +int activate(lua_State *L){ + btCollisionObject *r = popCollider(L); + + r->activate(); + + return 0; +} + +extern const luaL_reg bcollider_m[] = { + {"activate", activate}, + {NULL, NULL} +}; -- cgit v1.2.3-70-g09d2