Body:isSleepingAllowed; Body:setSleepingAllowed;

This commit is contained in:
bjorn 2017-05-15 23:40:30 -06:00
parent 0b6788dfcb
commit ded5602846
3 changed files with 25 additions and 0 deletions

View File

@ -231,6 +231,19 @@ int l_lovrBodyGetLinearVelocityFromWorldPoint(lua_State* L) {
return 3;
}
int l_lovrBodyIsSleepingAllowed(lua_State* L) {
Body* body = luax_checktype(L, 1, Body);
lua_pushboolean(L, lovrBodyIsSleepingAllowed(body));
return 1;
}
int l_lovrBodySetSleepingAllowed(lua_State* L) {
Body* body = luax_checktype(L, 1, Body);
int allowed = lua_toboolean(L, 2);
lovrBodySetSleepingAllowed(body, allowed);
return 0;
}
const luaL_Reg lovrBody[] = {
{ "getPosition", l_lovrBodyGetPosition },
{ "setPosition", l_lovrBodySetPosition },
@ -254,5 +267,7 @@ const luaL_Reg lovrBody[] = {
{ "getWorldVector", l_lovrBodyGetWorldVector },
{ "getLinearVelocityFromLocalPoint", l_lovrBodyGetLinearVelocityFromLocalPoint },
{ "getLinearVelocityFromWorldPoint", l_lovrBodyGetLinearVelocityFromWorldPoint },
{ "isSleepingAllowed", l_lovrBodyIsSleepingAllowed },
{ "setSleepingAllowed", l_lovrBodySetSleepingAllowed },
{ NULL, NULL }
};

View File

@ -232,3 +232,11 @@ void lovrBodyGetLinearVelocityFromWorldPoint(Body* body, float wx, float wy, flo
*vy = velocity[1];
*vz = velocity[2];
}
int lovrBodyIsSleepingAllowed(Body* body) {
return dBodyGetAutoDisableFlag(body->id);
}
void lovrBodySetSleepingAllowed(Body* body, int allowed) {
dBodySetAutoDisableFlag(body->id, allowed);
}

View File

@ -52,3 +52,5 @@ void lovrBodyGetLocalVector(Body* body, float wx, float wy, float wz, float* x,
void lovrBodyGetWorldVector(Body* body, float x, float y, float z, float* wx, float* wy, float* wz);
void lovrBodyGetLinearVelocityFromLocalPoint(Body* body, float x, float y, float z, float* vx, float* vy, float* vz);
void lovrBodyGetLinearVelocityFromWorldPoint(Body* body, float wx, float wy, float wz, float* vx, float* vy, float* vz);
int lovrBodyIsSleepingAllowed(Body* body);
void lovrBodySetSleepingAllowed(Body* body, int allowed);