diff --git a/gradle.properties b/gradle.properties index 1e7d822dd..b37d6137a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false +org.gradle.daemon=true org.gradle.parallel=true org.gradle.caching=true org.gradle.configuration-cache=true diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK12ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK12ItemModel.java index 2f344d899..9646c032d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK12ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK12ItemModel.java @@ -59,16 +59,6 @@ public class AK12ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -154,13 +144,7 @@ public class AK12ItemModel extends GeoModel { l.setRotX(rotXBipod * Mth.DEG_TO_RAD); r.setRotX(rotXBipod * Mth.DEG_TO_RAD); - GeoBone root = getAnimationProcessor().getBone("root"); - - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK47ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK47ItemModel.java index f3e426007..21b82e2f9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK47ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK47ItemModel.java @@ -58,16 +58,7 @@ public class AK47ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -157,13 +148,7 @@ public class AK47ItemModel extends GeoModel { l.setRotX(rotXBipod * Mth.DEG_TO_RAD); r.setRotX(rotXBipod * Mth.DEG_TO_RAD); - GeoBone root = getAnimationProcessor().getBone("root"); - - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Aa12ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Aa12ItemModel.java index d15f3d663..f98a5f1a1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Aa12ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Aa12ItemModel.java @@ -46,16 +46,6 @@ public class Aa12ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -84,12 +74,7 @@ public class Aa12ItemModel extends GeoModel { shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread))); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/BocekItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/BocekItemModel.java index e502d3ffe..19776d9e4 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/BocekItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/BocekItemModel.java @@ -4,7 +4,6 @@ import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; -import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.special.BocekItem; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; @@ -63,16 +62,7 @@ public class BocekItemModel extends GeoModel { double hp = ClientEventHandler.handPos; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + arrow.setPosZ(9f * (float) bp); rh.setPosZ(9f * (float) hp); @@ -114,12 +104,7 @@ public class BocekItemModel extends GeoModel { CrossHairOverlay.gunRot = fire.getRotZ(); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/DevotionItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/DevotionItemModel.java index 9b82b562c..923acc7aa 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/DevotionItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/DevotionItemModel.java @@ -5,7 +5,6 @@ import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; -import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.machinegun.DevotionItem; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; @@ -51,16 +50,7 @@ public class DevotionItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -91,12 +81,7 @@ public class DevotionItemModel extends GeoModel { bolt.setPosZ(-2f * (float) fp); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); if (isProne(player)) { l.setRotX(1.5f); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java index 346911e2b..57f8fe424 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java @@ -52,16 +52,6 @@ public class Glock17ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -97,12 +87,7 @@ public class Glock17ItemModel extends GeoModel { slide.setPosZ(1.5f * (float) fp); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java index c5c83fb30..4ba43ccbc 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java @@ -61,16 +61,6 @@ public class Glock18ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -106,12 +96,7 @@ public class Glock18ItemModel extends GeoModel { slide.setPosZ(1.5f * (float) fp); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Hk416ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Hk416ItemModel.java index fcf3d327c..8c04c9051 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Hk416ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Hk416ItemModel.java @@ -61,16 +61,7 @@ public class Hk416ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 17 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -156,12 +147,7 @@ public class Hk416ItemModel extends GeoModel { kuaimanji.setRotX(mode == 2 ? 90 * Mth.DEG_TO_RAD : 0); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/HomemadeShotgunItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/HomemadeShotgunItemModel.java index 3bf1a1356..910299d72 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/HomemadeShotgunItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/HomemadeShotgunItemModel.java @@ -46,16 +46,7 @@ public class HomemadeShotgunItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 7 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -77,12 +68,7 @@ public class HomemadeShotgunItemModel extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/HuntingRifleItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/HuntingRifleItemModel.java index 480dcee3a..816bd2c56 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/HuntingRifleItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/HuntingRifleItemModel.java @@ -46,16 +46,7 @@ public class HuntingRifleItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 7 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -86,12 +77,7 @@ public class HuntingRifleItemModel extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/InsidiousItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/InsidiousItemModel.java index 2489b8e6a..fd82adcc6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/InsidiousItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/InsidiousItemModel.java @@ -5,7 +5,6 @@ import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; -import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.rifle.InsidiousItem; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; @@ -49,16 +48,7 @@ public class InsidiousItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -88,13 +78,7 @@ public class InsidiousItemModel extends GeoModel { shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt))); CrossHairOverlay.gunRot = shen.getRotZ(); - GeoBone root = getAnimationProcessor().getBone("root"); - - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/JavelinItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/JavelinItemModel.java index b5253e63a..83fa37591 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/JavelinItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/JavelinItemModel.java @@ -4,7 +4,6 @@ import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; -import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; @@ -46,16 +45,7 @@ public class JavelinItemModel extends GeoModel { float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8); double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -77,12 +67,7 @@ public class JavelinItemModel extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/K98ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/K98ItemModel.java index 9b3be5ba5..102479b8e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/K98ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/K98ItemModel.java @@ -58,16 +58,7 @@ public class K98ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 8 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -93,12 +84,7 @@ public class K98ItemModel extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java index a674c3676..bf59dd0d2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java @@ -52,16 +52,6 @@ public class M1911ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; double fpz = ClientEventHandler.firePosZ * 7 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -98,12 +88,7 @@ public class M1911ItemModel extends GeoModel { slide.setPosZ(2.75f * (float) fp); hammer.setRotX(60 * Mth.DEG_TO_RAD + (120 * Mth.DEG_TO_RAD * (float) fp)); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M4ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M4ItemModel.java index a2d779e90..74dd2ae0f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M4ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M4ItemModel.java @@ -71,16 +71,7 @@ public class M4ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 17 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -183,12 +174,7 @@ public class M4ItemModel extends GeoModel { l.setRotX(rotXBipod * Mth.DEG_TO_RAD); r.setRotX(rotXBipod * Mth.DEG_TO_RAD); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M60ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M60ItemModel.java index 8dafb3426..8b77f6cd1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M60ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M60ItemModel.java @@ -96,16 +96,7 @@ public class M60ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -136,12 +127,7 @@ public class M60ItemModel extends GeoModel { tiba.setRotZ((float) (-0.25f * fp + 0.4 * fr)); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M79ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M79ItemModel.java index bf047009e..6dd570959 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M79ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M79ItemModel.java @@ -46,16 +46,7 @@ public class M79ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -84,12 +75,7 @@ public class M79ItemModel extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M870ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M870ItemModel.java index 7790783b1..0362cc7f3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M870ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M870ItemModel.java @@ -46,16 +46,7 @@ public class M870ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 7 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -86,12 +77,7 @@ public class M870ItemModel extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("main"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M98bItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M98bItemModel.java index 749cabe5c..3d3c35b50 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M98bItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M98bItemModel.java @@ -49,16 +49,7 @@ public class M98bItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 7 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -87,23 +78,12 @@ public class M98bItemModel extends GeoModel { gun.setPosZ(4.2f * (float) zp + (float) (0.3f * zpz)); gun.setRotZ((float) (0.02f * zpz)); - var data = GunData.from(stack); - - GeoBone root = getAnimationProcessor().getBone("root"); - GeoBone zhunxing = getAnimationProcessor().getBone("shi"); - - zhunxing.setPosX(75 * movePosX); - zhunxing.setPosY(75 * movePosY); - - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); float numR = (float) (1 - 0.88 * zt); float numP = (float) (1 - 0.68 * zt); + var data = GunData.from(stack); if (data.reload.time() > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MarlinItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MarlinItemModel.java index 8fb607eb8..5c471f121 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MarlinItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MarlinItemModel.java @@ -47,16 +47,7 @@ public class MarlinItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 7 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -87,12 +78,7 @@ public class MarlinItemModel extends GeoModel { jichui.setRotX(-0.52f); } - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MinigunItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MinigunItemModel.java index 968aad83d..03ba9eddb 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MinigunItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MinigunItemModel.java @@ -44,16 +44,7 @@ public class MinigunItemModel extends GeoModel { float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8); - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -71,12 +62,7 @@ public class MinigunItemModel extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java index 353d2b556..b6d21bdde 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java @@ -56,16 +56,7 @@ public class Mk14ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -139,14 +130,7 @@ public class Mk14ItemModel extends GeoModel { action.setPosZ(2.5f * (float) fp); - var data = GunData.from(stack); - - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); @@ -166,6 +150,7 @@ public class Mk14ItemModel extends GeoModel { GeoBone shell = getAnimationProcessor().getBone("shell"); + var data = GunData.from(stack); if (data.holdOpen.get()) { action.setPosZ(2.5f); shell.setScaleX(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MosinNagantItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MosinNagantItemModel.java index 044fecc5d..7cabbfbd8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MosinNagantItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MosinNagantItemModel.java @@ -52,16 +52,7 @@ public class MosinNagantItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 7 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -107,12 +98,7 @@ public class MosinNagantItemModel extends GeoModel { rex.setRotZ((float) (-0.08f * fp * ClientEventHandler.recoilHorizon * fp)); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java index 61941f262..045a0d090 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java @@ -52,16 +52,6 @@ public class Mp443ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -95,12 +85,7 @@ public class Mp443ItemModel extends GeoModel { slide.setPosZ(1.5f * (float) fp); hammer.setRotX((120 * Mth.DEG_TO_RAD * (float) fp)); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Ntw20Model.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Ntw20Model.java index 9a1f50278..f248617d0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Ntw20Model.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Ntw20Model.java @@ -57,16 +57,7 @@ public class Ntw20Model extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 7 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -144,12 +135,7 @@ public class Ntw20Model extends GeoModel { l.setRotX(rotXBipod * Mth.DEG_TO_RAD); r.setRotX(rotXBipod * Mth.DEG_TO_RAD); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java index f465eb98c..283c40ed8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java @@ -69,16 +69,7 @@ public class Qbz95ItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -178,12 +169,7 @@ public class Qbz95ItemModel extends GeoModel { flare.setPosZ(-2); } - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); float numR = (float) (1 - 0.975 * zt); float numP = (float) (1 - 0.97 * zt); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpgItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpgItemModel.java index 31809d9e7..9536d0392 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpgItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpgItemModel.java @@ -53,16 +53,7 @@ public class RpgItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -89,12 +80,7 @@ public class RpgItemModel extends GeoModel { gun.setRotZ(0.45f * (float) zp + (float) (0.02f * zpz)); gun.setScaleZ(1f - (0.5f * (float) zp)); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpkItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpkItemModel.java index 8a34e3d3a..76f457dae 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpkItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpkItemModel.java @@ -57,16 +57,7 @@ public class RpkItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -145,12 +136,7 @@ public class RpkItemModel extends GeoModel { shuan.setPosZ(2.4f * (float) fp); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SecondaryCataclysmModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SecondaryCataclysmModel.java index 1013ff773..8b969ea30 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SecondaryCataclysmModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SecondaryCataclysmModel.java @@ -46,16 +46,7 @@ public class SecondaryCataclysmModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 20 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -86,12 +77,7 @@ public class SecondaryCataclysmModel extends GeoModel { bolt.setPosZ(6f * (float) fp); lun.setRotZ(45f * (float) (Mth.clamp(ClientEventHandler.firePosTimer, 0, 1)) * Mth.DEG_TO_RAD); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SentinelItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SentinelItemModel.java index 399eb73de..a3cfce8d8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SentinelItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SentinelItemModel.java @@ -49,16 +49,7 @@ public class SentinelItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 7 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -97,12 +88,7 @@ public class SentinelItemModel extends GeoModel { charge.setRotZ(charge.getRotZ() + times * 0.5f); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); if (data.ammo.get() <= 5) { ammo.setScaleX((float) data.ammo.get() / 5); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SksItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SksItemModel.java index 160bbe992..57f3560ca 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SksItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SksItemModel.java @@ -48,16 +48,7 @@ public class SksItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -89,12 +80,7 @@ public class SksItemModel extends GeoModel { shuan.setPosZ(2f * (float) fp); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java index 319919043..3cddff4ce 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java @@ -55,16 +55,7 @@ public class SvdItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -156,12 +147,7 @@ public class SvdItemModel extends GeoModel { l.setRotX(rotXBipod * Mth.DEG_TO_RAD); r.setRotX(rotXBipod * Mth.DEG_TO_RAD); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/TaserItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/TaserItemModel.java index 6ad403f8f..07aa708ea 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/TaserItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/TaserItemModel.java @@ -46,16 +46,7 @@ public class TaserItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -81,12 +72,7 @@ public class TaserItemModel extends GeoModel { gun.setPosZ((float) zp + (float) (0.5f * zpz)); gun.setRotZ((float) (0.05f * zpz)); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/TracheliumItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/TracheliumItemModel.java index e31e15e74..6170f46d6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/TracheliumItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/TracheliumItemModel.java @@ -66,16 +66,7 @@ public class TracheliumItemModel extends GeoModel { double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 8 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -166,13 +157,7 @@ public class TracheliumItemModel extends GeoModel { ammohole.setRotZ(0); } - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setPosZ(!GunData.from(stack).DA.get() && !GunData.from(stack).canImmediatelyShoot.get() ? 0.2f * (float) ClientEventHandler.revolverPreTime : 0); - root.setRotX((float) ((swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY))); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone l = getAnimationProcessor().getBone("l"); GeoBone r = getAnimationProcessor().getBone("r"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/VectorItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/VectorItemModel.java index 6b410c7bf..e4885417f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/VectorItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/VectorItemModel.java @@ -66,21 +66,12 @@ public class VectorItemModel extends GeoModel { if (mode == 2) { kmj.setRotX(0); } - + float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8); double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ; - double swayX = ClientEventHandler.swayX; - double swayY = ClientEventHandler.swayY; - float moveRotZ = (float) ClientEventHandler.moveRotZ; - float movePosX = (float) ClientEventHandler.movePosX; - float movePosY = (float) ClientEventHandler.movePosY; - double mph = ClientEventHandler.movePosHorizon; - double vY = ClientEventHandler.velocityY; - double turnRotX = ClientEventHandler.turnRot[0]; - double turnRotY = ClientEventHandler.turnRot[1]; - double turnRotZ = ClientEventHandler.turnRot[2]; + double fpz = ClientEventHandler.firePosZ * 20 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -142,12 +133,7 @@ public class VectorItemModel extends GeoModel { l.setRotX(rotXBipod * Mth.DEG_TO_RAD); r.setRotX(rotXBipod * Mth.DEG_TO_RAD); - GeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); - root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); - root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); - root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); + ClientEventHandler.gunRootMove(getAnimationProcessor()); GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0"); diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index a2cd4e7d1..d4bb74a30 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -54,6 +54,7 @@ import net.neoforged.neoforge.client.gui.VanillaGuiLayers; import net.neoforged.neoforge.network.PacketDistributor; import net.neoforged.neoforge.network.handling.IPayloadContext; import org.lwjgl.glfw.GLFW; +import software.bernie.geckolib.animation.AnimationProcessor; import software.bernie.geckolib.cache.object.GeoBone; import java.util.List; @@ -126,6 +127,8 @@ public class ClientEventHandler { public static boolean tacticalSprint = false; public static float stamina = 0; public static double switchTime = 0; + public static double moveFadeTime = 0; + public static boolean exhaustion = false; public static boolean holdFireVehicle = false; @@ -1106,44 +1109,52 @@ public class ClientEventHandler { } } - if (isMoving() && firePosTimer == 0) { - if (moveYTime < 1.25) { - moveYTime += 1.2 * onGround * times * moveSpeed; - } else { - moveYTime = 0.25; - } - - if (moveXTime < 2) { - moveXTime += 1.2 * onGround * times * moveSpeed; - } else { - moveXTime = 0; - } - - movePosX = 0.2 * Math.sin(1 * Math.PI * moveXTime) * (1 - 0.95 * zoomTime); - movePosY = -0.135 * Math.sin(2 * Math.PI * (moveYTime - 0.25)) * (1 - 0.95 * zoomTime); + if (isMoving()) { + moveYTime += 1.2 * onGround * times * moveSpeed; + moveXTime += 1.2 * onGround * times * moveSpeed; + moveFadeTime = Mth.lerp(0.13 * times, moveFadeTime, 1); } else { - moveXTime = Math.max(moveXTime - 0.5 * times, 0); - moveYTime = Math.max(moveYTime - 0.5 * times, 0.25); - - movePosX = Mth.lerp(0.1f * times, movePosX, 0); - movePosY = Mth.lerp(0.1f * times, movePosY, 0); - + moveFadeTime = Mth.lerp(0.1 * times, moveFadeTime, 0); } - if (Minecraft.getInstance().options.keyRight.isDown()) { - movePosHorizon = Mth.lerp(0.05f * times, movePosHorizon, 0.04) * (1 - zoomTime); - } else if (Minecraft.getInstance().options.keyLeft.isDown()) { - movePosHorizon = Mth.lerp(0.05f * times, movePosHorizon, -0.04) * (1 - zoomTime); - } else { - movePosHorizon = Mth.lerp(0.1f * times, movePosHorizon, 0); + + movePosX = 0.2 * Math.sin(1 * Math.PI * moveXTime) * (1 - 0.95 * zoomTime) * moveFadeTime; + movePosY = -0.135 * Math.sin(2 * Math.PI * (moveYTime - 0.25)) * (1 - 0.95 * zoomTime) * moveFadeTime; + + boolean left = Minecraft.getInstance().options.keyLeft.isDown(); + boolean right = Minecraft.getInstance().options.keyRight.isDown(); + double pos = 0; + + if (left) { + pos = -0.04; } + if (right) { + pos = 0.04; + } + + if (left && right) { + pos = 0; + } + + + movePosHorizon = Mth.lerp(0.1f * times, movePosHorizon, pos * (1 - 1 * zoomTime)); + double velocity = entity.getDeltaMovement().y() + 0.078; velocityY = Mth.clamp(Mth.lerp(0.23f * times, velocityY, velocity) * (1 - 0.8 * zoomTime), -0.8, 0.8); } } + public static void gunRootMove(AnimationProcessor animationProcessor) { + GeoBone root = animationProcessor.getBone("root"); + root.setPosX((float) (movePosX + 20 * drawTime + 9.3f * movePosHorizon)); + root.setPosY((float) (swayY + movePosY - 40 * drawTime - 2f * velocityY)); + root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * drawTime + Mth.DEG_TO_RAD * turnRot[0] - 0.15f * velocityY)); + root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * drawTime + Mth.DEG_TO_RAD * turnRot[1])); + root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * drawTime + 2.7f * movePosHorizon + Mth.DEG_TO_RAD * turnRot[2])); + } + private static void handleWeaponZoom(LivingEntity entity) { if (!(entity instanceof Player player)) return; var stack = player.getMainHandItem();