From ac2a1bcb510b7440990a3fd91329a2526d3552b5 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Mon, 10 Jun 2024 22:29:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=90=8E=E5=9D=90=E5=8A=9B?= =?UTF-8?q?=E6=9B=B2=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/event/PlayerEventHandler.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/mcreator/target/event/PlayerEventHandler.java b/src/main/java/net/mcreator/target/event/PlayerEventHandler.java index d04d6715a..7d85271ba 100644 --- a/src/main/java/net/mcreator/target/event/PlayerEventHandler.java +++ b/src/main/java/net/mcreator/target/event/PlayerEventHandler.java @@ -321,19 +321,22 @@ public class PlayerEventHandler { double recoil = player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c -> c.recoil).orElse(0d); - if (recoil >= 2) recoil = 0d; + if (recoil >= 2.5) recoil = 0d; + + double sinRes = 0; if (0 < recoil && recoil < 2) { - recoil = recoil + 0.013 * (2.5 - recoil); + recoil = recoil + 0.025; + sinRes = Math.sin(Math.PI * recoil); + } - double sinRes = 0; - sinRes = 0.9 * Math.sin(Math.PI * (2 * recoil - 1)) * (0.5 / (2 * recoil - 1)); + if (2 <= recoil && recoil < 2.5) { + recoil = recoil + 0.013; + sinRes = 0.4 * Math.sin(2 * Math.PI * recoil); + } - if (sinRes < 0){ - sinRes = 4 * sinRes; - } - - float newPitch = ((float) (player.getXRot() - 5f * recoilY * ry * (sinRes + Mth.clamp(0.8 - recoil,0,0.8)))); + if (0 < recoil && recoil < 2.5) { + float newPitch = ((float) (player.getXRot() - 6f * recoilY * ry * (sinRes + Mth.clamp(0.8 - recoil,0,0.8)))); player.setXRot(newPitch); player.xRotO = player.getXRot();