From 0f2717850e442bdbb36e3802063e64aea58bf013 Mon Sep 17 00:00:00 2001 From: bjorn Date: Thu, 4 Apr 2024 21:52:51 -0700 Subject: [PATCH] Collider shape is required I think; Jolt doesn't really support bodies without shapes. --- src/api/l_physics_collider.c | 14 +++----------- src/modules/physics/physics_jolt.c | 10 ---------- 2 files changed, 3 insertions(+), 21 deletions(-) diff --git a/src/api/l_physics_collider.c b/src/api/l_physics_collider.c index 48c262f3..29ee550c 100644 --- a/src/api/l_physics_collider.c +++ b/src/api/l_physics_collider.c @@ -27,22 +27,14 @@ static int l_lovrColliderGetWorld(lua_State* L) { static int l_lovrColliderGetShape(lua_State* L) { Collider* collider = luax_checktype(L, 1, Collider); Shape* shape = lovrColliderGetShape(collider); - if (shape) { - luax_pushshape(L, shape); - } else { - lua_pushnil(L); - } + luax_pushshape(L, shape); return 1; } static int l_lovrColliderSetShape(lua_State* L) { Collider* collider = luax_checktype(L, 1, Collider); - if (lua_isnoneornil(L, 2)) { - lovrColliderSetShape(collider, NULL); - } else { - Shape* shape = luax_checkshape(L, 2); - lovrColliderSetShape(collider, shape); - } + Shape* shape = luax_checkshape(L, 2); + lovrColliderSetShape(collider, shape); return 0; } diff --git a/src/modules/physics/physics_jolt.c b/src/modules/physics/physics_jolt.c index 1ec79027..94e42cde 100644 --- a/src/modules/physics/physics_jolt.c +++ b/src/modules/physics/physics_jolt.c @@ -474,12 +474,6 @@ void lovrColliderSetShape(Collider* collider, Shape* shape) { } void lovrColliderGetShapeOffset(Collider* collider, float* position, float* orientation) { - if (!collider->shape) { - vec3_set(position, 0.f, 0.f, 0.f); - quat_identity(orientation); - return; - } - const JPH_Shape* shape = JPH_BodyInterface_GetShape(collider->world->body_interface, collider->id); if (JPH_Shape_GetSubType(shape) == JPH_ShapeSubType_RotatedTranslated) { @@ -496,10 +490,6 @@ void lovrColliderGetShapeOffset(Collider* collider, float* position, float* orie } void lovrColliderSetShapeOffset(Collider* collider, float* position, float* orientation) { - if (!collider->shape) { - return; - } - const JPH_Shape* shape = JPH_BodyInterface_GetShape(collider->world->body_interface, collider->id); if (JPH_Shape_GetSubType(shape) == JPH_ShapeSubType_RotatedTranslated) {