Body:isAwake; Body:setAwake;

This commit is contained in:
bjorn 2017-05-15 23:42:09 -06:00
parent ded5602846
commit 048b62324f
3 changed files with 29 additions and 0 deletions

View File

@ -244,6 +244,19 @@ int l_lovrBodySetSleepingAllowed(lua_State* L) {
return 0;
}
int l_lovrBodyIsAwake(lua_State* L) {
Body* body = luax_checktype(L, 1, Body);
lua_pushboolean(L, lovrBodyIsAwake(body));
return 1;
}
int l_lovrBodySetAwake(lua_State* L) {
Body* body = luax_checktype(L, 1, Body);
int awake = lua_toboolean(L, 2);
lovrBodySetAwake(body, awake);
return 0;
}
const luaL_Reg lovrBody[] = {
{ "getPosition", l_lovrBodyGetPosition },
{ "setPosition", l_lovrBodySetPosition },
@ -269,5 +282,7 @@ const luaL_Reg lovrBody[] = {
{ "getLinearVelocityFromWorldPoint", l_lovrBodyGetLinearVelocityFromWorldPoint },
{ "isSleepingAllowed", l_lovrBodyIsSleepingAllowed },
{ "setSleepingAllowed", l_lovrBodySetSleepingAllowed },
{ "isAwake", l_lovrBodyIsAwake },
{ "setAwake", l_lovrBodySetAwake },
{ NULL, NULL }
};

View File

@ -240,3 +240,15 @@ int lovrBodyIsSleepingAllowed(Body* body) {
void lovrBodySetSleepingAllowed(Body* body, int allowed) {
dBodySetAutoDisableFlag(body->id, allowed);
}
int lovrBodyIsAwake(Body* body) {
return dBodyIsEnabled(body->id);
}
void lovrBodySetAwake(Body* body, int awake) {
if (awake) {
dBodyEnable(body->id);
} else {
dBodyDisable(body->id);
}
}

View File

@ -54,3 +54,5 @@ void lovrBodyGetLinearVelocityFromLocalPoint(Body* body, float x, float y, float
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);
int lovrBodyIsAwake(Body* body);
void lovrBodySetAwake(Body* body, int awake);