From b1e09b6dc4d4d5440757dc4b94ce6e7d426e51bd Mon Sep 17 00:00:00 2001 From: knowledgenude <63247726+knowledgenude@users.noreply.github.com> Date: Sat, 5 Sep 2020 18:05:03 -0300 Subject: [PATCH] Set Friction Node and fix Ray Cast mask Ray Cast node was not considering masks: https://github.com/armory3d/armory/issues/1780 --- .../armory/logicnode/CastPhysicsRayNode.hx | 2 +- Sources/armory/logicnode/SetFrictionNode.hx | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 Sources/armory/logicnode/SetFrictionNode.hx diff --git a/Sources/armory/logicnode/CastPhysicsRayNode.hx b/Sources/armory/logicnode/CastPhysicsRayNode.hx index b70a0beb..efc1086b 100644 --- a/Sources/armory/logicnode/CastPhysicsRayNode.hx +++ b/Sources/armory/logicnode/CastPhysicsRayNode.hx @@ -19,7 +19,7 @@ class CastPhysicsRayNode extends LogicNode { #if arm_physics var physics = armory.trait.physics.PhysicsWorld.active; - var hit = physics.rayCast(vfrom, vto, 1, mask); + var hit = physics.rayCast(vfrom, vto, mask); var rb = (hit != null) ? hit.rb : null; if (from == 0) { // Object diff --git a/Sources/armory/logicnode/SetFrictionNode.hx b/Sources/armory/logicnode/SetFrictionNode.hx new file mode 100644 index 00000000..9101014f --- /dev/null +++ b/Sources/armory/logicnode/SetFrictionNode.hx @@ -0,0 +1,25 @@ +package armory.logicnode; + +import iron.object.Object; +import armory.trait.physics.RigidBody; + +class SetFrictionNode extends LogicNode { + + public function new(tree: LogicTree) { + super(tree); + } + + override function run(from: Int) { + var object: Object = inputs[1].get(); + if (object == null) return; + + var friction: Float = inputs[2].get(); + + #if arm_physics + var rigidBody = object.getTrait(RigidBody); + if (rigidBody != null) rigidBody.setFriction(friction); + #end + + runOutput(0); + } +}