diff --git a/src/api/types/world.c b/src/api/types/world.c index 518f30f9..1444f87f 100644 --- a/src/api/types/world.c +++ b/src/api/types/world.c @@ -20,8 +20,16 @@ int l_lovrWorldSetGravity(lua_State* L) { return 0; } +int l_lovrWorldUpdate(lua_State* L) { + World* world = luax_checktype(L, 1, World); + float dt = luaL_checknumber(L, 2); + lovrWorldUpdate(world, dt); + return 0; +} + const luaL_Reg lovrWorld[] = { { "getGravity", l_lovrWorldGetGravity }, { "setGravity", l_lovrWorldSetGravity }, + { "update", l_lovrWorldUpdate }, { NULL, NULL } }; diff --git a/src/physics/physics.c b/src/physics/physics.c index a6645bdb..ef7ef8d3 100644 --- a/src/physics/physics.c +++ b/src/physics/physics.c @@ -41,3 +41,7 @@ void lovrWorldGetGravity(World* world, float* x, float* y, float* z) { void lovrWorldSetGravity(World* world, float x, float y, float z) { dWorldSetGravity(world->id, x, y, z); } + +void lovrWorldUpdate(World* world, float dt) { + dWorldQuickStep(world->id, dt); +} diff --git a/src/physics/physics.h b/src/physics/physics.h index ba2f2db5..a3417caa 100644 --- a/src/physics/physics.h +++ b/src/physics/physics.h @@ -13,3 +13,4 @@ World* lovrWorldCreate(); void lovrWorldDestroy(const Ref* ref); void lovrWorldGetGravity(World* world, float* x, float* y, float* z); void lovrWorldSetGravity(World* world, float x, float y, float z); +void lovrWorldUpdate(World* world, float dt);