diff --git a/leenkx/Sources/leenkx/logicnode/OnContactNode.hx b/leenkx/Sources/leenkx/logicnode/OnContactNode.hx index b8935e7d..e88b0f61 100644 --- a/leenkx/Sources/leenkx/logicnode/OnContactNode.hx +++ b/leenkx/Sources/leenkx/logicnode/OnContactNode.hx @@ -23,22 +23,16 @@ class OnContactNode extends LogicNode { var contact = false; -#if lnx_physics - var physics = leenkx.trait.physics.PhysicsWorld.active; - var rb1 = object1.getTrait(RigidBody); - if (rb1 != null) { - var rbs = physics.getContacts(rb1); - if (rbs != null) { - var rb2 = object2.getTrait(RigidBody); - for (rb in rbs) { - if (rb == rb2) { - contact = true; - break; - } - } + #if lnx_physics + var rb1 = leenkx.trait.physics.PhysicsWorld.getCachedRigidBody(object1); + var rb2 = leenkx.trait.physics.PhysicsWorld.getCachedRigidBody(object2); + + if (rb1 != null && rb2 != null) { + var physics = leenkx.trait.physics.PhysicsWorld.active; + var rbs = physics.getContacts(rb1); + contact = leenkx.trait.physics.PhysicsWorld.hasContactWith(rbs, rb2); } - } -#end + #end var b = false; switch (property0) {