diff --git a/src/modules/physics/box2d/RopeJoint.cpp b/src/modules/physics/box2d/RopeJoint.cpp index 8db662a09..53d7677d6 100644 --- a/src/modules/physics/box2d/RopeJoint.cpp +++ b/src/modules/physics/box2d/RopeJoint.cpp @@ -59,6 +59,10 @@ float RopeJoint::getMaxLength() const return Physics::scaleUp(joint->GetMaxLength()); } +void RopeJoint::setMaxLength(float maxLength) +{ + joint->SetMaxLength(Physics::scaleDown(maxLength)); +} } // box2d } // physics diff --git a/src/modules/physics/box2d/RopeJoint.h b/src/modules/physics/box2d/RopeJoint.h index 56d00bb20..926da9ac0 100644 --- a/src/modules/physics/box2d/RopeJoint.h +++ b/src/modules/physics/box2d/RopeJoint.h @@ -50,6 +50,7 @@ public: * Gets the maximum length of the rope. **/ float getMaxLength() const; + void setMaxLength(float length); private: // The Box2D RopeJoint object. diff --git a/src/modules/physics/box2d/wrap_RopeJoint.cpp b/src/modules/physics/box2d/wrap_RopeJoint.cpp index 926354a55..0fe233e1e 100644 --- a/src/modules/physics/box2d/wrap_RopeJoint.cpp +++ b/src/modules/physics/box2d/wrap_RopeJoint.cpp @@ -42,9 +42,18 @@ int w_RopeJoint_getMaxLength(lua_State *L) return 1; } +int w_RopeJoint_setMaxLength(lua_State *L) +{ + RopeJoint *t = luax_checkropejoint(L, 1); + float arg1 = (float)luaL_checknumber(L, 2); + t->setMaxLength(arg1); + return 0; +} + static const luaL_Reg w_RopeJoint_functions[] = { { "getMaxLength", w_RopeJoint_getMaxLength }, + { "setMaxLength", w_RopeJoint_setMaxLength }, { 0, 0 } };