World:isSleepingAllowed; World:setSleepingAllowed;

This commit is contained in:
bjorn 2017-05-15 23:08:27 -06:00
parent ca7b93e150
commit c06a13f124
3 changed files with 25 additions and 0 deletions

View File

@ -54,6 +54,19 @@ int l_lovrWorldSetAngularDamping(lua_State* L) {
return 0;
}
int l_lovrWorldIsSleepingAllowed(lua_State* L) {
World* world = luax_checktype(L, 1, World);
lua_pushboolean(L, lovrWorldIsSleepingAllowed(world));
return 1;
}
int l_lovrWorldSetSleepingAllowed(lua_State* L) {
World* world = luax_checktype(L, 1, World);
int allowed = lua_toboolean(L, 2);
lovrWorldSetSleepingAllowed(world, allowed);
return 0;
}
int l_lovrWorldUpdate(lua_State* L) {
World* world = luax_checktype(L, 1, World);
float dt = luaL_checknumber(L, 2);
@ -68,6 +81,8 @@ const luaL_Reg lovrWorld[] = {
{ "setLinearDamping", l_lovrWorldSetLinearDamping },
{ "getAngularDamping", l_lovrWorldGetAngularDamping },
{ "setAngularDamping", l_lovrWorldSetAngularDamping },
{ "isSleepingAllowed", l_lovrWorldIsSleepingAllowed },
{ "setSleepingAllowed", l_lovrWorldSetSleepingAllowed },
{ "update", l_lovrWorldUpdate },
{ NULL, NULL }
};

View File

@ -62,6 +62,14 @@ void lovrWorldSetAngularDamping(World* world, float damping, float threshold) {
dWorldSetAngularDampingThreshold(world->id, threshold);
}
int lovrWorldIsSleepingAllowed(World* world) {
return dWorldGetAutoDisableFlag(world->id);
}
void lovrWorldSetSleepingAllowed(World* world, int allowed) {
dWorldSetAutoDisableFlag(world->id, allowed);
}
void lovrWorldUpdate(World* world, float dt) {
dWorldQuickStep(world->id, dt);
}

View File

@ -17,4 +17,6 @@ void lovrWorldGetLinearDamping(World* world, float* damping, float* threshold);
void lovrWorldSetLinearDamping(World* world, float damping, float threshold);
void lovrWorldGetAngularDamping(World* world, float* damping, float* threshold);
void lovrWorldSetAngularDamping(World* world, float damping, float threshold);
int lovrWorldIsSleepingAllowed(World* world);
void lovrWorldSetSleepingAllowed(World* world, int allowed);
void lovrWorldUpdate(World* world, float dt);