diff --git a/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java b/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java index 6b54dec0a..9c2856644 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java @@ -54,6 +54,7 @@ public class ClickHandler { if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { ModUtils.PACKET_HANDLER.sendToServer(new FireMessage(1)); ClientEventHandler.holdFire = false; + ClientEventHandler.customRpm = 0; } if (button == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { if (player.hasEffect(ModMobEffects.SHOCK.get())) { diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock17ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock17ItemModel.java index 92220b853..43b2c8c96 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock17ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock17ItemModel.java @@ -73,18 +73,18 @@ public class Glock17ItemModel extends GeoModel { gun.setRotZ(-11 * Mth.DEG_TO_RAD * (float) zp + (float) (0.05f * zpz)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); - shen.setPosY((float) (-0.06f * fp - 0.09f * fr)); - shen.setPosZ((float) (0.825 * fp + 0.34f * fr + 0.35 * fpz)); - shen.setRotX((float) (0.1f * fp + 0.05f * fr + 0.01f * fpz)); + shen.setPosY((float) (0.4f * fp + 0.44f * fr)); + shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz)); + shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz)); shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); - shen.setPosY((float) (shen.getPosY() * (1 + 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 + 0.3 * zt))); + shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); + shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt))); shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt))); - shen.setRotY((float) (shen.getRotY() * (1 - 0.27 * zt))); - shen.setRotZ((float) (shen.getRotZ() * (1 - 0.25 * zt))); + shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); + shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); slide.setPosZ(1.5f * (float) fp); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock18ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock18ItemModel.java index e563536bd..f1498b34f 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock18ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock18ItemModel.java @@ -82,18 +82,18 @@ public class Glock18ItemModel extends GeoModel { gun.setRotZ(-11 * Mth.DEG_TO_RAD * (float) zp + (float) (0.05f * zpz)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); - shen.setPosY((float) (-0.06f * fp - 0.09f * fr)); - shen.setPosZ((float) (0.825 * fp + 0.34f * fr + 0.35 * fpz)); - shen.setRotX((float) (0.1f * fp + 0.05f * fr + 0.01f * fpz)); + shen.setPosY((float) (0.4f * fp + 0.44f * fr)); + shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz)); + shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz)); shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); - shen.setPosY((float) (shen.getPosY() * (1 + 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 + 0.3 * zt))); - shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt))); - shen.setRotY((float) (shen.getRotY() * (1 - 0.27 * zt))); - shen.setRotZ((float) (shen.getRotZ() * (1 - 0.25 * zt))); + shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); + shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt))); + shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt))); + shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); + shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); slide.setPosZ(1.5f * (float) fp); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M1911ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M1911ItemModel.java index 474a03225..1573e525c 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M1911ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M1911ItemModel.java @@ -38,6 +38,7 @@ public class M1911ItemModel extends GeoModel { CoreGeoBone shen = getAnimationProcessor().getBone("shen"); CoreGeoBone slide = getAnimationProcessor().getBone("huatao"); CoreGeoBone bullet = getAnimationProcessor().getBone("bullet"); + CoreGeoBone hammer = getAnimationProcessor().getBone("hammer"); Player player = Minecraft.getInstance().player; if (player == null) return; @@ -71,20 +72,21 @@ public class M1911ItemModel extends GeoModel { gun.setScaleZ(1f - (0.35f * (float) zp)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); - shen.setPosY((float) (-0.06f * fp - 0.09f * fr)); - shen.setPosZ((float) (0.825 * fp + 0.34f * fr + 0.35 * fpz)); - shen.setRotX((float) (0.1f * fp + 0.05f * fr + 0.01f * fpz)); + shen.setPosY((float) (0.4f * fp + 0.44f * fr)); + shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz)); + shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz)); shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); - shen.setPosY((float) (shen.getPosY() * (1 + 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 + 0.3 * zt))); + shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); + shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt))); shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt))); - shen.setRotY((float) (shen.getRotY() * (1 - 0.27 * zt))); - shen.setRotZ((float) (shen.getRotZ() * (1 - 0.25 * zt))); + shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); + shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); slide.setPosZ(2.75f * (float) fp); + hammer.setRotX(60 * Mth.DEG_TO_RAD + (120 * Mth.DEG_TO_RAD * (float) fp)); CoreGeoBone root = getAnimationProcessor().getBone("root"); root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M60ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M60ItemModel.java index bae15a758..4da745622 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M60ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M60ItemModel.java @@ -57,31 +57,31 @@ public class M60ItemModel extends GeoModel { r.setRotX(1.5f); } - if (stack.getOrCreateTag().getInt("ammo") < 5 && stack.getOrCreateTag().getBoolean("bullet_chain")) { + if (stack.getOrCreateTag().getInt("ammo") < 5 && stack.getOrCreateTag().getBoolean("HideBulletChain")) { b5.setScaleX(0); b5.setScaleY(0); b5.setScaleZ(0); } - if (stack.getOrCreateTag().getInt("ammo") < 4 && stack.getOrCreateTag().getBoolean("bullet_chain")) { + if (stack.getOrCreateTag().getInt("ammo") < 4 && stack.getOrCreateTag().getBoolean("HideBulletChain")) { b4.setScaleX(0); b4.setScaleY(0); b4.setScaleZ(0); } - if (stack.getOrCreateTag().getInt("ammo") < 3 && stack.getOrCreateTag().getBoolean("bullet_chain")) { + if (stack.getOrCreateTag().getInt("ammo") < 3 && stack.getOrCreateTag().getBoolean("HideBulletChain")) { b3.setScaleX(0); b3.setScaleY(0); b3.setScaleZ(0); } - if (stack.getOrCreateTag().getInt("ammo") < 2 && stack.getOrCreateTag().getBoolean("bullet_chain")) { + if (stack.getOrCreateTag().getInt("ammo") < 2 && stack.getOrCreateTag().getBoolean("HideBulletChain")) { b2.setScaleX(0); b2.setScaleY(0); b2.setScaleZ(0); } - if (stack.getOrCreateTag().getInt("ammo") < 1 && stack.getOrCreateTag().getBoolean("bullet_chain")) { + if (stack.getOrCreateTag().getInt("ammo") < 1 && stack.getOrCreateTag().getBoolean("HideBulletChain")) { b1.setScaleX(0); b1.setScaleY(0); b1.setScaleZ(0); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M870ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M870ItemModel.java index 79ebe36e3..26f4b8eae 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M870ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M870ItemModel.java @@ -77,7 +77,7 @@ public class M870ItemModel extends GeoModel { shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 - 0.4 * zt))); + shen.setPosZ((float) (shen.getPosZ() * (1 - 0.77 * zt))); shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt))); shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java index 01ee058c3..0a372e1e9 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java @@ -60,26 +60,26 @@ public class MarlinItemModel extends GeoModel { double fr = ClientEventHandler.fireRot; gun.setPosX(1.712f * (float) zp); - gun.setPosY(1.06f * (float) zp - (float) (0.7f * zpz)); - gun.setPosZ(4f * (float) zp + (float) (0.9f * zpz)); + gun.setPosY(1.06f * (float) zp - (float) (0.2f * zpz)); + gun.setPosZ(3f * (float) zp + (float) (0.2f * zpz)); gun.setRotZ((float) (0.02f * zpz)); - gun.setScaleZ(1f - (0.5f * (float) zp)); + gun.setScaleZ(1f - (0.2f * (float) zp)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); shen.setPosY((float) (0.4f * fp + 0.44f * fr)); shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz)); - shen.setRotX((float) (0.02f * fp + 0.25f * fr + 0.01f * fpz)); + shen.setRotX((float) (0.01f * fp + 0.15f * fr + 0.01f * fpz)); shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 - 0.4 * zt))); + shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * zt))); shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt))); shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); - if (stack.getOrCreateTag().getInt("fire_animation") > 0) { + if (stack.getOrCreateTag().getBoolean("empty")) { jichui.setRotX(-0.52f); } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java index efedee70b..3c916993c 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java @@ -40,6 +40,8 @@ public class Ntw20Model extends GeoModel { CoreGeoBone scope = getAnimationProcessor().getBone("scope"); CoreGeoBone l = getAnimationProcessor().getBone("l"); CoreGeoBone r = getAnimationProcessor().getBone("r"); + CoreGeoBone action = getAnimationProcessor().getBone("action"); + CoreGeoBone lh = getAnimationProcessor().getBone("lh"); Player player = Minecraft.getInstance().player; if (player == null) return; @@ -92,6 +94,9 @@ public class Ntw20Model extends GeoModel { stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 4.3)); + action.setPosZ(6f * (float) ClientEventHandler.actionMove); + lh.setPosZ(-6f * (float) ClientEventHandler.actionMove); + CoreGeoBone root = getAnimationProcessor().getBone("root"); root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java index a84980652..27a034572 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java @@ -69,7 +69,7 @@ public class SentinelItemModel extends GeoModel { gun.setScaleZ(1f - (0.7f * (float) zp)); scope.setScaleZ(1f - (0.8f * (float) zp)); - cb.setRotZ(cb.getRotZ() + times * (float) (stack.getOrCreateTag().getDouble("chamber_rot"))); + cb.setRotZ((float) (cb.getRotZ() + times * 10 * ClientEventHandler.chamberRot)); CoreGeoBone holo = getAnimationProcessor().getBone("holo"); holo.setPosY(0.09f); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/TracheliumItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/TracheliumItemModel.java index b76d0f091..f335cb4e1 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/TracheliumItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/TracheliumItemModel.java @@ -35,6 +35,8 @@ public class TracheliumItemModel extends GeoModel { public void setCustomAnimations(Trachelium animatable, long instanceId, AnimationState animationState) { CoreGeoBone gun = getAnimationProcessor().getBone("bone"); CoreGeoBone shen = getAnimationProcessor().getBone("shen"); + CoreGeoBone hammer = getAnimationProcessor().getBone("jichui"); + CoreGeoBone lun = getAnimationProcessor().getBone("lun"); Player player = Minecraft.getInstance().player; if (player == null) return; @@ -67,18 +69,21 @@ public class TracheliumItemModel extends GeoModel { shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); shen.setPosY((float) (0.4f * fp + 0.44f * fr)); - shen.setPosZ((float) (3.325 * fp + 0.34f * fr + 2.35 * fpz)); - shen.setRotX((float) (0.05f * fp + 0.3f * fr + 0.2f * fpz)); + shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz)); + shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz)); shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 - 0.2 * zt))); - shen.setRotX((float) (shen.getRotX() * (1 - 0.3 * zt))); + shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt))); + shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt))); shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); + hammer.setRotX(60 * Mth.DEG_TO_RAD * (float) fp); + lun.setRotZ(-120 * Mth.DEG_TO_RAD * (float) fp); + CoreGeoBone root = getAnimationProcessor().getBone("root"); root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/MinigunItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/MinigunItemRenderer.java index 92508ccff..74cd6a898 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/MinigunItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/MinigunItemRenderer.java @@ -80,9 +80,6 @@ public class MinigunItemRenderer extends GeoItemRenderer { Player player = mc.player; if (player != null) { - - ItemStack itemStack = player.getMainHandItem(); - if (name.equals("flare")) { if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) { bone.setHidden(true); @@ -95,7 +92,7 @@ public class MinigunItemRenderer extends GeoItemRenderer { } if (name.equals("light")) { - bone.setHidden(!(itemStack.getOrCreateTag().getDouble("fire_animation") > 0)); + bone.setHidden(!(ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5)); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/screens/CrossHairOverlay.java b/src/main/java/net/mcreator/superbwarfare/client/screens/CrossHairOverlay.java index a6628ab67..3976f2f29 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/screens/CrossHairOverlay.java +++ b/src/main/java/net/mcreator/superbwarfare/client/screens/CrossHairOverlay.java @@ -13,10 +13,8 @@ import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.minecraft.client.CameraType; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; @@ -123,14 +121,14 @@ public class CrossHairOverlay { RenderSystem.disableBlend(); RenderSystem.setShaderColor(1, 1, 1, 1); - if (!stack.is(ModTags.Items.GUN)) return; +// if (!stack.is(ModTags.Items.GUN)) return; - if (stack.getOrCreateTag().getBoolean("need_bolt_action")) { - Font font = Minecraft.getInstance().font; - Component component = Component.translatable("des.superbwarfare.need_bolt_action"); - - guiGraphics.drawString(font, component, w / 2 - font.width(component) / 2, h / 2 + 50, 0xFF6969); - } +// if (stack.getOrCreateTag().getBoolean("need_bolt_action")) { +// Font font = Minecraft.getInstance().font; +// Component component = Component.translatable("des.superbwarfare.need_bolt_action"); +// +// guiGraphics.drawString(font, component, w / 2 - font.width(component) / 2, h / 2 + 50, 0xFF6969); +// } } diff --git a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java index ded359eea..bcd92441b 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java @@ -116,6 +116,11 @@ public class ClientEventHandler { public static boolean holdFire = false; public static int burstFireSize = 0; + public static int customRpm = 0; + + public static double chamberRot = 0; + public static double actionMove = 0; + @SubscribeEvent public static void handleWeaponTurn(RenderHandEvent event) { LocalPlayer player = Minecraft.getInstance().player; @@ -162,6 +167,7 @@ public class ClientEventHandler { ItemStack stack = player.getMainHandItem(); var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); + int mode = GunsTool.getGunIntTag(stack, "FireMode"); // 精准度 float times = (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 0.8); @@ -202,9 +208,24 @@ public class ClientEventHandler { if (player.getPersistentData().getDouble("noRun") == 0 && player.isSprinting() && GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) != GLFW.GLFW_PRESS) { cantFireTime = Mth.clamp(cantFireTime + 3 * times, 0, 24); } else { - cantFireTime = Mth.clamp(cantFireTime - 6 * speed * times, 0, 24); + cantFireTime = Mth.clamp(cantFireTime - 6 * speed * times, 0, 40); } + int rpm = (int) (stack.getOrCreateTag().getDouble("rpm") + customRpm); + if (rpm == 0) { + rpm = 600; + } + + if (GunsTool.getPerkIntTag(stack, "DesperadoTimePost") > 0) { + int perkLevel = PerkHelper.getItemPerkLevel(ModPerks.DESPERADO.get(), stack); + rpm *= (int) (1.25 + 0.05 * perkLevel); + } + + double rps = (double) rpm / 60; + + // cooldown in ms + int cooldown = (int) (1000 / rps); + if ((holdFire || burstFireSize > 0) && (player.getMainHandItem().is(ModTags.Items.NORMAL_GUN) && cantFireTime == 0 @@ -219,51 +240,46 @@ public class ClientEventHandler { && !stack.getOrCreateTag().getBoolean("need_bolt_action")) || (stack.is(ModItems.MINIGUN.get()) && !player.isSprinting() && stack.getOrCreateTag().getDouble("overheat") == 0 && !player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getDouble("minigun_rotation") >= 10 ))) { - int customRpm = 0; - if (stack.getItem() == ModItems.DEVOTION.get()) { - customRpm = stack.getOrCreateTag().getInt("customRpm"); + if (mode == 0) { + if (clientTimer.getProgress() == 0) { + clientTimer.start(); + shootClient(player); + } + } else { + if (!clientTimer.started()) { + clientTimer.start(); + // 首发瞬间发射 + clientTimer.setProgress((cooldown + 1)); + } + + if (clientTimer.getProgress() >= cooldown) { + shootClient(player); + clientTimer.setProgress((clientTimer.getProgress() - cooldown)); + } } - if (stack.getItem() == ModItems.MINIGUN.get() && player.isInWater()) { - customRpm = (int) (-0.25 * stack.getOrCreateTag().getDouble("rpm")); - } - - int rpm = (int) (stack.getOrCreateTag().getDouble("rpm") + customRpm); - if (rpm == 0) { - rpm = 600; - } - - if (GunsTool.getPerkIntTag(stack, "DesperadoTimePost") > 0) { - int perkLevel = PerkHelper.getItemPerkLevel(ModPerks.DESPERADO.get(), stack); - rpm *= (int) (1.25 + 0.05 * perkLevel); - } - - double rps = (double) rpm / 60; - - // cooldown in ms - int cooldown = (int) (1000 / rps); - - if (!clientTimer.started()) { - clientTimer.start(); - // 首发瞬间发射 - clientTimer.setProgress((cooldown + 1)); - } - - if (clientTimer.getProgress() >= cooldown) { - shootClient(player); - ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(spread, burstFireSize)); - clientTimer.setProgress((clientTimer.getProgress() - cooldown)); - } if (notInGame()) { clientTimer.stop(); } } else { - clientTimer.stop(); + if (mode != 0) { + clientTimer.stop(); + } fireSpread = 0; } + + gunPartMove(times); + + if (mode == 0 && clientTimer.getProgress() >= cooldown) { + clientTimer.stop(); + } + + if (stack.getItem() == ModItems.DEVOTION.get() && (stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))) { + customRpm = 0; + } } public static void shootClient(Player player) { @@ -275,11 +291,27 @@ public class ClientEventHandler { holdFire = false; } - if (mode == 1 && stack.getOrCreateTag().getInt("ammo") == 1) { - burstFireSize = 1; + if (mode == 1) { + if (stack.getOrCreateTag().getInt("ammo") == 1) { + burstFireSize = 1; + } + if (burstFireSize == 1) { + cantFireTime = 40; + } + burstFireSize--; } - burstFireSize--; + if (stack.is(ModItems.DEVOTION.get())) { + customRpm = Math.min(customRpm + 20, 500); + } + + if (stack.getItem() == ModItems.SENTINEL.get()) { + chamberRot = 1; + } + + if (stack.getItem() == ModItems.NTW_20.get()) { + actionMove = 1; + } playGunClientSounds(player); handleClientShoot(); @@ -304,12 +336,18 @@ public class ClientEventHandler { } } + public static void gunPartMove(float times) { + chamberRot = Mth.lerp(0.07 * times, chamberRot, 0); + actionMove = Mth.lerp(0.2 * times, actionMove, 0); + } + public static void handleClientShoot() { Player player = Minecraft.getInstance().player; if (player == null) return; CompoundTag tag = player.getMainHandItem().getOrCreateTag(); if (!player.getMainHandItem().is(ModTags.Items.GUN)) return; + ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(gunSpread)); fireRecoilTime = 10; float gunRecoilY = (float) tag.getDouble("recoil_y") * 10; @@ -766,7 +804,7 @@ public class ClientEventHandler { float times = (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 0.8); boolean breath = (entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).breath; - breathTime = Mth.lerp(0.08f * times, breathTime, breath ? 1 : 0); + breathTime = Mth.lerp(0.2f * times, breathTime, breath ? 1 : 0); } private static void handleShockCamera(ViewportEvent.ComputeCameraAngles event, LivingEntity entity) { diff --git a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java index ce4c5c9bf..9db48d57a 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -57,14 +57,14 @@ public class GunEventHandler { private static void handleGunBolt(Player player) { ItemStack stack = player.getMainHandItem(); if (stack.is(ModTags.Items.NORMAL_GUN)) { - if (stack.getOrCreateTag().getInt("fire_animation") == 1 && stack.getOrCreateTag().getBoolean("need_bolt_action")) { - stack.getOrCreateTag().putInt("bolt_action_anim", stack.getOrCreateTag().getInt("bolt_action_time") + 1); - player.getCooldowns().addCooldown(stack.getItem(), stack.getOrCreateTag().getInt("bolt_action_time") + 1); - playGunBoltSounds(player); - } if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) { stack.getOrCreateTag().putInt("bolt_action_anim", stack.getOrCreateTag().getInt("bolt_action_anim") - 1); } + + if (stack.getItem() == ModItems.MARLIN.get() && stack.getOrCreateTag().getInt("bolt_action_anim") == 9) { + stack.getOrCreateTag().putBoolean("empty", false); + } + if (stack.getOrCreateTag().getInt("bolt_action_anim") == 1) { stack.getOrCreateTag().putBoolean("need_bolt_action", false); } @@ -271,11 +271,11 @@ public class GunEventHandler { MinecraftForge.EVENT_BUS.post(new ReloadEvent.Pre(player, stack)); if (stack.is(ModTags.Items.OPEN_BOLT)) { if (tag.getInt("ammo") == 0) { - data.putInt("ReloadTime", data.getInt("EmptyReloadTime") + 2); + data.putInt("ReloadTime", data.getInt("EmptyReloadTime") + 1); stack.getOrCreateTag().putBoolean("is_empty_reloading", true); playGunEmptyReloadSounds(player); } else { - data.putInt("ReloadTime", (int) tag.getDouble("normal_reload_time") + 2); + data.putInt("ReloadTime", (int) tag.getDouble("normal_reload_time") + 1); stack.getOrCreateTag().putBoolean("is_normal_reloading", true); playGunNormalReloadSounds(player); } @@ -284,9 +284,6 @@ public class GunEventHandler { stack.getOrCreateTag().putBoolean("is_empty_reloading", true); playGunEmptyReloadSounds(player); } - if (stack.getItem() == ModItems.DEVOTION.get()) { - tag.putInt("customRpm", 0); - } tag.putBoolean("start_reload", false); } @@ -317,7 +314,7 @@ public class GunEventHandler { if (stack.getItem() == ModItems.M_60.get()) { if (data.getInt("ReloadTime") == 55) { - tag.putBoolean("bullet_chain", false); + tag.putBoolean("HideBulletChain", false); } } @@ -506,16 +503,16 @@ public class GunEventHandler { if (tag.getDouble("prepare_load_time") != 0 && tag.getInt("ammo") == 0) { playGunPrepareLoadReloadSounds(player); tag.putInt("prepare_load", (int) tag.getDouble("prepare_load_time") + 1); - player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_load_time") + 1); + player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_load_time")); } else if (tag.getDouble("prepare_empty") != 0 && tag.getInt("ammo") == 0) { // 此处判断空仓换弹,如莫辛纳甘 playGunEmptyPrepareSounds(player); tag.putInt("prepare", (int) tag.getDouble("prepare_empty") + 1); - player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_empty") + 1); + player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_empty")); } else { playGunPrepareReloadSounds(player); tag.putInt("prepare", (int) tag.getDouble("prepare_time") + 1); - player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_time") + 1); + player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_time")); } tag.putBoolean("force_stop", false); @@ -635,11 +632,15 @@ public class GunEventHandler { // 三阶段 if ((tag.getInt("iterative") == 1 && tag.getInt("reload_stage") == 3) || tag.getBoolean("force_stage3_start")) { tag.putBoolean("force_stage3_start", false); - tag.putDouble("finish", (int) tag.getDouble("finish_time") + 2); + tag.putInt("finish", (int) tag.getDouble("finish_time") + 2); player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("finish_time") + 2); playGunEndReloadSounds(player); } + if (stack.getItem() == ModItems.MARLIN.get() && tag.getInt("finish") == 10) { + tag.putBoolean("empty", false); + } + // 三阶段结束 if (tag.getInt("finish") == 1) { tag.putInt("reload_stage", 0); diff --git a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java index af81a3f45..7dd433113 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java @@ -190,10 +190,6 @@ public class PlayerEventHandler { * 判断玩家是否在奔跑 */ private static void handlePlayerSprint(Player player) { - if (player.getMainHandItem().getOrCreateTag().getInt("fire_animation") > 0) { - player.getPersistentData().putDouble("noRun", 10); - } - if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).holdFire) { player.getPersistentData().putDouble("noRun", 10); } diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModSounds.java b/src/main/java/net/mcreator/superbwarfare/init/ModSounds.java index 28727dd06..934943b7f 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModSounds.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModSounds.java @@ -229,6 +229,7 @@ public class ModSounds { public static final RegistryObject MARLIN_PREPARE = REGISTRY.register("marlin_prepare", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "marlin_prepare"))); public static final RegistryObject MARLIN_LOOP = REGISTRY.register("marlin_loop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "marlin_loop"))); public static final RegistryObject MARLIN_END = REGISTRY.register("marlin_end", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "marlin_end"))); + public static final RegistryObject MARLIN_BOLT = REGISTRY.register("marlin_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "marlin_bolt"))); public static final RegistryObject M_870_FIRE_1P = REGISTRY.register("m_870_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_fire_1p"))); public static final RegistryObject M_870_FIRE_3P = REGISTRY.register("m_870_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_fire_3p"))); @@ -236,6 +237,7 @@ public class ModSounds { public static final RegistryObject M_870_VERYFAR = REGISTRY.register("m_870_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_veryfar"))); public static final RegistryObject M_870_PREPARE_LOAD = REGISTRY.register("m_870_prepare_load", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_prepare_load"))); public static final RegistryObject M_870_LOOP = REGISTRY.register("m_870_loop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_loop"))); + public static final RegistryObject M_870_BOLT = REGISTRY.register("m_870_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_bolt"))); public static final RegistryObject GLOCK_17_FIRE_1P = REGISTRY.register("glock_17_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "glock_17_fire_1p"))); public static final RegistryObject GLOCK_17_FIRE_3P = REGISTRY.register("glock_17_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "glock_17_fire_3p"))); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java index 95bec9f38..38287c44c 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java @@ -65,10 +65,6 @@ public abstract class GunItem extends Item { itemstack.getOrCreateTag().putBoolean("draw", false); } - if (itemstack.getOrCreateTag().getInt("fire_animation") > 0) { - itemstack.getOrCreateTag().putInt("fire_animation", (itemstack.getOrCreateTag().getInt("fire_animation") - 1)); - } - handleGunPerks(itemstack); handleGunAttachment(itemstack); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock17Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock17Item.java index d43430eb9..813b51aa1 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock17Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock17Item.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.handgun; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.Glock17ItemRenderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; @@ -73,10 +73,6 @@ public class Glock17Item extends GunItem implements GeoItem, AnimatedItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (stack.getOrCreateTag().getInt("fire_animation") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.fire")); - } - if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_empty")); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock18Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock18Item.java index aacfc76fd..a3919bdec 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock18Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock18Item.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.handgun; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.Glock18ItemRenderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -12,7 +13,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; @@ -74,10 +74,6 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (stack.getOrCreateTag().getInt("fire_animation") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.fire")); - } - if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_empty")); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/M1911Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/M1911Item.java index 7d2e10213..59c3c98db 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/M1911Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/M1911Item.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.handgun; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.M1911ItemRenderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; @@ -67,21 +67,6 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem { transformType = type; } - - - private PlayState fireAnimPredicate(AnimationState event) { - LocalPlayer player = Minecraft.getInstance().player; - if (player == null) return PlayState.STOP; - ItemStack stack = player.getMainHandItem(); - if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - - if (stack.getOrCreateTag().getInt("fire_animation") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m1911.fire")); - } - - return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.idle")); - } - private PlayState idlePredicate(AnimationState event) { LocalPlayer player = Minecraft.getInstance().player; if (player == null) return PlayState.STOP; @@ -93,27 +78,25 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem { } if (stack.getOrCreateTag().getBoolean("is_normal_reloading")) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_normal")); + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m1911.reload_normal")); } if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) { - return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.run_fast")); + return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m1911.run_fast")); } else { - return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.run")); + return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m1911.run")); } } - return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.idle")); + return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m1911.idle")); } @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { - var fireAnimController = new AnimationController<>(this, "fireAnimController", 0, this::fireAnimPredicate); - data.add(fireAnimController); var idleController = new AnimationController<>(this, "idleController", 2, this::idlePredicate); data.add(idleController); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Trachelium.java b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Trachelium.java index e936d8751..e211507f5 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Trachelium.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Trachelium.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.handgun; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.TracheliumItemRenderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; @@ -83,10 +83,6 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (stack.getOrCreateTag().getInt("fire_animation") > 1) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.fire")); - } - if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.reload")); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java index 5032f1651..58fcadd69 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java @@ -80,12 +80,6 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - var tag = stack.getOrCreateTag(); - - if (tag.getInt("fire_animation") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.javelin.fire")); - } - if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.javelin.reload")); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java index 7dc79e277..95a26df83 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.launcher; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.M79ItemRenderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; @@ -82,10 +82,6 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (stack.getOrCreateTag().getInt("fire_animation") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m79.fire")); - } - if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m79.reload")); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java index 2b3bd19ec..9aa20baa4 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.launcher; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.RpgItemRenderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; @@ -79,9 +79,7 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem { var tag = stack.getOrCreateTag(); - if (tag.getInt("fire_animation") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.rpg.fire")); - } + if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.rpg.reload")); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java index b442996aa..aaa0165fc 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.machinegun; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.M60ItemRenderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -12,7 +13,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; @@ -139,7 +139,7 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem { itemstack.getOrCreateTag().putBoolean("draw", false); if (itemstack.getOrCreateTag().getInt("ammo") <= 5) { - itemstack.getOrCreateTag().putBoolean("bullet_chain", true); + itemstack.getOrCreateTag().putBoolean("HideBulletChain", true); } } super.inventoryTick(itemstack, level, entity, slot, selected); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/MarlinItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/MarlinItem.java index c809c5afa..8fec73371 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/MarlinItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/MarlinItem.java @@ -20,13 +20,11 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Rarity; -import net.minecraft.world.level.Level; import net.minecraftforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; @@ -70,6 +68,35 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem { transformType = type; } + private PlayState fireAnimPredicate(AnimationState event) { + LocalPlayer player = Minecraft.getInstance().player; + if (player == null) return PlayState.STOP; + ItemStack stack = player.getMainHandItem(); + if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; + + if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.shift")); + } + + if (stack.getOrCreateTag().getInt("reload_stage") == 1 && stack.getOrCreateTag().getDouble("prepare") > 0) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.prepare")); + } + + if (stack.getOrCreateTag().getDouble("load_index") == 0 && stack.getOrCreateTag().getInt("reload_stage") == 2) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.iterativeload")); + } + + if (stack.getOrCreateTag().getDouble("load_index") == 1 && stack.getOrCreateTag().getInt("reload_stage") == 2) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.iterativeload2")); + } + + if (stack.getOrCreateTag().getInt("reload_stage") == 3) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.finish")); + } + + return event.setAndContinue(RawAnimation.begin().thenLoop("animation.marlin.idle")); + } + private PlayState idlePredicate(AnimationState event) { LocalPlayer player = Minecraft.getInstance().player; if (player == null) return PlayState.STOP; @@ -77,29 +104,7 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem { if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; if (transformType != null && transformType.firstPerson()) { - if (stack.getOrCreateTag().getDouble("marlin_animation_time") > 0 && !stack.getOrCreateTag().getBoolean("fastfiring")) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.shift")); - } - if (stack.getOrCreateTag().getDouble("marlin_animation_time") > 0 && stack.getOrCreateTag().getBoolean("fastfiring")) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.shift2")); - } - - if (stack.getOrCreateTag().getInt("reload_stage") == 1 && stack.getOrCreateTag().getDouble("prepare") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.prepare")); - } - - if (stack.getOrCreateTag().getDouble("load_index") == 0 && stack.getOrCreateTag().getInt("reload_stage") == 2) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.iterativeload")); - } - - if (stack.getOrCreateTag().getDouble("load_index") == 1 && stack.getOrCreateTag().getInt("reload_stage") == 2) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.iterativeload2")); - } - - if (stack.getOrCreateTag().getInt("reload_stage") == 3) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.finish")); - } if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) { @@ -117,6 +122,8 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem { @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + var fireAnimController = new AnimationController<>(this, "fireAnimController", 1, this::fireAnimPredicate); + data.add(fireAnimController); var idleController = new AnimationController<>(this, "idleController", 3, this::idlePredicate); data.add(idleController); } @@ -126,18 +133,12 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem { return this.cache; } - @Override - public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { - super.inventoryTick(itemstack, world, entity, slot, selected); - var tag = itemstack.getOrCreateTag(); - if (tag.getDouble("marlin_animation_time") > 0) { - tag.putDouble("marlin_animation_time", tag.getDouble("marlin_animation_time") - 1); - } - } - @Override public Set getReloadSound() { - return Set.of(ModSounds.MARLIN_LOOP.get(), ModSounds.MARLIN_PREPARE.get(), ModSounds.MARLIN_END.get()); + return Set.of(ModSounds.MARLIN_LOOP.get(), + ModSounds.MARLIN_PREPARE.get(), + ModSounds.MARLIN_END.get(), + ModSounds.MARLIN_BOLT.get()); } public static ItemStack getGunInstance() { diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java index 6e477b88f..716868aae 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.shotgun; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.Aa12ItemRenderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -12,7 +13,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.tools.RarityTool; import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; @@ -84,10 +84,6 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem { if (this.animationProcedure.equals("empty")) { - if (stack.getOrCreateTag().getInt("fire_animation") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.fire")); - } - if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.reload_empty")); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java index ac56ca323..99c82e46c 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.shotgun; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.M870ItemRenderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; @@ -70,13 +70,13 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem { transformType = type; } - private PlayState idlePredicate(AnimationState event) { + private PlayState fireAnimPredicate(AnimationState event) { LocalPlayer player = Minecraft.getInstance().player; if (player == null) return PlayState.STOP; ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (stack.getOrCreateTag().getDouble("fire_animation") > 0 && stack.getOrCreateTag().getDouble("fire_animation") < 15) { + if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.shift")); } @@ -100,6 +100,15 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.finish")); } + return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m870.idle")); + } + + private PlayState idlePredicate(AnimationState event) { + LocalPlayer player = Minecraft.getInstance().player; + if (player == null) return PlayState.STOP; + ItemStack stack = player.getMainHandItem(); + if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; + if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m870.run_fast")); @@ -114,6 +123,8 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem { @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + var fireAnimController = new AnimationController<>(this, "fireAnimController", 1, this::fireAnimPredicate); + data.add(fireAnimController); var idleController = new AnimationController<>(this, "idleController", 3, this::idlePredicate); data.add(idleController); } @@ -130,7 +141,9 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem { @Override public Set getReloadSound() { - return Set.of(ModSounds.M_870_PREPARE_LOAD.get(), ModSounds.M_870_LOOP.get()); + return Set.of(ModSounds.M_870_PREPARE_LOAD.get(), + ModSounds.M_870_LOOP.get(), + ModSounds.M_870_BOLT.get()); } public static ItemStack getGunInstance() { diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/Ntw20Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/Ntw20Item.java index f73f363e7..117fbb9d9 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/Ntw20Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/Ntw20Item.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.sniper; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.Ntw20Renderer; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; @@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.tools.RarityTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; @@ -83,10 +83,6 @@ public class Ntw20Item extends GunItem implements GeoItem, AnimatedItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.shift")); } - if (stack.getOrCreateTag().getInt("fire_animation") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.fire")); - } - if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.reload_empty")); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SentinelItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SentinelItem.java index 4f140e3fc..054f157c3 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SentinelItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SentinelItem.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.sniper; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.SentinelItemRenderer; import net.mcreator.superbwarfare.energy.ItemEnergyProvider; import net.mcreator.superbwarfare.event.ClientEventHandler; @@ -12,7 +13,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.tools.RarityTool; import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; @@ -196,10 +196,6 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { } } ); - - if (tag.getDouble("chamber_rot") > 0) { - tag.putDouble("chamber_rot", tag.getDouble("chamber_rot") - 1); - } } @Override diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/special/TaserItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/special/TaserItem.java index 0fc0a071f..2b34ae588 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/special/TaserItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/special/TaserItem.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.item.gun.special; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.client.renderer.item.TaserItemRenderer; import net.mcreator.superbwarfare.energy.ItemEnergyProvider; import net.mcreator.superbwarfare.event.ClientEventHandler; @@ -13,7 +14,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; -import net.mcreator.superbwarfare.client.PoseTool; import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; @@ -126,10 +126,6 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (stack.getOrCreateTag().getInt("fire_animation") > 1) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.taser.fire")); - } - if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.taser.reload")); } diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java index b7d729ffb..5b37fef08 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java @@ -70,6 +70,8 @@ public class FireMessage { return; } + handleGunBolt(player, player.getMainHandItem()); + if (type == 0) { handlePlayerShoot(player); player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { @@ -88,10 +90,6 @@ public class FireMessage { handleBowShoot(player); } - if (player.getMainHandItem().getItem() == ModItems.DEVOTION.get()) { - player.getMainHandItem().getOrCreateTag().putDouble("customRpm", 0); - } - if (player.getMainHandItem().getItem() == ModItems.JAVELIN.get()) { var handItem = player.getMainHandItem(); var tag = handItem.getOrCreateTag(); @@ -157,11 +155,12 @@ public class FireMessage { capability.syncPlayerVariables(player); }); } + } - // 栓动武器左键手动拉栓 - if (tag.getInt("bolt_action_time") > 0 && tag.getInt("ammo") > 0 && tag.getInt("bolt_action_anim") == 0) { - if (!player.getCooldowns().isOnCooldown(handItem.getItem()) && handItem.getOrCreateTag().getBoolean("need_bolt_action")) { - handItem.getOrCreateTag().putInt("bolt_action_anim", handItem.getOrCreateTag().getInt("bolt_action_time") + 1); + private static void handleGunBolt(Player player, ItemStack stack) { + if (stack.getOrCreateTag().getInt("bolt_action_time") > 0 && stack.getOrCreateTag().getInt("ammo") > 0 && stack.getOrCreateTag().getInt("bolt_action_anim") == 0) { + if (!player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getBoolean("need_bolt_action")) { + stack.getOrCreateTag().putInt("bolt_action_anim", stack.getOrCreateTag().getInt("bolt_action_time") + 1); GunEventHandler.playGunBoltSounds(player); } } @@ -225,7 +224,6 @@ public class FireMessage { player.getCooldowns().addCooldown(player.getMainHandItem().getItem(), 7); player.getMainHandItem().getOrCreateTag().putInt("arrow_empty", 7); player.getMainHandItem().getOrCreateTag().putDouble("power", 0); - stack.getOrCreateTag().putInt("fire_animation", 2); int count = 0; for (var inv : player.getInventory().items) { @@ -372,7 +370,6 @@ public class FireMessage { level.addFreshEntity(taserBulletProjectile); } - stack.getOrCreateTag().putInt("fire_animation", 4); stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( @@ -428,7 +425,6 @@ public class FireMessage { serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.M_79_VERYFAR.get(), SoundSource.PLAYERS, 10, 1); } - stack.getOrCreateTag().putInt("fire_animation", 2); stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); if (player.level() instanceof ServerLevel && player instanceof ServerPlayer serverPlayer) { @@ -486,7 +482,6 @@ public class FireMessage { serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.RPG_VERYFAR.get(), SoundSource.PLAYERS, 10, 1); } - tag.putInt("fire_animation", 2); tag.putInt("ammo", tag.getInt("ammo") - 1); if (player.level() instanceof ServerLevel && player instanceof ServerPlayer serverPlayer) { @@ -546,7 +541,6 @@ public class FireMessage { serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.JAVELIN_FAR.get(), SoundSource.PLAYERS, 10, 1); } - tag.putInt("fire_animation", 2); tag.putInt("ammo", tag.getInt("ammo") - 1); if (player.level() instanceof ServerLevel && player instanceof ServerPlayer serverPlayer) { diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/ShootMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/ShootMessage.java index 5fb03fe8c..e97c10ca7 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/ShootMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/ShootMessage.java @@ -8,14 +8,12 @@ import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.perk.AmmoPerk; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; -import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.ParticleTool; import net.mcreator.superbwarfare.tools.SoundTool; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.util.Mth; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -31,33 +29,30 @@ import static net.mcreator.superbwarfare.event.GunEventHandler.playGunSounds; public class ShootMessage { private final double spread; - private final int burstSize; - public ShootMessage(double spread, int burstSize) { + public ShootMessage(double spread) { this.spread = spread; - this.burstSize = burstSize; } public static ShootMessage decode(FriendlyByteBuf buffer) { - return new ShootMessage(buffer.readDouble(), buffer.readInt()); + return new ShootMessage(buffer.readDouble()); } public static void encode(ShootMessage message, FriendlyByteBuf buffer) { buffer.writeDouble(message.spread); - buffer.writeInt(message.burstSize); } public static void handler(ShootMessage message, Supplier contextSupplier) { NetworkEvent.Context context = contextSupplier.get(); context.enqueueWork(() -> { if (context.getSender() != null) { - pressAction(context.getSender(), message.spread, message.burstSize); + pressAction(context.getSender(), message.spread); } }); context.setPacketHandled(true); } - public static void pressAction(Player player, double spared, int burstSize) { + public static void pressAction(Player player, double spared) { Level level = player.level(); if (!level.isLoaded(player.blockPosition())) { @@ -66,23 +61,9 @@ public class ShootMessage { ItemStack stack = player.getMainHandItem(); if (stack.is(ModTags.Items.NORMAL_GUN)) { - - double rpm = stack.getOrCreateTag().getDouble("rpm") + stack.getOrCreateTag().getInt("customRpm"); - - int coolDownTick = (int) Math.ceil(20 / (rpm / 60)); - int mode = GunsTool.getGunIntTag(stack, "FireMode"); - int projectileAmount = (int) stack.getOrCreateTag().getDouble("projectile_amount"); if (stack.getOrCreateTag().getInt("ammo") > 0) { - int singleInterval = 0; - int burstCooldown = 0; - - if (mode == 0) { - singleInterval = coolDownTick; - } else if (mode == 1) { - burstCooldown = burstSize == 0 ? coolDownTick + 3 : 0; - } /* 空仓挂机 @@ -99,16 +80,11 @@ public class ShootMessage { } stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); - stack.getOrCreateTag().putInt("fire_animation", coolDownTick); stack.getOrCreateTag().putDouble("empty", 1); - if (stack.getItem() == ModItems.M_60.get()) { - stack.getOrCreateTag().putBoolean("bullet_chain", true); - } - - if (stack.getItem() == ModItems.DEVOTION.get()) { - stack.getOrCreateTag().putInt("customRpm", Mth.clamp(stack.getOrCreateTag().getInt("customRpm") + 20, 0, 500)); + if (stack.getItem() == ModItems.M_60.get() && stack.getOrCreateTag().getInt("ammo") <= 5) { + stack.getOrCreateTag().putBoolean("HideBulletChain", true); } if (stack.getItem() == ModItems.ABEKIRI.get()) { @@ -123,25 +99,8 @@ public class ShootMessage { stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( iEnergyStorage -> iEnergyStorage.extractEnergy(3000, false) ); - stack.getOrCreateTag().putDouble("chamber_rot", 20); } - int customCoolDown = 0; - - if (stack.getItem() == ModItems.MARLIN.get()) { - if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zoom) { - stack.getOrCreateTag().putDouble("marlin_animation_time", 15); - stack.getOrCreateTag().putBoolean("fastfiring", false); - customCoolDown = 5; - } else { - stack.getOrCreateTag().putDouble("marlin_animation_time", 10); - stack.getOrCreateTag().putBoolean("fastfiring", true); - } - } - - int cooldown = burstCooldown + singleInterval + customCoolDown; - player.getCooldowns().addCooldown(stack.getItem(), cooldown); - var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); for (int index0 = 0; index0 < (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug ? 1 : projectileAmount); index0++) { @@ -188,8 +147,6 @@ public class ShootMessage { capability.syncPlayerVariables(player); }); } - - tag.putInt("fire_animation", 2); } } } diff --git a/src/main/resources/assets/superbwarfare/animations/m1911.animation.json b/src/main/resources/assets/superbwarfare/animations/m1911.animation.json index f861ea4e4..fe36aa75a 100644 --- a/src/main/resources/assets/superbwarfare/animations/m1911.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/m1911.animation.json @@ -1,11 +1,11 @@ { "format_version": "1.8.0", "animations": { - "animation.glock.idle": { + "animation.m1911.idle": { "loop": true, "animation_length": 2 }, - "animation.glock.run": { + "animation.m1911.run": { "loop": true, "animation_length": 0.8, "bones": { @@ -80,7 +80,7 @@ } } }, - "animation.glock.run_fast": { + "animation.m1911.run_fast": { "loop": true, "animation_length": 0.7, "bones": { @@ -158,48 +158,7 @@ } } }, - "animation.m1911.fire": { - "loop": "hold_on_last_frame", - "animation_length": 0.1667, - "override_previous_animation": true, - "bones": { - "lun": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.0417": { - "vector": [0, 0, -22.5] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.0417": { - "vector": [0, 0, 0] - } - } - }, - "roll": { - "rotation": { - "0.0": { - "vector": [-5, 0, 0] - }, - "0.0833": { - "vector": [0, 0, 0], - "easing": "easeInElastic" - } - } - }, - "hammer": { - "rotation": { - "vector": [60, 0, 0] - } - } - } - }, - "animation.glock.reload_normal": { + "animation.m1911.reload_normal": { "loop": "hold_on_last_frame", "animation_length": 1.4, "bones": { @@ -278,55 +237,6 @@ } } }, - "camera": { - "rotation": { - "0.05": { - "vector": [0, 0, 0] - }, - "0.175": { - "vector": [2, -2, 1], - "easing": "easeInSine" - }, - "0.25": { - "vector": [2.5, 3, -2], - "easing": "easeInElastic" - }, - "0.3": { - "vector": [-1, -2, 1], - "easing": "easeInSine" - }, - "0.375": { - "vector": [0, 2, -0.8] - }, - "0.475": { - "vector": [-0.67, -0.67, 0.4] - }, - "0.75": { - "vector": [0.5, 0, 1.2], - "easing": "easeOutSine" - }, - "0.875": { - "vector": [-0.1, 0, 2] - }, - "0.975": { - "vector": [0, 0, 1.5], - "easing": "easeInElastic" - }, - "1.025": { - "vector": [1, 1, -2.5], - "easing": "easeInSine" - }, - "1.1": { - "vector": [-0.5, -0.5, 1.5] - }, - "1.2": { - "vector": [0.5, 0.5, -1.17] - }, - "1.3": { - "vector": [0, 0, 0] - } - } - }, "Righthand": { "rotation": { "0.25": { @@ -656,6 +566,55 @@ "vector": [0, 0, 0] } } + }, + "camera": { + "rotation": { + "0.05": { + "vector": [0, 0, 0] + }, + "0.175": { + "vector": [2, -2, 1], + "easing": "easeInSine" + }, + "0.25": { + "vector": [2.5, 3, -2], + "easing": "easeInElastic" + }, + "0.3": { + "vector": [-1, -2, 1], + "easing": "easeInSine" + }, + "0.375": { + "vector": [0, 2, -0.8] + }, + "0.475": { + "vector": [-0.67, -0.67, 0.4] + }, + "0.75": { + "vector": [0.5, 0, 1.2], + "easing": "easeOutSine" + }, + "0.875": { + "vector": [-0.1, 0, 2] + }, + "0.975": { + "vector": [0, 0, 1.5], + "easing": "easeInElastic" + }, + "1.025": { + "vector": [1, 1, -2.5], + "easing": "easeInSine" + }, + "1.1": { + "vector": [-0.5, -0.5, 1.5] + }, + "1.2": { + "vector": [0.5, 0.5, -1.17] + }, + "1.3": { + "vector": [0, 0, 0] + } + } } } }, diff --git a/src/main/resources/assets/superbwarfare/animations/m870.animation.json b/src/main/resources/assets/superbwarfare/animations/m870.animation.json index 18a04faeb..12ceedec1 100644 --- a/src/main/resources/assets/superbwarfare/animations/m870.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/m870.animation.json @@ -193,62 +193,6 @@ } } }, - "animation.m870.draw": { - "animation_length": 1, - "bones": { - "main": { - "rotation": { - "0.0": { - "vector": [27.21312, -47.42646, -2.0218] - }, - "0.2917": { - "vector": [12.5, -15, 0] - }, - "0.4167": { - "vector": [3.48268, 0.40464, 8.20687] - }, - "0.5833": { - "vector": [0, 0, -2] - }, - "0.7083": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [3, -17.3, 0] - }, - "0.4167": { - "vector": [0, 0, -1.65] - }, - "0.5": { - "vector": [0, 0, 0.93] - }, - "0.7083": { - "vector": [0, 0, 0] - } - } - }, - "camera": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.4167": { - "vector": [0, 0, 0] - }, - "0.5": { - "vector": [0.25, -0.5, 0.5], - "easing": "easeInSine" - }, - "0.5833": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - } - } - } - }, "animation.m870.prepare": { "animation_length": 0.75, "bones": { @@ -1191,38 +1135,33 @@ } }, "animation.m870.shift": { - "animation_length": 0.675, + "loop": "hold_on_last_frame", + "animation_length": 1, "bones": { "main": { "rotation": { "0.0": { "vector": [0, 0, 0] }, - "0.05": { - "vector": [-12.70704, -2.00287, -6.82365] + "0.1": { + "vector": [-0.90661, -0.7335, -2.65556] }, - "0.175": { - "vector": [-4.73303, -1.97055, -6.0739] - }, - "0.225": { - "vector": [-4.60652, -1.80399, -2.32556] - }, - "0.3": { - "vector": [-7.39899, -0.87335, 6.1433], + "0.15": { + "vector": [-1.39899, -0.87335, 6.1433], "easing": "easeOutSine" }, - "0.375": { - "vector": [-5.75249, -0.05015, 7.75233], + "0.225": { + "vector": [-0.75249, -0.05015, 7.75233], "easing": "easeInCirc" }, - "0.475": { - "vector": [-3.15429, -0.87108, -4.64335], + "0.325": { + "vector": [-0.15429, -0.87108, -4.64335], "easing": "easeOutQuad" }, - "0.575": { + "0.425": { "vector": [-1.60854, 0.22225, 3.17569] }, - "0.675": { + "0.525": { "vector": [0, 0, 0] } }, @@ -1230,30 +1169,24 @@ "0.0": { "vector": [0, 0, 0] }, - "0.05": { - "vector": [-0.375, 0.1, 3.575] + "0.075": { + "vector": [0, 0, -0.25] }, - "0.125": { - "vector": [-0.63, -0.4, 1.375] + "0.175": { + "vector": [-0.155, -0.475, 0.45], + "easing": "easeInOutSine" }, - "0.25": { - "vector": [-0.39, -0.44, 1.06] + "0.275": { + "vector": [-0.155, -0.475, 0.45], + "easing": "easeInOutSine" }, "0.325": { - "vector": [-0.155, -0.475, 2.95], - "easing": "easeInOutSine" - }, - "0.425": { - "vector": [-0.155, -0.475, 2.95], - "easing": "easeInOutSine" - }, - "0.475": { "vector": [-0.06, -0.19, 0.7] }, - "0.55": { + "0.4": { "vector": [0, 0, -0.4] }, - "0.675": { + "0.525": { "vector": [0, 0, 0] } } @@ -1263,10 +1196,10 @@ "0.0": { "vector": [0, 0, 0] }, - "0.2": { + "0.05": { "vector": [0, 0, 0] }, - "0.525": { + "0.375": { "vector": [0, 0, 0] } }, @@ -1274,16 +1207,16 @@ "0.0": { "vector": [0, 0, 0] }, - "0.2": { + "0.05": { "vector": [0, 0, 0] }, - "0.275": { + "0.125": { "vector": [0, 0, 2.5] }, - "0.45": { + "0.3": { "vector": [0, 0, 2.5] }, - "0.525": { + "0.375": { "vector": [0, 0, 0] } } @@ -1323,19 +1256,19 @@ "0.0": { "vector": [0, 0, 0] }, - "0.175": { + "0.025": { "vector": [0, 0, 0] }, - "0.2": { + "0.05": { "vector": [0, 0, 0] }, - "0.25": { + "0.1": { "vector": [0, 0, 0] }, - "0.425": { + "0.275": { "vector": [0, 200, 0] }, - "0.45": { + "0.3": { "vector": [0, 0, 0] } }, @@ -1343,104 +1276,97 @@ "0.0": { "vector": [0, 0, 0] }, - "0.175": { + "0.025": { "vector": [0, 0, 0] }, - "0.2": { + "0.05": { "vector": [0, 1.3, -0.2] }, - "0.25": { + "0.1": { "vector": [0, 1.3, 1.5] }, - "0.275": { + "0.125": { "vector": [-3.02654, 1.74663, 1.62913] }, - "0.3": { + "0.15": { "vector": [-5.37048, 1.67247, 1.20688] }, - "0.325": { + "0.175": { "vector": [-7.70182, 1.64131, 1.28384] }, - "0.35": { + "0.2": { "vector": [-9.97823, 1.51902, 1.84468] }, - "0.375": { + "0.225": { "vector": [-12.48333, 1.10912, 2.30914] }, - "0.4": { + "0.25": { "vector": [-14.74357, 2.32811, 3.06307] }, - "0.425": { + "0.275": { "vector": [-1508.57, 2.02, 2.78] }, - "0.45": { + "0.3": { "vector": [0, 0, 0] } }, "scale": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.2": { - "vector": [1, 1, 1] - }, - "0.375": { - "vector": [1, 1, 1] - }, - "0.4": { - "vector": [0, 0, 0] - } - } - }, - "camera": { - "rotation": { "0.0": { "vector": [0, 0, 0] }, "0.05": { - "vector": [-2, -1, -2] + "vector": [1, 1, 1] }, - "0.1": { - "vector": [-1.5, 0.5, 1] + "0.225": { + "vector": [1, 1, 1] }, - "0.175": { - "vector": [-1, -0.25, -0.5] - }, - "0.2": { - "vector": [-0.94, -0.24, 0] - }, - "0.3": { - "vector": [-0.71, -1.5, 2] - }, - "0.35": { - "vector": [-0.59, 0.3, 0.5] - }, - "0.425": { - "vector": [-0.35, -0.4, -1.5] - }, - "0.5": { - "vector": [-0.15, 0.3, 0.64] - }, - "0.6": { + "0.25": { "vector": [0, 0, 0] } } }, "Lefthand": { "position": { - "0.2": { + "0.05": { "vector": [0, 0, 0] }, - "0.275": { + "0.125": { "vector": [0, 0, 2.5] }, - "0.45": { + "0.3": { "vector": [0, 0, 2.5] }, - "0.525": { + "0.375": { "vector": [0, 0, 0] } } + }, + "camera": { + "rotation": { + "0.075": { + "vector": [0, 0, 0] + }, + "0.15": { + "vector": [-0.71, -1.5, 2] + }, + "0.2": { + "vector": [-0.59, 0.3, 0.5] + }, + "0.275": { + "vector": [-0.35, -0.4, -1.5] + }, + "0.35": { + "vector": [-0.15, 0.3, 0.64] + }, + "0.45": { + "vector": [0, 0, 0] + } + } + } + }, + "sound_effects": { + "0.0": { + "effect": "m_870_bolt" } } }, diff --git a/src/main/resources/assets/superbwarfare/animations/marlin.animation.json b/src/main/resources/assets/superbwarfare/animations/marlin.animation.json index 7257db7e7..81d9d14f5 100644 --- a/src/main/resources/assets/superbwarfare/animations/marlin.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/marlin.animation.json @@ -3,86 +3,7 @@ "animations": { "animation.marlin.idle": { "loop": true, - "animation_length": 2, - "bones": { - "bullet": { - "scale": { - "vector": [0, 0, 0] - } - }, - "Lefthand": { - "rotation": { - "vector": [-36.92278, -14.87784, 55.91421] - }, - "position": { - "vector": [-1.3, 1.55, -1.15] - } - } - } - }, - "animation.marlin.draw": { - "animation_length": 1, - "bones": { - "0": { - "rotation": { - "0.0": { - "vector": [27.21312, -47.42646, -2.0218] - }, - "0.3": { - "vector": [12.5, -15, 0] - }, - "0.4": { - "vector": [3.48268, 0.40464, 8.20687] - }, - "0.6": { - "vector": [0, 0, -2] - }, - "0.7": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [3, -17.3, 0] - }, - "0.4": { - "vector": [0, 0, -1.65] - }, - "0.5": { - "vector": [0, 0, 0.93] - }, - "0.7": { - "vector": [0, 0, 0] - } - } - }, - "camera": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.4": { - "vector": [0, 0, 0] - }, - "0.5": { - "vector": [0.25, -0.5, 0.5], - "easing": "easeInSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - } - }, - "Lefthand": { - "rotation": { - "vector": [-36.92278, -14.87784, 55.91421] - }, - "position": { - "vector": [-1.3, 1.55, -1.15] - } - } - } + "animation_length": 2 }, "animation.marlin.run": { "loop": true, @@ -130,11 +51,6 @@ } } }, - "bullet": { - "scale": { - "vector": [0, 0, 0] - } - }, "camera": { "rotation": { "0.0": { @@ -153,14 +69,6 @@ "vector": [-0.3, -0.3, 0.3] } } - }, - "Lefthand": { - "rotation": { - "vector": [-36.92278, -14.87784, 55.91421] - }, - "position": { - "vector": [-1.3, 1.55, -1.15] - } } } }, @@ -301,83 +209,28 @@ } } }, - "animation.marlin.fire": { - "animation_length": 0.1083, - "bones": { - "0": { - "rotation": { - "vector": [0, 0, 0] - }, - "position": { - "vector": [0, 0, 0] - } - }, - "bullet": { - "scale": { - "vector": [0, 0, 0] - } - }, - "Lefthand": { - "rotation": { - "vector": [-36.92278, -14.87784, 55.91421] - }, - "position": { - "vector": [-1.3, 1.55, -1.15] - } - } - } - }, - "animation.marlin.fire2": { - "animation_length": 0.1083, - "bones": { - "0": { - "rotation": { - "vector": [0, 0, 0] - }, - "position": { - "vector": [0, 0, 0] - } - }, - "bullet": { - "scale": { - "vector": [0, 0, 0] - } - }, - "Lefthand": { - "rotation": { - "vector": [-36.92278, -14.87784, 55.91421] - }, - "position": { - "vector": [-1.3, 1.55, -1.15] - } - } - } - }, "animation.marlin.shift": { "loop": "hold_on_last_frame", "animation_length": 0.6, "bones": { "0": { "rotation": { - "0.0": { + "0.05": { "vector": [0, 0, 0] }, - "0.0667": { - "vector": [-0.07669, 0.14268, -5.6755] + "0.1167": { + "vector": [-0.93779, 0.20262, 8.99033] }, - "0.1333": { - "vector": [-0.20051, 0.51542, 4.52219], - "easing": "easeInOutSine" + "0.1833": { + "vector": [-0.03704, 0, -3.62963] }, - "0.2167": { - "vector": [-2.16, 0.41, 3.62], - "easing": "easeInSine" + "0.3": { + "vector": [-2.69136, 0, -2.41975] }, - "0.3333": { - "vector": [-0.44, 0.27, 2.41], - "easing": "easeOutSine" + "0.4167": { + "vector": [2.0388, 0, -0.8642] }, - "0.5667": { + "0.5333": { "vector": [0, 0, 0] } }, @@ -385,23 +238,22 @@ "0.0": { "vector": [0, 0, 0] }, - "0.1": { - "vector": [-0.4, -0.2, 0.6], - "easing": "easeInElastic" + "0.1333": { + "vector": [0, -0.6, 0.5] }, - "0.1833": { - "vector": [-0.42, -0.46, -0.27], - "easing": "easeInElastic" + "0.2167": { + "vector": [0, -0.43, -1.06] }, - "0.2667": { - "vector": [-0.28, -0.11, -0.18], - "easing": "easeInElastic" + "0.3167": { + "vector": [0.02682, -0.98905, -1.45462] }, - "0.4167": { - "vector": [-0.14, 0.1, 0.41], - "easing": "easeInElastic" + "0.3833": { + "vector": [0, -0.16, 1.23] }, - "0.5667": { + "0.4667": { + "vector": [0, 0, -0.5] + }, + "0.5333": { "vector": [0, 0, 0] } } @@ -411,15 +263,23 @@ "0.0": { "vector": [0, 0, 0] }, - "0.0833": { + "0.1167": { "vector": [-5.322, 11.403, 4.10285], "easing": "easeOutSine" }, - "0.25": { - "vector": [-20.32, 11.4, 4.1], - "easing": "easeInElastic" + "0.1333": { + "vector": [-5.322, 11.403, 4.10285], + "easing": "easeOutSine" }, - "0.4": { + "0.2167": { + "vector": [-20.32, 11.4, 4.1], + "easing": "linear" + }, + "0.35": { + "vector": [-20.32, 11.4, 4.1], + "easing": "linear" + }, + "0.3833": { "vector": [-5.322, 11.403, 4.10285], "easing": "easeInOutCubic" }, @@ -431,15 +291,23 @@ "0.0": { "vector": [0, 0, 0] }, - "0.0833": { + "0.1167": { "vector": [-1.9, -0.1, -0.1], "easing": "easeOutSine" }, - "0.25": { - "vector": [-1.9, -0.1, -2.3], - "easing": "easeInElastic" + "0.1333": { + "vector": [-1.9, -0.1, -0.1], + "easing": "easeOutSine" }, - "0.4": { + "0.2167": { + "vector": [-1.9, -0.1, -2.3], + "easing": "linear" + }, + "0.35": { + "vector": [-1.9, -0.1, -2.3], + "easing": "linear" + }, + "0.3833": { "vector": [-1.9, -0.1, -0.1], "easing": "easeInOutCubic" }, @@ -450,14 +318,21 @@ }, "ganggan": { "rotation": { - "0.0833": { + "0.1167": { "vector": [0, 0, 0] }, - "0.25": { - "vector": [-60, 0, 0], - "easing": "easeInElastic" + "0.1333": { + "vector": [0, 0, 0] }, - "0.4": { + "0.2167": { + "vector": [-60, 0, 0], + "easing": "linear" + }, + "0.35": { + "vector": [-60, 0, 0], + "easing": "linear" + }, + "0.3833": { "vector": [0, 0, 0], "easing": "easeInElastic" } @@ -473,14 +348,21 @@ }, "huakuai": { "position": { - "0.0833": { + "0.1167": { "vector": [0, 0, 0] }, - "0.25": { - "vector": [0, 0, 1.9], - "easing": "easeInElastic" + "0.1333": { + "vector": [0, 0, 0] }, - "0.4": { + "0.2167": { + "vector": [0, 0, 1.9], + "easing": "linear" + }, + "0.35": { + "vector": [0, 0, 1.9], + "easing": "linear" + }, + "0.3833": { "vector": [0, 0, 0], "easing": "easeInElastic" } @@ -552,9 +434,6 @@ } }, "scale": { - "0.0": { - "vector": [0, 0, 0] - }, "0.1": { "vector": [1, 1, 1] }, @@ -586,255 +465,11 @@ "easing": "easeInElastic" } } - }, - "Lefthand": { - "rotation": { - "vector": [-36.92278, -14.87784, 55.91421] - }, - "position": { - "vector": [-1.3, 1.55, -1.15] - } } - } - }, - "animation.marlin.shift2": { - "loop": "hold_on_last_frame", - "animation_length": 0.5, - "bones": { - "0": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.05": { - "vector": [-0.07669, 0.14268, -5.6755] - }, - "0.1333": { - "vector": [-0.20051, 0.51542, 4.52219], - "easing": "easeInOutSine" - }, - "0.2": { - "vector": [-2.16, 0.41, 3.62], - "easing": "easeInSine" - }, - "0.2833": { - "vector": [-0.44, 0.27, 2.41], - "easing": "easeOutSine" - }, - "0.45": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.1": { - "vector": [-0.4, -0.2, 0.6], - "easing": "easeInElastic" - }, - "0.1667": { - "vector": [-0.42, -0.46, -0.27], - "easing": "easeInElastic" - }, - "0.2333": { - "vector": [-0.28, -0.11, -0.18], - "easing": "easeInElastic" - }, - "0.3167": { - "vector": [-0.14, 0.1, 0.41], - "easing": "easeInElastic" - }, - "0.45": { - "vector": [0, 0, 0] - } - } - }, - "Righthand": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.0667": { - "vector": [-5.322, 11.403, 4.10285], - "easing": "easeOutSine" - }, - "0.1667": { - "vector": [-20.32, 11.4, 4.1], - "easing": "easeInElastic" - }, - "0.2833": { - "vector": [-5.322, 11.403, 4.10285], - "easing": "easeInOutCubic" - }, - "0.4167": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.0667": { - "vector": [-1.9, -0.1, -0.1], - "easing": "easeOutSine" - }, - "0.1667": { - "vector": [-1.9, -0.1, -2.3], - "easing": "easeInElastic" - }, - "0.2833": { - "vector": [-1.9, -0.1, -0.1], - "easing": "easeInOutCubic" - }, - "0.4167": { - "vector": [0, 0, 0] - } - } - }, - "ganggan": { - "rotation": { - "0.0667": { - "vector": [0, 0, 0] - }, - "0.1667": { - "vector": [-60, 0, 0], - "easing": "easeInElastic" - }, - "0.2833": { - "vector": [0, 0, 0], - "easing": "easeInElastic" - } - } - }, - "bullethead": { - "position": { - "vector": [0, 0, 0] - }, - "scale": { - "vector": [0, 0, 0] - } - }, - "huakuai": { - "position": { - "0.0667": { - "vector": [0, 0, 0] - }, - "0.1667": { - "vector": [0, 0, 1.9], - "easing": "easeInElastic" - }, - "0.2833": { - "vector": [0, 0, 0], - "easing": "easeInElastic" - } - } - }, - "camera": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.0667": { - "vector": [1, 0.5, 1] - }, - "0.1833": { - "vector": [1, -2, -2], - "easing": "easeInElastic" - }, - "0.3": { - "vector": [1, 0.5, 1] - }, - "0.45": { - "vector": [0, 0, 0], - "easing": "easeInElastic" - } - } - }, - "bullet": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.05": { - "vector": [0, 0, 0] - }, - "0.0667": { - "vector": [0, 0, 0] - }, - "0.1167": { - "vector": [0, 0, 0] - }, - "0.25": { - "vector": [0, 200, 0] - }, - "0.2833": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.05": { - "vector": [0, 0, 0] - }, - "0.0667": { - "vector": [0, 0, -0.2] - }, - "0.1167": { - "vector": [0, 0, 1.5] - }, - "0.15": { - "vector": [-2.32654, 0.7466, 1.92913] - }, - "0.1667": { - "vector": [-4.27048, 1.1725, 2.40688] - }, - "0.1833": { - "vector": [-5.89, 1.36, 2.95] - }, - "0.2": { - "vector": [-7.50182, 1.3413, 3.68384] - }, - "0.2167": { - "vector": [-8.97823, 1.019, 4.34468] - }, - "0.2333": { - "vector": [-10.23, 0.46, 5.08] - }, - "0.25": { - "vector": [-1508.57, 2.02, 2.78] - }, - "0.2667": { - "vector": [0, 0, 0] - } - }, - "scale": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.0333": { - "vector": [1, 1, 1] - }, - "0.25": { - "vector": [1, 1, 1] - }, - "0.2667": { - "vector": [0, 0, 0] - }, - "0.45": { - "vector": [0, 0, 0] - } - } - }, - "Lefthand": { - "rotation": { - "vector": [-36.92278, -14.87784, 55.91421] - }, - "position": { - "vector": [-1.3, 1.55, -1.15] - } + }, + "sound_effects": { + "0.0": { + "effect": "marlin_end" } } }, @@ -850,8 +485,8 @@ "0.0417": { "vector": [-7.64829, -3.7641, 21.26762] }, - "0.2": { - "vector": [-18.239, 20.14826, 45.50003] + "0.125": { + "vector": [-17.17955, 5.85094, 50.17078] }, "0.25": { "vector": [-19.51825, 23.01719, 49.32139], @@ -862,41 +497,36 @@ "0.0": { "vector": [0, 0, 0] }, + "0.125": { + "vector": [-0.18, -0.21, 0.32] + }, "0.25": { "vector": [-0.6, 3.38, 1.1], - "easing": "easeInOutSine" + "easing": "easeInSine" } } }, "Lefthand": { "rotation": { "0.0": { - "vector": [-36.92278, -14.87784, 55.91421] + "vector": [0, 0, 0] }, - "0.0833": { - "vector": [-36.92278, -14.87784, 55.91421] + "0.125": { + "vector": [-29.5, 0, 0] }, "0.25": { - "vector": [-69.73114, -16.81988, 61.84372], - "easing": "linear" + "vector": [-45, 0, 0] } }, "position": { "0.0": { - "vector": [-1.3, 1.55, -1.15] + "vector": [0, 0, 0] }, - "0.0833": { - "vector": [-1.3, 1.55, -1.15] - }, - "0.1333": { - "vector": [3.71625, 2.71032, -0.24509] - }, - "0.1667": { - "vector": [3.91675, 3.95006, 0.32566] + "0.125": { + "vector": [4.23155, 4.59678, -0.20118] }, "0.25": { - "vector": [3.68428, 6.19247, 0.90079], - "easing": "linear" + "vector": [5.5774, 7.76512, -0.33163] } } }, @@ -1038,22 +668,18 @@ "Lefthand": { "rotation": { "0.0": { - "vector": [-72.73114, -16.81988, 61.84372], - "easing": "linear" + "vector": [-45, 0, 0] }, - "0.8333": { - "vector": [-72.73114, -16.81988, 61.84372], - "easing": "linear" + "0.825": { + "vector": [-45, 0, 0] } }, "position": { "0.0": { - "vector": [3.68428, 6.19247, 0.90079], - "easing": "linear" + "vector": [5.5774, 7.76512, -0.33163] }, - "0.8333": { - "vector": [3.68428, 6.19247, 0.90079], - "easing": "linear" + "0.825": { + "vector": [5.5774, 7.76512, -0.33163] } } }, @@ -1285,22 +911,18 @@ "Lefthand": { "rotation": { "0.0": { - "vector": [-72.73114, -16.81988, 61.84372], - "easing": "linear" + "vector": [-45, 0, 0] }, - "0.8333": { - "vector": [-72.73114, -16.81988, 61.84372], - "easing": "linear" + "0.825": { + "vector": [-45, 0, 0] } }, "position": { "0.0": { - "vector": [3.68428, 6.19247, 0.90079], - "easing": "linear" + "vector": [5.5774, 7.76512, -0.33163] }, - "0.8333": { - "vector": [3.68428, 6.19247, 0.90079], - "easing": "linear" + "0.825": { + "vector": [5.5774, 7.76512, -0.33163] } } }, @@ -1419,7 +1041,7 @@ }, "animation.marlin.finish": { "loop": "hold_on_last_frame", - "animation_length": 0.7083, + "animation_length": 1, "bones": { "0": { "rotation": { @@ -1438,16 +1060,16 @@ "vector": [-19.12116, 5.55971, 55.71985], "easing": "easeInBack" }, - "0.45": { + "0.4083": { "vector": [-7.92819, 1.03543, 32.79611] }, - "0.5417": { - "vector": [-7.97396, 1.43681, 13.3542] + "0.4917": { + "vector": [0, 0, 0] }, - "0.65": { - "vector": [0, 0, -3] + "0.575": { + "vector": [-2, 0, 0] }, - "0.7": { + "0.7083": { "vector": [0, 0, 0] } }, @@ -1470,13 +1092,13 @@ "vector": [0.13, 0.31, -0.21] }, "0.4": { - "vector": [0, 0.25, -0.65] + "vector": [0, 0.25, -1.65] }, - "0.5": { - "vector": [0, 0.25, 0.93] + "0.5083": { + "vector": [0, 0.16, 1.15] }, - "0.6417": { - "vector": [0, -0.25, -0.45] + "0.6167": { + "vector": [0, 0.07, -0.4] }, "0.7": { "vector": [0, 0, 0] @@ -1485,36 +1107,36 @@ }, "Righthand": { "rotation": { - "0.1417": { + "0.0833": { "vector": [-5.322, 11.403, 4.10285], "easing": "easeOutSine" }, - "0.3417": { + "0.2": { "vector": [-20.32, 11.4, 4.1], "easing": "easeInElastic" }, - "0.5417": { + "0.2667": { "vector": [-5.322, 11.403, 4.10285], "easing": "easeInOutCubic" }, - "0.675": { + "0.4": { "vector": [0, 0, 0] } }, "position": { - "0.1417": { + "0.0833": { "vector": [-1.9, -0.1, -0.1], "easing": "easeOutSine" }, - "0.3417": { + "0.2": { "vector": [-1.9, -0.1, -2.3], "easing": "easeInElastic" }, - "0.5417": { + "0.2667": { "vector": [-1.9, -0.1, -0.1], "easing": "easeInOutCubic" }, - "0.675": { + "0.4": { "vector": [0, 0, 0] } } @@ -1522,42 +1144,43 @@ "Lefthand": { "rotation": { "0.0": { - "vector": [-69.73114, -16.81988, 61.84372], - "easing": "linear" + "vector": [-45, 0, 0] }, - "0.325": { - "vector": [-46.1235, -16.17767, 13.61388] + "0.2333": { + "vector": [-45, 0, 0] + }, + "0.425": { + "vector": [-30.76, 0, 0] }, "0.575": { - "vector": [-36.92278, -14.87784, 55.91421] + "vector": [0, 0, 0] } }, "position": { "0.0": { - "vector": [3.68428, 6.19247, 0.90079], - "easing": "linear" + "vector": [5.5774, 7.76512, -0.33163] }, - "0.325": { - "vector": [3.72757, 8.02813, -1.43582] + "0.2333": { + "vector": [5.5774, 7.76512, -0.33163] }, - "0.4583": { - "vector": [2.00609, 4.04766, -2.19] + "0.425": { + "vector": [4.47999, 4.39556, -0.18687] }, "0.575": { - "vector": [-1.3, 1.55, -1.15] + "vector": [0, 0, 0] } } }, "ganggan": { "rotation": { - "0.1417": { + "0.0833": { "vector": [0, 0, 0] }, - "0.3417": { + "0.2": { "vector": [-60, 0, 0], "easing": "easeInElastic" }, - "0.5417": { + "0.2667": { "vector": [0, 0, 0], "easing": "easeInElastic" } @@ -1565,14 +1188,14 @@ }, "huakuai": { "position": { - "0.1417": { + "0.0833": { "vector": [0, 0, 0] }, - "0.3417": { + "0.2": { "vector": [0, 0, 1.9], "easing": "easeInElastic" }, - "0.5417": { + "0.2667": { "vector": [0, 0, 0], "easing": "easeInElastic" } diff --git a/src/main/resources/assets/superbwarfare/animations/ntw_20.animation.json b/src/main/resources/assets/superbwarfare/animations/ntw_20.animation.json index 4be34600f..807fc9916 100644 --- a/src/main/resources/assets/superbwarfare/animations/ntw_20.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/ntw_20.animation.json @@ -152,47 +152,6 @@ } } }, - "animation.ntw_20.fire": { - "loop": "hold_on_last_frame", - "animation_length": 0.7917, - "bones": { - "0": { - "rotation": { - "0.0": { - "vector": [-5, 0, 0] - }, - "0.1667": { - "vector": [0, 0, 0], - "easing": "easeInElastic" - } - } - }, - "action": { - "position": { - "0.0": { - "vector": [0, 0, 4] - }, - "0.3333": { - "vector": [0, 0, 0], - "easing": "easeInBounce", - "easingArgs": [0.1] - } - } - }, - "Lefthand": { - "position": { - "0.0": { - "vector": [0, 0, -4] - }, - "0.3333": { - "vector": [0, 0, 0], - "easing": "easeInBounce", - "easingArgs": [0.1] - } - } - } - } - }, "animation.ntw_20.shift": { "loop": "hold_on_last_frame", "animation_length": 2, diff --git a/src/main/resources/assets/superbwarfare/animations/trachelium.animation.json b/src/main/resources/assets/superbwarfare/animations/trachelium.animation.json index ee694446d..50ffb5df4 100644 --- a/src/main/resources/assets/superbwarfare/animations/trachelium.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/trachelium.animation.json @@ -166,30 +166,6 @@ } } }, - "animation.trachelium.fire": { - "animation_length": 0.0417, - "override_previous_animation": true, - "bones": { - "lun": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.0417": { - "vector": [0, 0, -22.5] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.0417": { - "vector": [0, 0, 0] - } - } - } - } - }, "animation.trachelium.reload": { "loop": "hold_on_last_frame", "animation_length": 3, @@ -1351,62 +1327,6 @@ } } } - }, - "animation.trachelium.draw": { - "animation_length": 0.6, - "bones": { - "0": { - "rotation": { - "0.0": { - "vector": [27.21312, -47.42646, -2.0218] - }, - "0.1": { - "vector": [12.5, -15, 0] - }, - "0.2": { - "vector": [3.48268, 0.40464, 8.20687] - }, - "0.4": { - "vector": [0, 0, -2] - }, - "0.5": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [3, -17.3, 0] - }, - "0.2": { - "vector": [0, 0, -1.65] - }, - "0.3": { - "vector": [0, 0, 0.93] - }, - "0.5": { - "vector": [0, 0, 0] - } - } - }, - "camera": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.2": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [0.25, -0.5, 0.5], - "easing": "easeInSine" - }, - "0.4": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - } - } - } } }, "geckolib_format_version": 2 diff --git a/src/main/resources/assets/superbwarfare/geo/marlin.geo.json b/src/main/resources/assets/superbwarfare/geo/marlin.geo.json index b6d2860c0..4ad017d2d 100644 --- a/src/main/resources/assets/superbwarfare/geo/marlin.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/marlin.geo.json @@ -32,7 +32,7 @@ { "name": "shen", "parent": "bone", - "pivot": [0, 0, 0] + "pivot": [0, 0, 8] }, { "name": "0", @@ -62,11 +62,11 @@ { "name": "Lefthand", "parent": "0", - "pivot": [4.5, -7.2, 4.6], - "rotation": [138.9854, -17.66046, 170.45987], + "pivot": [3.40584, -7.42087, 4.12016], + "rotation": [108.94926, -42.40297, -138.34723], "cubes": [ { - "origin": [2.5, -7.2, 2.6], + "origin": [1.40584, -7.42087, 2.12016], "size": [4, 12, 4], "uv": { "north": {"uv": [7, 12], "uv_size": [3, 12]}, 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 f367555bc..35f6cc76a 100644 --- a/src/main/resources/assets/superbwarfare/geo/ntw_20.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/ntw_20.geo.json @@ -32,7 +32,7 @@ { "name": "shen", "parent": "bone", - "pivot": [0, 0, 0] + "pivot": [0, 0, 4] }, { "name": "0", diff --git a/src/main/resources/assets/superbwarfare/geo/trachelium.geo.json b/src/main/resources/assets/superbwarfare/geo/trachelium.geo.json index a8fda1254..cbcf7fe2b 100644 --- a/src/main/resources/assets/superbwarfare/geo/trachelium.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/trachelium.geo.json @@ -32,7 +32,7 @@ { "name": "shen", "parent": "bone", - "pivot": [0, 0, 0] + "pivot": [0, -1, 3] }, { "name": "0", diff --git a/src/main/resources/assets/superbwarfare/sounds.json b/src/main/resources/assets/superbwarfare/sounds.json index a6b97a3da..5ecb99192 100644 --- a/src/main/resources/assets/superbwarfare/sounds.json +++ b/src/main/resources/assets/superbwarfare/sounds.json @@ -1175,6 +1175,14 @@ } ] }, + "marlin_bolt": { + "sounds": [ + { + "name": "superbwarfare:marlin/marlin_end", + "stream": false + } + ] + }, "m_870_fire_1p": { "sounds": [ { @@ -1223,6 +1231,14 @@ } ] }, + "m_870_bolt": { + "sounds": [ + { + "name": "superbwarfare:m_870/m_870_bolt", + "stream": false + } + ] + }, "glock_17_fire_1p": { "sounds": [ { diff --git a/src/main/resources/assets/superbwarfare/sounds/m_870/m_870_bolt.ogg b/src/main/resources/assets/superbwarfare/sounds/m_870/m_870_bolt.ogg new file mode 100644 index 000000000..792ace075 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/sounds/m_870/m_870_bolt.ogg differ diff --git a/src/main/resources/assets/superbwarfare/sounds/m_870/m_870_fire_1p.ogg b/src/main/resources/assets/superbwarfare/sounds/m_870/m_870_fire_1p.ogg index 09d7c9a25..bf1221f78 100644 Binary files a/src/main/resources/assets/superbwarfare/sounds/m_870/m_870_fire_1p.ogg and b/src/main/resources/assets/superbwarfare/sounds/m_870/m_870_fire_1p.ogg differ diff --git a/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_end.ogg b/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_end.ogg index 51cd1fb57..2855863c0 100644 Binary files a/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_end.ogg and b/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_end.ogg differ diff --git a/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_end.wav b/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_end.wav new file mode 100644 index 000000000..8b6330def Binary files /dev/null and b/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_end.wav differ diff --git a/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_fire_1p.ogg b/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_fire_1p.ogg index 57fbf25e1..78ff41a4c 100644 Binary files a/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_fire_1p.ogg and b/src/main/resources/assets/superbwarfare/sounds/marlin/marlin_fire_1p.ogg differ diff --git a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json index f7019cb42..601624ef8 100644 --- a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json +++ b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json @@ -15,6 +15,5 @@ "burst_size": 1, "EmptyReloadTime": 64, "BypassesArmor": 0.7, - "SoundRadius": 20, - "rpm": 120 + "SoundRadius": 20 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/k_98.json b/src/main/resources/data/superbwarfare/guns/k_98.json index db4a2c899..d89286d5d 100644 --- a/src/main/resources/data/superbwarfare/guns/k_98.json +++ b/src/main/resources/data/superbwarfare/guns/k_98.json @@ -20,6 +20,5 @@ "iterative_time": 11, "finish_time": 18, "BypassesArmor": 0.5, - "SoundRadius": 18, - "rpm": 240 + "SoundRadius": 18 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/m_870.json b/src/main/resources/data/superbwarfare/guns/m_870.json index ef9fcde9e..740f771f7 100644 --- a/src/main/resources/data/superbwarfare/guns/m_870.json +++ b/src/main/resources/data/superbwarfare/guns/m_870.json @@ -20,5 +20,5 @@ "finish_time": 12, "BypassesArmor": 0.05, "SoundRadius": 16, - "rpm": 80 + "bolt_action_time": 11 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/m_98b.json b/src/main/resources/data/superbwarfare/guns/m_98b.json index 8f9914ec3..d72cf91a9 100644 --- a/src/main/resources/data/superbwarfare/guns/m_98b.json +++ b/src/main/resources/data/superbwarfare/guns/m_98b.json @@ -20,6 +20,5 @@ "normal_reload_time": 60, "EmptyReloadTime": 78, "BypassesArmor": 0.6, - "SoundRadius": 18, - "rpm": 180 + "SoundRadius": 18 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/marlin.json b/src/main/resources/data/superbwarfare/guns/marlin.json index 73ab21ee4..123bcd978 100644 --- a/src/main/resources/data/superbwarfare/guns/marlin.json +++ b/src/main/resources/data/superbwarfare/guns/marlin.json @@ -14,10 +14,10 @@ "burst": 0, "auto": 0, "burst_size": 1, - "prepare_time": 8, + "prepare_time": 7, "iterative_time": 16, "finish_time": 19, "BypassesArmor": 0.3, "SoundRadius": 15, - "rpm": 120 + "bolt_action_time": 12 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/mosin_nagant.json b/src/main/resources/data/superbwarfare/guns/mosin_nagant.json index 0ae77f2eb..090f1232d 100644 --- a/src/main/resources/data/superbwarfare/guns/mosin_nagant.json +++ b/src/main/resources/data/superbwarfare/guns/mosin_nagant.json @@ -20,6 +20,5 @@ "iterative_time": 11, "finish_time": 18, "BypassesArmor": 0.54, - "SoundRadius": 18, - "rpm": 240 + "SoundRadius": 18 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/ntw_20.json b/src/main/resources/data/superbwarfare/guns/ntw_20.json index 82c818716..7d409804e 100644 --- a/src/main/resources/data/superbwarfare/guns/ntw_20.json +++ b/src/main/resources/data/superbwarfare/guns/ntw_20.json @@ -18,6 +18,5 @@ "normal_reload_time": 63, "EmptyReloadTime": 92, "BypassesArmor": 1, - "SoundRadius": 22, - "rpm": 90 + "SoundRadius": 22 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/sentinel.json b/src/main/resources/data/superbwarfare/guns/sentinel.json index 94f258ec9..7009758bd 100644 --- a/src/main/resources/data/superbwarfare/guns/sentinel.json +++ b/src/main/resources/data/superbwarfare/guns/sentinel.json @@ -18,6 +18,5 @@ "normal_reload_time": 59, "EmptyReloadTime": 89, "BypassesArmor": 0.8, - "SoundRadius": 20, - "rpm": 240 + "SoundRadius": 20 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/svd.json b/src/main/resources/data/superbwarfare/guns/svd.json index 642b3e376..0ab4ab15a 100644 --- a/src/main/resources/data/superbwarfare/guns/svd.json +++ b/src/main/resources/data/superbwarfare/guns/svd.json @@ -18,5 +18,5 @@ "EmptyReloadTime": 70, "BypassesArmor": 0.45, "SoundRadius": 17, - "rpm": 400 + "rpm": 300 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/trachelium.json b/src/main/resources/data/superbwarfare/guns/trachelium.json index 00b35c6c7..f95d67cdf 100644 --- a/src/main/resources/data/superbwarfare/guns/trachelium.json +++ b/src/main/resources/data/superbwarfare/guns/trachelium.json @@ -16,5 +16,5 @@ "EmptyReloadTime": 65, "BypassesArmor": 0.3, "SoundRadius": 10, - "rpm": 300 + "rpm": 240 } \ No newline at end of file