mirror of https://github.com/bjornbytes/lovr.git
Joint:isEnabled; Joint:setEnabled;
This commit is contained in:
parent
26aa87034a
commit
a7e24ab28e
|
@ -7,6 +7,7 @@ void luax_pushjoint(lua_State* L, Joint* joint) {
|
|||
case JOINT_DISTANCE: luax_pushtype(L, DistanceJoint, joint); break;
|
||||
case JOINT_HINGE: luax_pushtype(L, HingeJoint, joint); break;
|
||||
case JOINT_SLIDER: luax_pushtype(L, SliderJoint, joint); break;
|
||||
default: lovrThrow("Unreachable");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -78,12 +79,27 @@ static int l_lovrJointSetUserData(lua_State* L) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int l_lovrJointIsEnabled(lua_State* L) {
|
||||
Joint* joint = luax_checkjoint(L, 1);
|
||||
lua_pushboolean(L, lovrJointIsEnabled(joint));
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int l_lovrJointSetEnabled(lua_State* L) {
|
||||
Joint* joint = luax_checkjoint(L, 1);
|
||||
bool enable = lua_toboolean(L, 2);
|
||||
lovrJointSetEnabled(joint, enable);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define lovrJoint \
|
||||
{ "destroy", l_lovrJointDestroy }, \
|
||||
{ "getType", l_lovrJointGetType }, \
|
||||
{ "getColliders", l_lovrJointGetColliders }, \
|
||||
{ "getUserData", l_lovrJointGetUserData }, \
|
||||
{ "setUserData", l_lovrJointSetUserData }
|
||||
{ "setUserData", l_lovrJointSetUserData }, \
|
||||
{ "isEnabled", l_lovrJointIsEnabled }, \
|
||||
{ "setEnabled", l_lovrJointSetEnabled }
|
||||
|
||||
static int l_lovrBallJointGetAnchors(lua_State* L) {
|
||||
BallJoint* joint = luax_checktype(L, 1, BallJoint);
|
||||
|
|
|
@ -7,6 +7,7 @@ void luax_pushshape(lua_State* L, Shape* shape) {
|
|||
case SHAPE_BOX: luax_pushtype(L, BoxShape, shape); break;
|
||||
case SHAPE_CAPSULE: luax_pushtype(L, CapsuleShape, shape); break;
|
||||
case SHAPE_CYLINDER: luax_pushtype(L, CylinderShape, shape); break;
|
||||
default: lovrThrow("Unreachable");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -900,6 +900,18 @@ void lovrJointSetUserData(Joint* joint, void* data) {
|
|||
joint->userdata = data;
|
||||
}
|
||||
|
||||
bool lovrJointIsEnabled(Joint* joint) {
|
||||
return dJointIsEnabled(joint->id);
|
||||
}
|
||||
|
||||
void lovrJointSetEnabled(Joint* joint, bool enable) {
|
||||
if (enable) {
|
||||
dJointEnable(joint->id);
|
||||
} else {
|
||||
dJointDisable(joint->id);
|
||||
}
|
||||
}
|
||||
|
||||
BallJoint* lovrBallJointInit(BallJoint* joint, Collider* a, Collider* b, float x, float y, float z) {
|
||||
lovrAssert(a->world == b->world, "Joint bodies must exist in same World");
|
||||
joint->type = JOINT_BALL;
|
||||
|
|
|
@ -208,6 +208,8 @@ JointType lovrJointGetType(Joint* joint);
|
|||
void lovrJointGetColliders(Joint* joint, Collider** a, Collider** b);
|
||||
void* lovrJointGetUserData(Joint* joint);
|
||||
void lovrJointSetUserData(Joint* joint, void* data);
|
||||
bool lovrJointIsEnabled(Joint* joint);
|
||||
void lovrJointSetEnabled(Joint* joint, bool enable);
|
||||
|
||||
BallJoint* lovrBallJointInit(BallJoint* joint, Collider* a, Collider* b, float x, float y, float z);
|
||||
#define lovrBallJointCreate(...) lovrBallJointInit(lovrAlloc(BallJoint), __VA_ARGS__)
|
||||
|
|
Loading…
Reference in New Issue