From 4b75eab7bbce3c9c0350e32ce3de9babb1ff31f1 Mon Sep 17 00:00:00 2001 From: isXander Date: Tue, 11 Jul 2023 22:06:21 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20Improve=20feel=20of=20keyb?= =?UTF-8?q?oard-like=20movement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ingame/ControllerPlayerMovement.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/dev/isxander/controlify/ingame/ControllerPlayerMovement.java b/src/main/java/dev/isxander/controlify/ingame/ControllerPlayerMovement.java index f91807d..1141c95 100644 --- a/src/main/java/dev/isxander/controlify/ingame/ControllerPlayerMovement.java +++ b/src/main/java/dev/isxander/controlify/ingame/ControllerPlayerMovement.java @@ -36,16 +36,18 @@ public class ControllerPlayerMovement extends Input { this.forwardImpulse = bindings.WALK_FORWARD.state() - bindings.WALK_BACKWARD.state(); this.leftImpulse = bindings.WALK_LEFT.state() - bindings.WALK_RIGHT.state(); - this.up = bindings.WALK_FORWARD.state() > 0; - this.down = bindings.WALK_BACKWARD.state() > 0; - this.left = bindings.WALK_LEFT.state() > 0; - this.right = bindings.WALK_RIGHT.state() > 0; - if (Controlify.instance().config().globalSettings().keyboardMovement) { - this.forwardImpulse = Math.signum(this.forwardImpulse); - this.leftImpulse = Math.signum(this.leftImpulse); + float threshold = controller.config().buttonActivationThreshold; + + this.forwardImpulse = Math.abs(this.forwardImpulse) >= threshold ? Math.copySign(1, this.forwardImpulse) : 0; + this.leftImpulse = Math.abs(this.leftImpulse) >= threshold ? Math.copySign(1, this.leftImpulse) : 0; } + this.up = this.forwardImpulse > 0; + this.down = this.forwardImpulse < 0; + this.left = this.leftImpulse > 0; + this.right = this.leftImpulse < 0; + if (slowDown) { this.leftImpulse *= movementMultiplier; this.forwardImpulse *= movementMultiplier;