From 0acadd2e74331a31509d840bc65d74897b462f8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Br=C3=BCckner?= Date: Thu, 26 Nov 2020 10:00:35 +0100 Subject: [PATCH] Improve `Get Mouse Movement` node --- .../armory/logicnode/GetMouseMovementNode.hx | 21 +++++++++---------- .../logicnode/input/LN_get_mouse_movement.py | 13 +++++++----- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Sources/armory/logicnode/GetMouseMovementNode.hx b/Sources/armory/logicnode/GetMouseMovementNode.hx index 449a3b4a..a1b58a04 100644 --- a/Sources/armory/logicnode/GetMouseMovementNode.hx +++ b/Sources/armory/logicnode/GetMouseMovementNode.hx @@ -1,29 +1,28 @@ package armory.logicnode; -import iron.math.Vec4; +import kha.FastFloat; class GetMouseMovementNode extends LogicNode { - var coords = new Vec4(); - public function new(tree: LogicTree) { super(tree); } override function get(from: Int): Dynamic { var mouse = iron.system.Input.getMouse(); - var multX: Float = inputs[0].get(); - var multY: Float = inputs[1].get(); - var multDelta: Float = inputs[2].get(); + + var multX: FastFloat = inputs[0].get(); + var multY: FastFloat = inputs[1].get(); + var multWheelDelta: FastFloat = inputs[2].get(); return switch (from) { case 0: mouse.movementX; case 1: mouse.movementY; - case 2: mouse.wheelDelta; - case 3: mouse.movementX * multX; - case 4: mouse.movementY * multY; - case 5: mouse.wheelDelta * multDelta; - default: null; + case 2: mouse.movementX * multX; + case 3: mouse.movementY * multY; + case 4: mouse.wheelDelta; + case 5: mouse.wheelDelta * multWheelDelta; + default: 0; } } } diff --git a/blender/arm/logicnode/input/LN_get_mouse_movement.py b/blender/arm/logicnode/input/LN_get_mouse_movement.py index b34553c1..ee217b5c 100644 --- a/blender/arm/logicnode/input/LN_get_mouse_movement.py +++ b/blender/arm/logicnode/input/LN_get_mouse_movement.py @@ -1,7 +1,9 @@ from arm.logicnode.arm_nodes import * + class GetMouseMovementNode(ArmLogicTreeNode): - """Returns the movement coordinates of the mouse.""" + """Get the movement coordinates of the mouse and the mouse wheel delta. + The multiplied output variants default to -1 to invert the values.""" bl_idname = 'LNGetMouseMovementNode' bl_label = 'Get Mouse Movement' arm_section = 'mouse' @@ -9,13 +11,14 @@ class GetMouseMovementNode(ArmLogicTreeNode): def init(self, context): super(GetMouseMovementNode, self).init(context) - self.add_input('NodeSocketFloat', 'X Multiplier' , default_value=-1.0) + + self.add_input('NodeSocketFloat', 'X Multiplier', default_value=-1.0) self.add_input('NodeSocketFloat', 'Y Multiplier', default_value=-1.0) - self.add_input('NodeSocketFloat', 'Delta Multiplier', default_value=-1.0) + self.add_input('NodeSocketFloat', 'Wheel Delta Multiplier', default_value=-1.0) self.add_output('NodeSocketFloat', 'X') self.add_output('NodeSocketFloat', 'Y') - self.add_output('NodeSocketInt', 'Delta') self.add_output('NodeSocketFloat', 'Multiplied X') self.add_output('NodeSocketFloat', 'Multiplied Y') - self.add_output('NodeSocketFloat', 'Multiplied Delta') + self.add_output('NodeSocketInt', 'Wheel Delta') + self.add_output('NodeSocketFloat', 'Multiplied Wheel Delta')