From de0b314cf1f594e53709eb255f84f07616d17ec0 Mon Sep 17 00:00:00 2001 From: Atsuishio <842960157@qq.com> Date: Wed, 23 Apr 2025 16:52:53 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=86=99=E6=89=80=E6=9C=89=E6=9C=A8?= =?UTF-8?q?=E4=BB=93=E5=8F=A3=E7=81=AB=E7=84=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/client/AnimationHelper.java | 10 ++++++++-- .../renderer/item/AK47ItemRenderer.java | 11 +--------- .../renderer/item/Aa12ItemRenderer.java | 14 +------------ .../renderer/item/DevotionItemRenderer.java | 11 +--------- .../renderer/item/Glock17ItemRenderer.java | 12 +---------- .../renderer/item/Glock18ItemRenderer.java | 12 +---------- .../renderer/item/Hk416ItemRenderer.java | 11 +--------- .../item/HomemadeShotgunItemRenderer.java | 12 +---------- .../item/HuntingRifleItemRenderer.java | 12 +---------- .../renderer/item/InsidiousItemRenderer.java | 13 +----------- .../client/renderer/item/K98ItemRenderer.java | 12 +---------- .../renderer/item/M1911ItemRenderer.java | 12 +---------- .../client/renderer/item/M4ItemRenderer.java | 11 +--------- .../client/renderer/item/M60ItemRenderer.java | 12 +---------- .../client/renderer/item/M79ItemRenderer.java | 12 +---------- .../renderer/item/M870ItemRenderer.java | 12 +---------- .../renderer/item/M98bItemRenderer.java | 11 +--------- .../renderer/item/MarlinItemRenderer.java | 12 +---------- .../renderer/item/MinigunItemRenderer.java | 12 +---------- .../renderer/item/Mk14ItemRenderer.java | 11 +--------- .../item/MosinNagantItemRenderer.java | 11 +--------- .../renderer/item/Mp443ItemRenderer.java | 12 +---------- .../client/renderer/item/Ntw20Renderer.java | 11 +--------- .../renderer/item/Qbz95ItemRenderer.java | 11 +--------- .../client/renderer/item/RpgItemRenderer.java | 12 +---------- .../client/renderer/item/RpkItemRenderer.java | 20 ++++++------------- .../item/SecondaryCataclysmRenderer.java | 12 +---------- .../renderer/item/SentinelItemRenderer.java | 11 +--------- .../client/renderer/item/SksItemRenderer.java | 11 +--------- .../client/renderer/item/SvdItemRenderer.java | 2 ++ .../renderer/item/TracheliumItemRenderer.java | 11 +--------- .../renderer/item/VectorItemRenderer.java | 11 +--------- .../assets/superbwarfare/geo/aa12.geo.json | 2 +- .../superbwarfare/geo/hunting_rifle.geo.json | 2 +- .../assets/superbwarfare/geo/m60.geo.json | 2 +- .../assets/superbwarfare/geo/m79.geo.json | 2 +- .../assets/superbwarfare/geo/mk14ebr.geo.json | 2 +- .../superbwarfare/geo/mosin_nagant.geo.json | 2 +- .../assets/superbwarfare/geo/ntw_20.geo.json | 10 +++++----- .../assets/superbwarfare/geo/rpg.geo.json | 5 +++++ .../assets/superbwarfare/geo/rpk.geo.json | 2 +- .../geo/secondary_cataclysm.geo.json | 5 +++++ .../assets/superbwarfare/geo/sks.geo.json | 2 +- .../assets/superbwarfare/geo/vector.geo.json | 2 +- 44 files changed, 69 insertions(+), 339 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/AnimationHelper.java b/src/main/java/com/atsuishio/superbwarfare/client/AnimationHelper.java index 06c965fa5..18d7393f0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/AnimationHelper.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/AnimationHelper.java @@ -20,6 +20,7 @@ import net.minecraft.util.Mth; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import org.joml.Matrix3f; +import org.joml.Matrix4f; import software.bernie.geckolib.animation.AnimationProcessor; import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.util.RenderUtil; @@ -98,8 +99,14 @@ public class AnimationHelper { bone.setScaleY((float) (size + 0.8 * size * (Math.random() - 0.5))); bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); + float height = 0f; + + if ((GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 2 || GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 3) && ClientEventHandler.zoom) { + height = -0.07f; + } + stack.pushPose(); - stack.translate(x, y, -z); + stack.translate(x, y + 0.02 + height, -z); RenderUtil.translateMatrixToBone(stack, bone); RenderUtil.translateToPivotPoint(stack, bone); RenderUtil.rotateMatrixAroundBone(stack, bone); @@ -115,7 +122,6 @@ public class AnimationHelper { stack.popPose(); } } - private static void vertex(VertexConsumer pConsumer, PoseStack.Pose pPose, Matrix3f pNormal, int pLightmapUV, float pX, float pY, int pU, int pV) { pConsumer.addVertex(pPose, pX - 0.5F, pY - 0.5F, 0.0F) .setColor(255, 255, 255, 255) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK47ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK47ItemRenderer.java index 2a5318261..0fe73eaf2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK47ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK47ItemRenderer.java @@ -113,16 +113,7 @@ public class AK47ItemRenderer extends GeoItemRenderer { bone.setHidden(ClientEventHandler.zoomPos > 0.7 && ClientEventHandler.zoom); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.06875, 0.3); ItemModelHelper.handleGunAttachments(bone, itemStack, name); } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Aa12ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Aa12ItemRenderer.java index 8adf42f90..ae3d423c8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Aa12ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Aa12ItemRenderer.java @@ -3,10 +3,7 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.ItemModelHelper; import com.atsuishio.superbwarfare.client.model.item.Aa12ItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; -import com.atsuishio.superbwarfare.item.gun.data.GunData; -import com.atsuishio.superbwarfare.item.gun.data.value.AttachmentType; import com.atsuishio.superbwarfare.item.gun.shotgun.Aa12Item; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; @@ -79,16 +76,7 @@ public class Aa12ItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.31465, 0.5); ItemModelHelper.handleGunAttachments(bone, itemStack, name); } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/DevotionItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/DevotionItemRenderer.java index dc46b3575..02d452783 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/DevotionItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/DevotionItemRenderer.java @@ -78,16 +78,7 @@ public class DevotionItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.3875, 0.35); if (name.equals("holo")) { bone.setHidden(ClientEventHandler.zoomPos < 0.7 || !ClientEventHandler.zoom); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Glock17ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Glock17ItemRenderer.java index 9a66e87b4..cd9234498 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Glock17ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Glock17ItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.Glock17ItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.handgun.Glock17Item; import com.mojang.blaze3d.vertex.PoseStack; @@ -78,16 +77,7 @@ public class Glock17ItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.3022, 0.3); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, false, false); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Glock18ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Glock18ItemRenderer.java index 7e995018f..2f4b26632 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Glock18ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Glock18ItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.Glock18ItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.handgun.Glock18Item; import com.mojang.blaze3d.vertex.PoseStack; @@ -78,16 +77,7 @@ public class Glock18ItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.3022, 0.3); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, false, false); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Hk416ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Hk416ItemRenderer.java index 3897cf31c..b9158b2de 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Hk416ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Hk416ItemRenderer.java @@ -104,16 +104,7 @@ public class Hk416ItemRenderer extends GeoItemRenderer { bone.setHidden(ClientEventHandler.zoomPos > 0.7 && ClientEventHandler.zoom); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.440625, 0.3); ItemModelHelper.handleGunAttachments(bone, itemStack, name); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/HomemadeShotgunItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/HomemadeShotgunItemRenderer.java index e2ca6dca6..26c03bc5c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/HomemadeShotgunItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/HomemadeShotgunItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.HomemadeShotgunItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.shotgun.HomemadeShotgunItem; import com.mojang.blaze3d.vertex.PoseStack; @@ -76,16 +75,7 @@ public class HomemadeShotgunItemRenderer extends GeoItemRenderer 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.25, 0.6); } if (renderingArms) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/HuntingRifleItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/HuntingRifleItemRenderer.java index 0b8e0d2e9..937eca7d2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/HuntingRifleItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/HuntingRifleItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.HuntingRifleItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.sniper.HuntingRifleItem; import com.mojang.blaze3d.vertex.PoseStack; @@ -76,16 +75,7 @@ public class HuntingRifleItemRenderer extends GeoItemRenderer ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 2.234375, 0.6); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/InsidiousItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/InsidiousItemRenderer.java index d8f33617f..4a059a255 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/InsidiousItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/InsidiousItemRenderer.java @@ -4,8 +4,6 @@ import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.InsidiousItemModel; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; -import com.atsuishio.superbwarfare.item.gun.data.GunData; -import com.atsuishio.superbwarfare.item.gun.data.value.AttachmentType; import com.atsuishio.superbwarfare.item.gun.rifle.InsidiousItem; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; @@ -80,16 +78,7 @@ public class InsidiousItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.95 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.95 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1, 0.38); if (name.equals("rot1")) { bone.setRotZ((System.currentTimeMillis() % 36000000) / 400f); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/K98ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/K98ItemRenderer.java index 60643ca80..2049e38b0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/K98ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/K98ItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.K98ItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.sniper.K98Item; import com.mojang.blaze3d.vertex.PoseStack; @@ -78,16 +77,7 @@ public class K98ItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.9772, 0.4); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M1911ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M1911ItemRenderer.java index 85379b385..2006bfe69 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M1911ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M1911ItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.M1911ItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.handgun.M1911Item; import com.mojang.blaze3d.vertex.PoseStack; @@ -76,16 +75,7 @@ public class M1911ItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.442825, 0.35); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, false, false); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M4ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M4ItemRenderer.java index a7762f636..7e5b4b36d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M4ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M4ItemRenderer.java @@ -112,16 +112,7 @@ public class M4ItemRenderer extends GeoItemRenderer { bone.setHidden(ClientEventHandler.zoomPos > 0.7 && ClientEventHandler.zoom); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.353125, 0.3); if (name.equals("Sight")) { bone.setHidden(GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 3); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M60ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M60ItemRenderer.java index d67a6bd48..f6163e1c1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M60ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M60ItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.M60ItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.machinegun.M60Item; import com.mojang.blaze3d.vertex.PoseStack; @@ -76,16 +75,7 @@ public class M60ItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0.1, 1.95, 0.45); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M79ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M79ItemRenderer.java index 743018f6f..b0ba03c45 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M79ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M79ItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.M79ItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.launcher.M79Item; import com.mojang.blaze3d.vertex.PoseStack; @@ -76,16 +75,7 @@ public class M79ItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.59375, 0.6); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M870ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M870ItemRenderer.java index 2828f5f87..68259e7e4 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M870ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M870ItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.M870ItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.shotgun.M870Item; import com.mojang.blaze3d.vertex.PoseStack; @@ -76,16 +75,7 @@ public class M870ItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.4209, 0.6); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M98bItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M98bItemRenderer.java index 416756761..5fa1906c3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M98bItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M98bItemRenderer.java @@ -76,16 +76,7 @@ public class M98bItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 2.15625, 0.6); if (name.equals("scope2")) { bone.setHidden(ClientEventHandler.zoomPos < 0.7 || !ClientEventHandler.zoom); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MarlinItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MarlinItemRenderer.java index c7716282e..2732e412c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MarlinItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MarlinItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.MarlinItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.rifle.MarlinItem; import com.mojang.blaze3d.vertex.PoseStack; @@ -76,16 +75,7 @@ public class MarlinItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.33720625, 0.4); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MinigunItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MinigunItemRenderer.java index 05ed66eb1..fe8b13c29 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MinigunItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MinigunItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.MinigunItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.machinegun.MinigunItem; import com.mojang.blaze3d.vertex.PoseStack; @@ -78,16 +77,7 @@ public class MinigunItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (1 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (1 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0.1, 1.45, 0.9); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mk14ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mk14ItemRenderer.java index 4d9c96709..a772989c9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mk14ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mk14ItemRenderer.java @@ -108,16 +108,7 @@ public class Mk14ItemRenderer extends GeoItemRenderer { bone.setHidden(ClientEventHandler.zoomPos > 0.7 && ClientEventHandler.zoom); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.475, 0.33); ItemModelHelper.handleGunAttachments(bone, itemStack, name); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MosinNagantItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MosinNagantItemRenderer.java index 21b1554bd..fe086a792 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MosinNagantItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MosinNagantItemRenderer.java @@ -84,16 +84,7 @@ public class MosinNagantItemRenderer extends GeoItemRenderer { bone.setHidden(ClientEventHandler.zoomPos > 0.7); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 2.38345, 0.6); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mp443ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mp443ItemRenderer.java index f822d5c75..3aaf0a7ef 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mp443ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mp443ItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.Mp443ItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.handgun.Mp443Item; import com.mojang.blaze3d.vertex.PoseStack; @@ -78,16 +77,7 @@ public class Mp443ItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.33345, 0.3); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, false, false); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Ntw20Renderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Ntw20Renderer.java index 581d62e27..3ad06badc 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Ntw20Renderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Ntw20Renderer.java @@ -108,16 +108,7 @@ public class Ntw20Renderer extends GeoItemRenderer { bone.setHidden(ClientEventHandler.zoomPos > 0.7 && ClientEventHandler.zoom); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 3.70229375, 0.8); ItemModelHelper.handleGunAttachments(bone, itemStack, name); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Qbz95ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Qbz95ItemRenderer.java index 733157db0..372e1c114 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Qbz95ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Qbz95ItemRenderer.java @@ -116,16 +116,7 @@ public class Qbz95ItemRenderer extends GeoItemRenderer { bone.setHidden(ClientEventHandler.zoomPos > 0.7 && ClientEventHandler.zoom); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.04375, 0.3); ItemModelHelper.handleGunAttachments(bone, itemStack, name); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpgItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpgItemRenderer.java index 2b74db92a..5bb956574 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpgItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpgItemRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.RpgItemModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.launcher.RpgItem; @@ -81,16 +80,7 @@ public class RpgItemRenderer extends GeoItemRenderer { bone.setHidden(GunData.from(itemStack).isEmpty.get()); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.625, 0.7); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, false, false); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpkItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpkItemRenderer.java index e7bacad40..7eeeac1c6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpkItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpkItemRenderer.java @@ -78,6 +78,7 @@ public class RpkItemRenderer extends GeoItemRenderer { var player = mc.player; if (player == null) return; + ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; var data = GunData.from(itemStack); @@ -111,22 +112,13 @@ public class RpkItemRenderer extends GeoItemRenderer { && (name.equals("jing") || name.equals("Barrel") || name.equals("humu") || name.equals("qiangguan") || name.equals("houzhunxing"))) { bone.setHidden(ClientEventHandler.zoomPos > 0.7 && ClientEventHandler.zoom); } + float height = 0.02f; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - if ((data.attachment.get(AttachmentType.SCOPE) == 2 || data.attachment.get(AttachmentType.SCOPE) == 3) && ClientEventHandler.zoom) { - bone.setPosY(-2); - } else { - bone.setPosY(0); - } + if ((GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 2 || GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 3) && ClientEventHandler.zoom) { + height = -0.1f; } + + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, height, 1.475, 0.3); ItemModelHelper.handleGunAttachments(bone, itemStack, name); if (renderingArms) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SecondaryCataclysmRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SecondaryCataclysmRenderer.java index a0db6aac1..a70de5015 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SecondaryCataclysmRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SecondaryCataclysmRenderer.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item; import com.atsuishio.superbwarfare.client.AnimationHelper; import com.atsuishio.superbwarfare.client.model.item.SecondaryCataclysmModel; -import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.launcher.SecondaryCataclysm; import com.mojang.blaze3d.vertex.PoseStack; @@ -78,16 +77,7 @@ public class SecondaryCataclysmRenderer extends GeoItemRenderer 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.0375, 0.6); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, false, false); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SentinelItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SentinelItemRenderer.java index 96c2485f7..5940a0df5 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SentinelItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SentinelItemRenderer.java @@ -81,16 +81,7 @@ public class SentinelItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!(itemStack.getItem() instanceof GunItem)) return; - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.53125, 0.6); if (name.equals("holo")) { bone.setHidden(ClientEventHandler.zoomPos < 0.7 || !ClientEventHandler.zoom); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SksItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SksItemRenderer.java index 4f5b892dd..45f8f3dbc 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SksItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SksItemRenderer.java @@ -82,16 +82,7 @@ public class SksItemRenderer extends GeoItemRenderer { bone.setHidden(ClientEventHandler.zoomPos < 0.7 || !ClientEventHandler.zoom); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.4375, 0.35); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SvdItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SvdItemRenderer.java index 8d9120a64..91b93dce2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SvdItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SvdItemRenderer.java @@ -114,6 +114,8 @@ public class SvdItemRenderer extends GeoItemRenderer { } } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.76479375, 0.35); + ItemModelHelper.handleGunAttachments(bone, itemStack, name); if (renderingArms) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/TracheliumItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/TracheliumItemRenderer.java index b5837a435..5ba2cc65f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/TracheliumItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/TracheliumItemRenderer.java @@ -124,16 +124,7 @@ public class TracheliumItemRenderer extends GeoItemRenderer { ItemModelHelper.handleGunAttachments(bone, itemStack, name); - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.734375, 0.5); if (renderingArms) { AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/VectorItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/VectorItemRenderer.java index d0ccb1d14..769c38372 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/VectorItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/VectorItemRenderer.java @@ -98,16 +98,7 @@ public class VectorItemRenderer extends GeoItemRenderer { bone.setHidden(GunData.from(itemStack).attachment.get(AttachmentType.STOCK) == 0); } - if (name.equals("flare")) { - if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) { - bone.setHidden(true); - } else { - bone.setHidden(false); - bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5))); - bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } - } + AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.453125, 0.35); ItemModelHelper.handleGunAttachments(bone, itemStack, name); diff --git a/src/main/resources/assets/superbwarfare/geo/aa12.geo.json b/src/main/resources/assets/superbwarfare/geo/aa12.geo.json index ecd07f127..54fd818de 100644 --- a/src/main/resources/assets/superbwarfare/geo/aa12.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/aa12.geo.json @@ -532,7 +532,7 @@ { "name": "flare", "parent": "0", - "pivot": [0.01688, 1.27813, -23.03438] + "pivot": [0.01688, 1.27813, -21.03438] }, { "name": "bolt", diff --git a/src/main/resources/assets/superbwarfare/geo/hunting_rifle.geo.json b/src/main/resources/assets/superbwarfare/geo/hunting_rifle.geo.json index 6dca07c91..a5fd929e7 100644 --- a/src/main/resources/assets/superbwarfare/geo/hunting_rifle.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/hunting_rifle.geo.json @@ -83,7 +83,7 @@ { "name": "flare", "parent": "gun", - "pivot": [0.05, 1.75, -23.25] + "pivot": [0, 2.5, -35.75] }, { "name": "bolt", diff --git a/src/main/resources/assets/superbwarfare/geo/m60.geo.json b/src/main/resources/assets/superbwarfare/geo/m60.geo.json index d46c32c3e..071f1ac3e 100644 --- a/src/main/resources/assets/superbwarfare/geo/m60.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/m60.geo.json @@ -15107,7 +15107,7 @@ { "name": "flare", "parent": "0", - "pivot": [0, 1.7, -22.2] + "pivot": [0, 4.26, -31.2] }, { "name": "camera", diff --git a/src/main/resources/assets/superbwarfare/geo/m79.geo.json b/src/main/resources/assets/superbwarfare/geo/m79.geo.json index f02ad0492..d71877906 100644 --- a/src/main/resources/assets/superbwarfare/geo/m79.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/m79.geo.json @@ -43,7 +43,7 @@ { "name": "flare", "parent": "qian", - "pivot": [0.3, 1.25, -9.5] + "pivot": [0, 1.25, -9.5] }, { "name": "bullet", diff --git a/src/main/resources/assets/superbwarfare/geo/mk14ebr.geo.json b/src/main/resources/assets/superbwarfare/geo/mk14ebr.geo.json index 9e9ec4339..847538b87 100644 --- a/src/main/resources/assets/superbwarfare/geo/mk14ebr.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/mk14ebr.geo.json @@ -67,7 +67,7 @@ { "name": "flare", "parent": "gun", - "pivot": [0.05, 2.57, -23.6] + "pivot": [0, 2.57, -23.6] }, { "name": "Barrel", diff --git a/src/main/resources/assets/superbwarfare/geo/mosin_nagant.geo.json b/src/main/resources/assets/superbwarfare/geo/mosin_nagant.geo.json index 8b451a668..a04d4020a 100644 --- a/src/main/resources/assets/superbwarfare/geo/mosin_nagant.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/mosin_nagant.geo.json @@ -57,7 +57,7 @@ { "name": "flare", "parent": "mosinnagant", - "pivot": [-0.01172, 2.48125, -31.63516] + "pivot": [0, 2.41125, -38.13516] }, { "name": "scope", diff --git a/src/main/resources/assets/superbwarfare/geo/ntw_20.geo.json b/src/main/resources/assets/superbwarfare/geo/ntw_20.geo.json index 86aeea9c3..aa731f146 100644 --- a/src/main/resources/assets/superbwarfare/geo/ntw_20.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/ntw_20.geo.json @@ -59,6 +59,11 @@ "parent": "fireRoot3", "pivot": [-0.19219, -0.53937, 1.6325] }, + { + "name": "flare", + "parent": "0", + "pivot": [0, 3.51914, -59.23672] + }, { "name": "action", "parent": "0", @@ -2242,11 +2247,6 @@ } ] }, - { - "name": "flare", - "parent": "action", - "pivot": [0, 3.51914, -59.23672] - }, { "name": "guan10", "parent": "0", diff --git a/src/main/resources/assets/superbwarfare/geo/rpg.geo.json b/src/main/resources/assets/superbwarfare/geo/rpg.geo.json index a53b6b62c..70fe9cfeb 100644 --- a/src/main/resources/assets/superbwarfare/geo/rpg.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/rpg.geo.json @@ -2616,6 +2616,11 @@ } ] }, + { + "name": "flare", + "parent": "gun", + "pivot": [0, 1.41656, -10] + }, { "name": "rocket", "parent": "rpg", diff --git a/src/main/resources/assets/superbwarfare/geo/rpk.geo.json b/src/main/resources/assets/superbwarfare/geo/rpk.geo.json index eea38eb08..0e85ed6aa 100644 --- a/src/main/resources/assets/superbwarfare/geo/rpk.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/rpk.geo.json @@ -22389,7 +22389,7 @@ { "name": "flare", "parent": "0", - "pivot": [0.05, 2.085, -23.6] + "pivot": [0, 2.085, -23.6] } ] } diff --git a/src/main/resources/assets/superbwarfare/geo/secondary_cataclysm.geo.json b/src/main/resources/assets/superbwarfare/geo/secondary_cataclysm.geo.json index 8852f9669..8ec3e82e3 100644 --- a/src/main/resources/assets/superbwarfare/geo/secondary_cataclysm.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/secondary_cataclysm.geo.json @@ -7867,6 +7867,11 @@ "name": "group8", "parent": "body", "pivot": [0.59572, -1.59025, -0.94957] + }, + { + "name": "flare", + "parent": "0", + "pivot": [0, 0.225, -16.6] } ] } diff --git a/src/main/resources/assets/superbwarfare/geo/sks.geo.json b/src/main/resources/assets/superbwarfare/geo/sks.geo.json index 5cde57019..08a341570 100644 --- a/src/main/resources/assets/superbwarfare/geo/sks.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/sks.geo.json @@ -37,7 +37,7 @@ { "name": "flare", "parent": "0", - "pivot": [0.5, 2.14727, -23] + "pivot": [0, 2.14727, -23] }, { "name": "holo", diff --git a/src/main/resources/assets/superbwarfare/geo/vector.geo.json b/src/main/resources/assets/superbwarfare/geo/vector.geo.json index 0e1e8335c..007b2b0fa 100644 --- a/src/main/resources/assets/superbwarfare/geo/vector.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/vector.geo.json @@ -15783,7 +15783,7 @@ { "name": "flare", "parent": "0", - "pivot": [0.05, 1.75, -23.25] + "pivot": [0, 1.75, -23.25] } ] }