From bf93e90921868b33014b0e7fad269a750670d2fa Mon Sep 17 00:00:00 2001 From: James Hall Date: Sat, 5 Oct 2024 14:40:00 +0100 Subject: [PATCH] feat: ctrl + jump for look based flight --- .../mc/duzo/timeless/power/impl/FlightPower.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/mc/duzo/timeless/power/impl/FlightPower.java b/src/main/java/mc/duzo/timeless/power/impl/FlightPower.java index 404021b..a622143 100644 --- a/src/main/java/mc/duzo/timeless/power/impl/FlightPower.java +++ b/src/main/java/mc/duzo/timeless/power/impl/FlightPower.java @@ -89,7 +89,17 @@ private Vec3d getVerticalVelocity(ServerPlayerEntity player) { Vec3d change = new Vec3d(0, 0, 0); if (ServerKeybind.get(player).isJumping()) { - return change.add(0, (getSuit(player).getVerticalFlightModifier(player.isSprinting()) / 100f), 0).add(0, player.getVelocity().y, 0); + boolean isPressingMovement = ServerKeybind.get(player).isMovingForward() || ServerKeybind.get(player).isMovingBackward() || ServerKeybind.get(player).isMovingRight() || ServerKeybind.get(player).isMovingLeft(); + if (!(isPressingMovement) || !(player.isSprinting())) { // just move straight up + return change.add(0, (getSuit(player).getVerticalFlightModifier(player.isSprinting()) / 100f), 0).add(0, player.getVelocity().y, 0); + } + + double multiplier = (getSuit(player).getHorizontalFlightModifier(player.isSprinting()) / 10f); + + float i = -player.getPitch() / 90; + change = change.add(0, (i * (multiplier * ((i < 0) ? 1 : 1))), 0); + + return change; } double yVelocity = player.getVelocity().y;