Commit Graph

244 Commits

Author SHA1 Message Date
Bart van Strien 7dd960619d Automatically deduce the type in luax_checktype, luax_getmodule, luax_optmodule and luax_totype
--HG--
branch : dynamiccore2
2016-11-13 17:13:40 +01:00
Bart van Strien c761202486 Build type information on first use (load-time), instead of using a hardcoded list
--HG--
branch : dynamiccore2
2016-11-13 16:38:57 +01:00
Alex Szpakowski ef61573cd3 Merge default into minor
--HG--
branch : minor
2016-08-29 22:41:24 -03:00
airstruck 154f7cbc7e Support reference angle on revolute, prismatic, and weld joints (fixes #1194) 2016-08-19 14:36:36 +02:00
Alex Szpakowski e9ac008f43 Merge default into minor
--HG--
branch : minor
2016-08-13 12:41:14 -03:00
Bart van Strien 57e4ec78e3 Prevent attaching a MouseJoint to a kinematic body (fixes #1185)
It turns out, calling World:update() after attaching a MouseJoint to a
kinematic body causes an exception. Normally the wrapper catches the exception,
but somehow this exception cannot be caught. Wonderful.
2016-08-02 14:26:51 +02:00
Bart van Strien 0ce44e465d Catch possible Box2D exception in Fixture:getBoundingBox() (fixes #1196) 2016-08-02 13:07:05 +02:00
Alex Szpakowski fc2c79ad5f Add EdgeShape:set/getNext/PreviousVertex. ChainShape:setNext/PreviousVertex can now take no arguments to disable ghost vertices.
Resolves issue #1191.
2016-08-01 10:15:34 -03:00
Alex Szpakowski 3157e5df7b Added ChainShape:getNext/PreviousVertex (see issue #1191). Thanks airstruck! 2016-07-31 14:25:12 -03:00
Alex Szpakowski 55cb2fad84 Fixture:setCategory and Fixture:setMask now accept a table of categories/masks (resolves issue #1178). 2016-07-31 11:51:53 -03:00
Alex Szpakowski 0a534d4751 Fixed ChainShape:setPreviousVertex. 2016-07-28 18:08:27 -03:00
Bart van Strien 877ebbf9c9 Make WheelJoint/PrismaticJoint:getAxis return a world vector (refs #1176) 2016-07-15 12:20:58 +02:00
Bart van Strien 990839383f Merge default into minor
--HG--
branch : minor
2016-07-14 18:42:42 +02:00
Bart van Strien 65f53a491f Make MouseJoint:getBodies() return only one body (fixes #1179)
Override Joint's Body getters in MouseJoint, to make the second (user-supplied) body the first body returned, and return nil for the second (internal) body
2016-07-14 16:39:29 +02:00
airstruck 9a2f99dc3d Added 2-point version of love.physics.newRevoluteJoint (fixes #1175) 2016-07-07 21:18:35 +02:00
airstruck 24da8433d0 Expose axis vector of PrismaticJoint and WheelJoint (fixes #1176) 2016-07-07 21:13:49 +02:00
Alex Szpakowski 2e5f385be3 Merge default into minor
--HG--
branch : minor
2016-03-03 21:28:30 -04:00
Alex Szpakowski f51bbb8462 Cleaned up some StrongRef-related code. 2016-03-01 18:57:17 -04:00
Alex Szpakowski 20b77bd28c Changed World:update(dt) to default to Box2D's recommended 3 internal position iterations instead of 6. Added a new variant World:update(dt, velocityiterations, positioniterations) which lets you specify the number of velocity and position iterations Box2D performs when updating the world. The defaults are 8 and 3 respectively, higher numbers increase precision and reduce performance.
Resolves issue #1135.

--HG--
branch : minor
2016-02-14 20:06:16 -04:00
Alex Szpakowski ab4cfb4a35 Added an optional 'collideconnected' boolean argument to love.physics.newMotorJoint (resolves issue #1130). 2016-02-02 08:38:07 -04:00
Alex Szpakowski 46a2e7b85c Happy new year! 🎉 2016-01-01 00:05:06 -04:00
Alex Szpakowski 2c4e713114 Imported some of the dynamiccore branch from love-experiments:
- Type names for love's Lua objects are specified as an argument to luax_register_type, rather than being statically defined in an array.

- luax_register_type takes a variable number of method array arguments, for registering superclass methods without copying them into the subclass' method array.

Also removed most of the header declarations for wrapper functions.
2015-11-29 20:38:12 -04:00
Alex Szpakowski aca369e5d4 Fixed memory leaks in love.physics. When a World is garbage-collected it now implicitly calls World:destroy, which also destroys all Bodies, Fixtures, and Joints that belong to it. 2015-11-17 01:27:48 -04:00
Alex Szpakowski 2cce18946d Fixed objects which store Lua callback functions to avoid attempting to use dead coroutines when deleting the reference to the callback function. Should fix crashes when coroutines are mixed with those objects.
Also improved the performance of World:rayCast and World:queryBoundingBox.
2015-07-18 03:26:07 -03:00
Alex Szpakowski 64b9d40f00 Fixed World:getCallbacks and World:getContactFilter to use the active coroutine's lua state. 2015-07-17 19:00:42 -03:00
Bart van Strien 3cb777e2b7 Add basic lua 5.3 support 2015-06-16 10:25:41 +02:00
Alex Szpakowski 0f986b10aa Cleaned up some code, the 'ry' parameter of love.graphics.rectangle now defaults to the value of 'rx' rather than defaulting to 0. 2015-05-27 17:36:27 -03:00
Alex Szpakowski 34bf847913 Removed redundant definition of ChainShape:getChildCount. 2015-04-27 19:08:02 -03:00
Alex Szpakowski 6e92bd8302 Improved the argument type checking for World:setCallbacks, World:setContactFilter, World:queryBoundingBox, and World:rayCast. 2015-04-27 18:48:13 -03:00
Alex Szpakowski cf0968fc6d Avoid some VC++ compiler warnings 2015-04-02 00:28:09 -03:00
Alex Szpakowski 2f419c1c83 Replaced most cases of type bits and type name strings in love's Lua wrapper code with type id's.
--HG--
branch : minor
2015-03-01 18:32:41 -04:00
Alex Szpakowski ebc68023a7 Fix many warnings about implicit integer conversions when compiling for 64 bits.
--HG--
branch : minor
2015-02-20 01:20:08 -04:00
Alex Szpakowski cf60cf89fc De-namespaced a class, to make it less verbose. 2015-01-24 04:09:56 -04:00
Alex Szpakowski 91062a1496 Added Body/Contact/Fixture/Joint/World:isDestroyed (resolves issue #964.) 2015-01-05 00:14:41 -04:00
Alex Szpakowski c7b45b3505 Updated copyright for the new year 2014-12-31 19:32:43 -04:00
Alex Szpakowski 5fac441a51 Added Body:getJointList. 2014-11-15 01:17:20 -04:00
Alex Szpakowski 68936e6d2f Added GearJoint:getJoints (resolves issue #922.) 2014-11-14 22:06:37 -04:00
Alex Szpakowski 78d5db6981 Fixed MotorJoint:getType. 2014-11-14 21:43:22 -04:00
Alex Szpakowski 775f816304 Added Joint:getBodies (see issue #922.) 2014-11-12 17:18:50 -04:00
Alex Szpakowski 7948b11082 Updated love.physics.newPolygonShape and love.physics.newChainShape to accept a table of vertices, fixed a small memory leak if newChainShape errors, fixed the vertex order of newChainShape. 2014-09-21 03:31:36 -03:00
Alex Szpakowski da7cd267ea Changed luax_pushtype to retain the pushed object itself, but only if the object isn't in the Lua state already.
Previously, calling e.g. love.graphics.getFont() 10,000 times would retain the object 10,000 times (and release it 10,000 times when the Font object was garbage-collected in the Lua state.) Now it will only retain it once and release it once.
2014-08-09 16:04:59 -03:00
Alex Szpakowski d59c76a55f Reduced the number of explicit retain/release method calls on love objects. Less chance of bugs! 2014-08-07 14:53:17 -03:00
Alex Szpakowski c6c32dee17 Removed a piece of code I forgot to delete 2014-07-28 16:58:51 -03:00
Alex Szpakowski d52bab4221 Updated the new module changes to use more compile/link-time checking rather than runtime checking. 2014-07-21 15:12:01 -03:00
Alex Szpakowski 014b9a46e5 Updated the Lua wrapper code for modules to account for cases where the module's instance is removed from memory completely and recreated during the program's lifetime. 2014-07-21 14:52:01 -03:00
Alex Szpakowski 9ab9a393d5 Added Contact:getFixtures and Body:getContactList (see issue #905).
The list of Contacts associated with bodies changes during World:update (potentially multiple times), so you might miss collisions if you don't use the World callbacks at all.
2014-07-07 15:24:24 -03:00
Alex Szpakowski 2ae4e9cd5a Fixed a potential memory leak in the love.physics World callbacks. 2014-06-18 16:24:38 -03:00
Alex Szpakowski 431b6a56ce Added Body:getWorld (resolves issue #895) 2014-06-09 19:00:05 -03:00
Alex Szpakowski 5dd23dffd1 Added Joint:setUserData and Joint:getUserData (resolves issue #894.) 2014-06-05 20:56:43 -03:00
Alex Szpakowski dfa319e01a Replaced the EXCEPT_GUARD macro for converting love exceptions into Lua errors with the new luax_catchexcept function, which takes lambda function arguments. 2014-06-03 19:27:00 -03:00