优化瞄准动画相关代码

This commit is contained in:
Atsuihsio 2024-09-19 21:38:27 +08:00
parent 95e9f1e37e
commit ecce390148
31 changed files with 127 additions and 148 deletions

View file

@ -45,9 +45,9 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.97f * (float) zp);
gun.setPosY(0.011f * (float) zp - (float) (0.2f * zpz));

View file

@ -41,13 +41,12 @@ public class Aa12ItemModel extends GeoModel<Aa12Item> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.105f * (float) zp);
gun.setPosY(0.17f * (float) zp - (float) (0.2f * zpz));
gun.setPosZ(0.1f * (float) zp + (float) (0.3f * zpz));
gun.setRotZ((float) (0.02f * zp));
gun.setScaleZ(1f - (0.4f * (float) zp));

View file

@ -40,9 +40,9 @@ public class AbekiriItemModel extends GeoModel<AbekiriItem> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.45f * (float) zp);

View file

@ -79,9 +79,9 @@ public class BocekItemModel extends GeoModel<BocekItem> {
deng3.setPosZ(0.05f * (float) bp);
deng.setScaleZ(1f + (0.07f * (float) bp));
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
lh.setRotX(0.2f * (float) zp);
shen_pos.setPosX(-3.4f * (float) zp);

View file

@ -44,9 +44,9 @@ public class DevotionItemModel extends GeoModel<DevotionItem> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.17f * (float) zp);

View file

@ -43,9 +43,9 @@ public class Glock17ItemModel extends GeoModel<Glock17Item> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(-1.34f * (float) zp);

View file

@ -51,9 +51,9 @@ public class Glock18ItemModel extends GeoModel<Glock18Item> {
switch_.setRotX(0);
}
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(-1.34f * (float) zp);

View file

@ -42,9 +42,9 @@ public class Hk416ItemModel extends GeoModel<Hk416Item> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(3.34f * (float) zp);
gun.setPosY(0.54f * (float) zp - (float) (0.2f * zpz));

View file

@ -39,9 +39,9 @@ public class HuntingRifleItemModel extends GeoModel<HuntingRifleItem> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.95f * (float) zp);

View file

@ -41,9 +41,9 @@ public class JavelinItemModel extends GeoModel<JavelinItem> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.66f * (float) zp + (float) (0.2f * zpz));
gun.setPosY(5.5f * (float) zp + (float) (0.8f * zpz));

View file

@ -53,9 +53,9 @@ public class K98ItemModel extends GeoModel<K98Item> {
clip.setScaleZ(1);
}
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.11f * (float) zp);
gun.setPosY(1.52f * (float) zp - (float) (0.2f * zpz));

View file

@ -43,9 +43,9 @@ public class M1911ItemModel extends GeoModel<M1911Item> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.86f * (float) zp);

View file

@ -41,9 +41,9 @@ public class M4ItemModel extends GeoModel<M4Item> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.935f * (float) zp);

View file

@ -84,9 +84,9 @@ public class M60ItemModel extends GeoModel<M60Item> {
b1.setScaleZ(0);
}
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(3.74f * (float) zp);

View file

@ -41,9 +41,9 @@ public class M79ItemModel extends GeoModel<M79Item> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.2f * (float) zp);

View file

@ -41,9 +41,9 @@ public class M870ItemModel extends GeoModel<M870Item> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.7f * (float) zp);

View file

@ -57,9 +57,9 @@ public class M98bItemModel extends GeoModel<M98bItem> {
}
shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).recoilHorizon * fp));
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.245f * (float) zp);

View file

@ -40,9 +40,9 @@ public class MarlinItemModel extends GeoModel<MarlinItem> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.712f * (float) zp);

View file

@ -51,9 +51,9 @@ public class Mk14ItemModel extends GeoModel<Mk14Item> {
r.setRotX(-1.5f);
}
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(3.105f * (float) zp);

View file

@ -47,9 +47,9 @@ public class MosinNagantItemModel extends GeoModel<MosinNagantItem> {
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.105f * (float) zp);
gun.setPosY(0.766f * (float) zp - (float) (0.2f * zpz));

View file

@ -66,9 +66,9 @@ public class Ntw20Model extends GeoModel<Ntw20Item> {
shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).recoilHorizon * fp));
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(4.54f * (float) zp);

View file

@ -42,9 +42,9 @@ public class Qbz95ItemModel extends GeoModel<Qbz95Item> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(3.73f * (float) zp);
gun.setPosY(-0.5f * (float) zp - (float) (0.2f * zpz));

View file

@ -62,9 +62,9 @@ public class RpgItemModel extends GeoModel<RpgItem> {
}
shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).recoilHorizon * fp));
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(0.91f * (float) zp);
gun.setPosY(-0.04f * (float) zp - (float) (0.2f * zpz));

View file

@ -45,9 +45,9 @@ public class RpkItemModel extends GeoModel<RpkItem> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.69f * (float) zp);

View file

@ -44,9 +44,9 @@ public class SentinelItemModel extends GeoModel<SentinelItem> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.928f * (float) zp);

View file

@ -47,9 +47,9 @@ public class SksItemModel extends GeoModel<SksItem> {
bolt.setPosZ(2.5f);
}
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.53f * (float) zp);

View file

@ -51,9 +51,9 @@ public class SvdItemModel extends GeoModel<SvdItem> {
bolt.setPosZ(3.25f);
}
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.02f * (float) zp);

View file

@ -83,9 +83,9 @@ public class TaserItemModel extends GeoModel<TaserItem> {
shen.setRotY(0.02f * (float) fr);
shen.setRotZ(-0.02f * (float) (fp + 1.3 * fr));
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.82f * (float) zp);

View file

@ -39,9 +39,9 @@ public class TracheliumItemModel extends GeoModel<Trachelium> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(1.48f * (float) zp);

View file

@ -53,9 +53,9 @@ public class VectorItemModel extends GeoModel<VectorItem> {
kmj.setRotX(0);
}
double zt = ClientEventHandler.getZoom_time();
double zp = ClientEventHandler.getZoom_pos();
double zpz = ClientEventHandler.getZoom_pos_z();
double zt = ClientEventHandler.getZoomTime();
double zp = ClientEventHandler.getZoomPos();
double zpz = ClientEventHandler.getZoomPosZ();
gun.setPosX(2.35f * (float) zp);

View file

@ -34,9 +34,9 @@ import static net.mcreator.superbwarfare.entity.DroneEntity.ROT_Z;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT)
public class ClientEventHandler {
protected static double zoom_time = 0;
protected static double zoom_pos = 0;
protected static double zoom_pos_z = 0;
protected static double zoomTime = 0;
protected static double zoomPos = 0;
protected static double zoomPosZ = 0;
@SubscribeEvent
public static void handleWeaponTurn(RenderHandEvent event) {
@ -49,9 +49,9 @@ public class ClientEventHandler {
float yRotOffset = Mth.lerp(event.getPartialTick(), player.yBobO, player.yBob);
float xRot = player.getViewXRot(event.getPartialTick()) - xRotOffset;
float yRot = player.getViewYRot(event.getPartialTick()) - yRotOffset;
data.putDouble("xRot", Mth.clamp(0.05 * xRot, -5, 5) * (1 - 0.75 * zoom_time));
data.putDouble("yRot", Mth.clamp(0.05 * yRot, -10, 10) * (1 - 0.75 * zoom_time));
data.putDouble("zRot", Mth.clamp(0.1 * yRot, -10, 10) * (1 - zoom_time));
data.putDouble("xRot", Mth.clamp(0.05 * xRot, -5, 5) * (1 - 0.75 * zoomTime));
data.putDouble("yRot", Mth.clamp(0.05 * yRot, -10, 10) * (1 - 0.75 * zoomTime));
data.putDouble("zRot", Mth.clamp(0.1 * yRot, -10, 10) * (1 - zoomTime));
data.putDouble("droneCameraRotX", Mth.clamp(0.25f * xRot, -10, 10));
data.putDouble("droneCameraRotY", Mth.clamp(0.25f * yRot, -20, 10));
@ -77,7 +77,6 @@ public class ClientEventHandler {
}
if (level != null && entity instanceof LivingEntity living && living.getMainHandItem().is(ModTags.Items.GUN)) {
handleWeaponCrossHair(living);
handleWeaponSway(living);
handleWeaponMove(living);
handleWeaponZoom();
@ -175,25 +174,6 @@ public class ClientEventHandler {
}
}
private static void handleWeaponCrossHair(LivingEntity entity) {
// if (entity.getMainHandItem().is(ModTags.Items.GUN)) {
//
// float times = 3 * Minecraft.getInstance().getDeltaFrameTime();
// var data = entity.getPersistentData();
// ItemStack stack = entity.getMainHandItem();
// boolean zoom = GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS;
// double spread = stack.getOrCreateTag().getDouble("spread");
// double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
// double gunSpread = (float) (zoom ? zoomSpread : spread);
//
// if (data.getDouble("crosshair") > gunSpread) {
// data.putDouble("crosshair", data.getDouble("crosshair") - 0.05 * Math.pow(gunSpread - data.getDouble("crosshair"), 2) * times);
// } else {
// data.putDouble("crosshair", data.getDouble("crosshair") + 0.05 * Math.pow(gunSpread - data.getDouble("crosshair"), 2) * times);
// }
// }
}
private static void handleWeaponSway(LivingEntity entity) {
if (entity.getMainHandItem().is(ModTags.Items.GUN)) {
float times = 2 * Minecraft.getInstance().getDeltaFrameTime();
@ -209,8 +189,8 @@ public class ClientEventHandler {
}
data.putDouble("sway_time", data.getDouble("sway_time") + 0.05 * times);
data.putDouble("x", (pose * -0.008 * Math.sin(data.getDouble("sway_time")) * (1 - 0.95 * zoom_time)));
data.putDouble("y", (pose * 0.125 * Math.sin(data.getDouble("sway_time") - 1.585) * (1 - 0.95 * zoom_time)) - 3 * data.getDouble("gun_move_rotZ"));
data.putDouble("x", (pose * -0.008 * Math.sin(data.getDouble("sway_time")) * (1 - 0.95 * zoomTime)));
data.putDouble("y", (pose * 0.125 * Math.sin(data.getDouble("sway_time") - 1.585) * (1 - 0.95 * zoomTime)) - 3 * data.getDouble("gun_move_rotZ"));
}
}
@ -230,7 +210,7 @@ public class ClientEventHandler {
on_ground = 0.001;
}
if (Minecraft.getInstance().options.keyUp.isDown() && data.getDouble("firetime") == 0 && zoom_time == 0) {
if (Minecraft.getInstance().options.keyUp.isDown() && data.getDouble("firetime") == 0 && zoomTime == 0) {
if (data.getDouble("gun_move_rotZ") < 0.14) {
data.putDouble("gun_move_rotZ", data.getDouble("gun_move_rotZ") + 0.007 * times);
}
@ -259,9 +239,9 @@ public class ClientEventHandler {
data.putDouble("gun_moveX_time", 0);
}
data.putDouble("gun_move_posY", -0.135 * Math.sin(2 * Math.PI * (data.getDouble("gun_moveY_time") - 0.25)) * (1 - 0.95 * zoom_time));
data.putDouble("gun_move_posY", -0.135 * Math.sin(2 * Math.PI * (data.getDouble("gun_moveY_time") - 0.25)) * (1 - 0.95 * zoomTime));
data.putDouble("gun_move_posX", 0.2 * Math.sin(1 * Math.PI * data.getDouble("gun_moveX_time")) * (1 - 0.95 * zoom_time));
data.putDouble("gun_move_posX", 0.2 * Math.sin(1 * Math.PI * data.getDouble("gun_moveX_time")) * (1 - 0.95 * zoomTime));
} else {
if (data.getDouble("gun_moveY_time") > 0.25) {
@ -277,43 +257,43 @@ public class ClientEventHandler {
}
if (data.getDouble("gun_move_posX") > 0) {
data.putDouble("gun_move_posX", data.getDouble("gun_move_posX") - 1.5 * (Math.pow(data.getDouble("gun_move_posX"), 2) * times) * (1 - 0.75 * zoom_time));
data.putDouble("gun_move_posX", data.getDouble("gun_move_posX") - 1.5 * (Math.pow(data.getDouble("gun_move_posX"), 2) * times) * (1 - 0.75 * zoomTime));
} else {
data.putDouble("gun_move_posX", data.getDouble("gun_move_posX") + 1.5 * (Math.pow(data.getDouble("gun_move_posX"), 2) * times) * (1 - 0.75 * zoom_time));
data.putDouble("gun_move_posX", data.getDouble("gun_move_posX") + 1.5 * (Math.pow(data.getDouble("gun_move_posX"), 2) * times) * (1 - 0.75 * zoomTime));
}
if (data.getDouble("gun_move_posY") > 0) {
data.putDouble("gun_move_posY", data.getDouble("gun_move_posY") - 1.5 * (Math.pow(data.getDouble("gun_move_posY"), 2) * times) * (1 - 0.75 * zoom_time));
data.putDouble("gun_move_posY", data.getDouble("gun_move_posY") - 1.5 * (Math.pow(data.getDouble("gun_move_posY"), 2) * times) * (1 - 0.75 * zoomTime));
} else {
data.putDouble("gun_move_posY", data.getDouble("gun_move_posY") + 1.5 * (Math.pow(data.getDouble("gun_move_posY"), 2) * times) * (1 - 0.75 * zoom_time));
data.putDouble("gun_move_posY", data.getDouble("gun_move_posY") + 1.5 * (Math.pow(data.getDouble("gun_move_posY"), 2) * times) * (1 - 0.75 * zoomTime));
}
}
if (data.getDouble("move") < 0) {
data.putDouble("move", ((data.getDouble("move") + 1 * times * Math.pow(data.getDouble("move"), 2) * (1 - 0.6 * zoom_time))
* (1 - 1 * zoom_time)));
data.putDouble("move", ((data.getDouble("move") + 1 * times * Math.pow(data.getDouble("move"), 2) * (1 - 0.6 * zoomTime))
* (1 - 1 * zoomTime)));
} else {
data.putDouble("move", ((data.getDouble("move") - 1 * times * Math.pow(data.getDouble("move"), 2) * (1 - 0.6 * zoom_time))
* (1 - 1 * zoom_time)));
data.putDouble("move", ((data.getDouble("move") - 1 * times * Math.pow(data.getDouble("move"), 2) * (1 - 0.6 * zoomTime))
* (1 - 1 * zoomTime)));
}
if (Minecraft.getInstance().options.keyRight.isDown()) {
data.putDouble("move",
((data.getDouble("move") + Math.pow(Math.abs(data.getDouble("move")) + 0.05, 2) * 0.2 * times * (1 - 0.1 * zoom_time))
* (1 - 0.1 * zoom_time)));
((data.getDouble("move") + Math.pow(Math.abs(data.getDouble("move")) + 0.05, 2) * 0.2 * times * (1 - 0.1 * zoomTime))
* (1 - 0.1 * zoomTime)));
} else if (Minecraft.getInstance().options.keyLeft.isDown()) {
data.putDouble("move",
((data.getDouble("move") - Math.pow(Math.abs(data.getDouble("move")) + 0.05, 2) * 0.2 * times * (1 - 0.1 * zoom_time))
* (1 - 0.1 * zoom_time)));
((data.getDouble("move") - Math.pow(Math.abs(data.getDouble("move")) + 0.05, 2) * 0.2 * times * (1 - 0.1 * zoomTime))
* (1 - 0.1 * zoomTime)));
}
double velocity = entity.getDeltaMovement().y();
if (-0.8 < velocity + 0.078 && velocity + 0.078 < 0.8) {
if (data.getDouble("vy") < entity.getDeltaMovement().y() + 0.078) {
data.putDouble("vy", Mth.clamp(((data.getDouble("vy") + 0.35 * Math.pow((velocity + 0.078) - data.getDouble("vy"), 2)) * (1 - 0.8 * zoom_time)), -0.8, 0.8));
data.putDouble("vy", Mth.clamp(((data.getDouble("vy") + 0.35 * Math.pow((velocity + 0.078) - data.getDouble("vy"), 2)) * (1 - 0.8 * zoomTime)), -0.8, 0.8));
} else {
data.putDouble("vy", Mth.clamp(((data.getDouble("vy") - 0.35 * Math.pow((velocity + 0.078) - data.getDouble("vy"), 2)) * (1 - 0.8 * zoom_time)), -0.8, 0.8));
data.putDouble("vy", Mth.clamp(((data.getDouble("vy") - 0.35 * Math.pow((velocity + 0.078) - data.getDouble("vy"), 2)) * (1 - 0.8 * zoomTime)), -0.8, 0.8));
}
}
}
@ -322,24 +302,24 @@ public class ClientEventHandler {
private static void handleWeaponZoom() {
float times = 5 * Minecraft.getInstance().getDeltaFrameTime();
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
zoom_time = Mth.clamp(zoom_time + 0.03 * times,0,1);
zoomTime = Mth.clamp(zoomTime + 0.03 * times,0,1);
} else {
zoom_time = Mth.clamp(zoom_time - 0.04 * times,0,1);
zoomTime = Mth.clamp(zoomTime - 0.04 * times,0,1);
}
zoom_pos = 0.5 * Math.cos(Math.PI * Math.pow(Math.pow(zoom_time, 2) - 1, 2)) + 0.5;
zoom_pos_z = -Math.pow(2 * zoom_time - 1, 2) + 1;
zoomPos = 0.5 * Math.cos(Math.PI * Math.pow(Math.pow(zoomTime, 2) - 1, 2)) + 0.5;
zoomPosZ = -Math.pow(2 * zoomTime - 1, 2) + 1;
}
public static double getZoom_time() {
return zoom_time;
public static double getZoomTime() {
return zoomTime;
}
public static double getZoom_pos() {
return zoom_pos;
public static double getZoomPos() {
return zoomPos;
}
public static double getZoom_pos_z() {
return zoom_pos_z;
public static double getZoomPosZ() {
return zoomPosZ;
}
private static void handleWeaponFire(ViewportEvent.ComputeCameraAngles event, LivingEntity entity) {
@ -477,7 +457,7 @@ public class ClientEventHandler {
return;
}
double p = zoom_pos;
double p = zoomPos;
double zoom = stack.getOrCreateTag().getDouble("zoom") + stack.getOrCreateTag().getDouble("custom_zoom");
event.setFOV(event.getFOV() / (1.0 + p * (zoom - 1)) * (1 - 0.4 * player.getPersistentData().getDouble("BreathTime")));