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_DISTANCE: luax_pushtype(L, DistanceJoint, joint); break;
|
||||||
case JOINT_HINGE: luax_pushtype(L, HingeJoint, joint); break;
|
case JOINT_HINGE: luax_pushtype(L, HingeJoint, joint); break;
|
||||||
case JOINT_SLIDER: luax_pushtype(L, SliderJoint, 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;
|
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 \
|
#define lovrJoint \
|
||||||
{ "destroy", l_lovrJointDestroy }, \
|
{ "destroy", l_lovrJointDestroy }, \
|
||||||
{ "getType", l_lovrJointGetType }, \
|
{ "getType", l_lovrJointGetType }, \
|
||||||
{ "getColliders", l_lovrJointGetColliders }, \
|
{ "getColliders", l_lovrJointGetColliders }, \
|
||||||
{ "getUserData", l_lovrJointGetUserData }, \
|
{ "getUserData", l_lovrJointGetUserData }, \
|
||||||
{ "setUserData", l_lovrJointSetUserData }
|
{ "setUserData", l_lovrJointSetUserData }, \
|
||||||
|
{ "isEnabled", l_lovrJointIsEnabled }, \
|
||||||
|
{ "setEnabled", l_lovrJointSetEnabled }
|
||||||
|
|
||||||
static int l_lovrBallJointGetAnchors(lua_State* L) {
|
static int l_lovrBallJointGetAnchors(lua_State* L) {
|
||||||
BallJoint* joint = luax_checktype(L, 1, BallJoint);
|
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_BOX: luax_pushtype(L, BoxShape, shape); break;
|
||||||
case SHAPE_CAPSULE: luax_pushtype(L, CapsuleShape, shape); break;
|
case SHAPE_CAPSULE: luax_pushtype(L, CapsuleShape, shape); break;
|
||||||
case SHAPE_CYLINDER: luax_pushtype(L, CylinderShape, 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;
|
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) {
|
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");
|
lovrAssert(a->world == b->world, "Joint bodies must exist in same World");
|
||||||
joint->type = JOINT_BALL;
|
joint->type = JOINT_BALL;
|
||||||
|
|
|
@ -208,6 +208,8 @@ JointType lovrJointGetType(Joint* joint);
|
||||||
void lovrJointGetColliders(Joint* joint, Collider** a, Collider** b);
|
void lovrJointGetColliders(Joint* joint, Collider** a, Collider** b);
|
||||||
void* lovrJointGetUserData(Joint* joint);
|
void* lovrJointGetUserData(Joint* joint);
|
||||||
void lovrJointSetUserData(Joint* joint, void* data);
|
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);
|
BallJoint* lovrBallJointInit(BallJoint* joint, Collider* a, Collider* b, float x, float y, float z);
|
||||||
#define lovrBallJointCreate(...) lovrBallJointInit(lovrAlloc(BallJoint), __VA_ARGS__)
|
#define lovrBallJointCreate(...) lovrBallJointInit(lovrAlloc(BallJoint), __VA_ARGS__)
|
||||||
|
|
Loading…
Reference in New Issue