修复动画bug

This commit is contained in:
Atsuihsio 2024-06-03 01:11:06 +08:00
parent 6b8f88e981
commit 1381476c7e
2 changed files with 8 additions and 6 deletions

View file

@ -424,11 +424,11 @@ public class ClientEventHandler {
(pose * (4.34 * Math.pow(data.getDouble("firetime"), 2) - 6.5 * data.getDouble("firetime") + 2.167 + data.getDouble("firepos2")))); (pose * (4.34 * Math.pow(data.getDouble("firetime"), 2) - 6.5 * data.getDouble("firetime") + 2.167 + data.getDouble("firepos2"))));
} }
if (0 < data.getDouble("fire_rotx_time") && data.getDouble("fire_rotx_time") < 1.8) { if (0 < data.getDouble("fire_rotx_time") && data.getDouble("fire_rotx_time") < 1.732) {
data.putDouble("fire_rotx_time", (data.getDouble("fire_rotx_time") + 0.12 * (1.9 - data.getDouble("fire_rotx_time")) * times)); data.putDouble("fire_rotx_time", (data.getDouble("fire_rotx_time") + 0.12 * (1.9 - data.getDouble("fire_rotx_time")) * times));
} }
if (0 < data.getDouble("fire_rotx_time") && data.getDouble("fire_rotx_time") < 1.8) { if (0 < data.getDouble("fire_rotx_time") && data.getDouble("fire_rotx_time") < 1.732) {
data.putDouble("fire_rot", data.putDouble("fire_rot",
(pose * (1 / 6.3 * (data.getDouble("fire_rotx_time") - 0.5)) * Math.sin(6.3 * (data.getDouble("fire_rotx_time") - 0.5)) * (3 - Math.pow(data.getDouble("fire_rotx_time") , 2)))); (pose * (1 / 6.3 * (data.getDouble("fire_rotx_time") - 0.5)) * Math.sin(6.3 * (data.getDouble("fire_rotx_time") - 0.5)) * (3 - Math.pow(data.getDouble("fire_rotx_time") , 2))));
if ((capability.orElse(new TargetModVariables.PlayerVariables())).recoilHorizon > 0) { if ((capability.orElse(new TargetModVariables.PlayerVariables())).recoilHorizon > 0) {
@ -450,8 +450,9 @@ public class ClientEventHandler {
if (data.getDouble("firetime") >= 1) { if (data.getDouble("firetime") >= 1) {
data.putDouble("firetime", 0); data.putDouble("firetime", 0);
} }
if (data.getDouble("fire_rotx_time") >= 1.8) { if (data.getDouble("fire_rotx_time") >= 1.732) {
data.putDouble("fire_rotx_time", 0); data.putDouble("fire_rotx_time", 0);
data.putDouble("fire_rot", 0);
} }
} }

View file

@ -10,6 +10,7 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items; import net.minecraft.world.item.Items;
@ -325,12 +326,12 @@ public class PlayerEventHandler {
if (recoil >= 2) recoil = 0d; if (recoil >= 2) recoil = 0d;
if (0 < recoil && recoil < 2) { if (0 < recoil && recoil < 2) {
recoil = recoil + 0.013 * (2.1 - recoil); recoil = recoil + 0.017 * (2.1 - recoil);
double sinRes = 0; double sinRes = 0;
sinRes = 0.35 * Math.sin(Math.PI * (1.5 * recoil)) * (3 - Math.pow(recoil , 2)) + 0.046; sinRes = 0.35 * Math.sin(Math.PI * (1.5 * recoil)) * (3 - Math.pow(recoil , 2)) + 0.044;
float newPitch = ((float) (player.getXRot() - 7.5f * recoilY * ry * sinRes)); float newPitch = ((float) (player.getXRot() - 7.5f * recoilY * ry * (sinRes + Mth.clamp(0.75 - recoil,0,0.5))));
player.setXRot(newPitch); player.setXRot(newPitch);
player.xRotO = player.getXRot(); player.xRotO = player.getXRot();