diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java index d37e6ffc6..ad88376f2 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java @@ -15,6 +15,8 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; +import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; + public class DevotionItemModel extends GeoModel { @Override public ResourceLocation getAnimationResource(DevotionItem animatable) { @@ -627,7 +629,7 @@ public class DevotionItemModel extends GeoModel { move.setRotY(Mth.DEG_TO_RAD * (float) turnRotY); move.setRotZ(2.7f * (float) mph + Mth.DEG_TO_RAD * (float) turnRotZ); - if (player.getPersistentData().getDouble("prone") > 0) { + if (isProne(player)) { l.setRotX(1.5f); r.setRotX(1.5f); } 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 29cfd99c4..e48520fbf 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 @@ -15,6 +15,8 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; +import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; + public class M60ItemModel extends GeoModel { @Override public ResourceLocation getAnimationResource(M60Item animatable) { @@ -49,7 +51,7 @@ public class M60ItemModel extends GeoModel { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return; - if (player.getPersistentData().getDouble("prone") > 0) { + if (isProne(player)) { l.setRotX(1.5f); r.setRotX(1.5f); } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M98bItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M98bItemModel.java index cc756f912..beea95a77 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M98bItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M98bItemModel.java @@ -90,8 +90,8 @@ public class M98bItemModel extends GeoModel { root.setPosX(movePosX); root.setPosY((float) swayY + movePosY); root.setRotX((float) swayX); - root.setRotY(movePosX); - root.setRotZ(movePosX + moveRotZ); + root.setRotY(0.2f * movePosX); + root.setRotZ(0.2f * movePosX + moveRotZ); move.setPosX(9.3f * (float) mph); move.setPosY(-2f * (float) vY); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java index f8216233f..19c347c20 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java @@ -15,6 +15,8 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; +import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; + public class Mk14ItemModel extends GeoModel { @Override public ResourceLocation getAnimationResource(Mk14Item animatable) { @@ -46,7 +48,7 @@ public class Mk14ItemModel extends GeoModel { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return; - if (player.getPersistentData().getDouble("prone") > 0) { + if (isProne(player)) { l.setRotX(-1.5f); r.setRotX(-1.5f); } 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 ee84b5ff7..b62f20a4e 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 @@ -15,6 +15,8 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; +import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; + public class Ntw20Model extends GeoModel { @Override public ResourceLocation getAnimationResource(Ntw20Item animatable) { @@ -60,7 +62,7 @@ public class Ntw20Model extends GeoModel { double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; - if (player.getPersistentData().getDouble("prone") > 0) { + if (isProne(player)) { l.setRotX(-1.5f); r.setRotX(-1.5f); } 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 42678e860..e0e27dac1 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/screens/CrossHairOverlay.java +++ b/src/main/java/net/mcreator/superbwarfare/client/screens/CrossHairOverlay.java @@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.client.screens; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModTags; import net.minecraft.client.CameraType; @@ -38,10 +39,7 @@ public class CrossHairOverlay { return; } ItemStack stack = player.getMainHandItem(); - boolean zoom = GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS; - double normalSpread = stack.getOrCreateTag().getDouble("spread"); - double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread"); - double spread = (zoom ? zoomSpread : normalSpread); + double spread = ClientEventHandler.gunSpread; RenderSystem.disableDepthTest(); RenderSystem.depthMask(false); @@ -51,11 +49,11 @@ public class CrossHairOverlay { RenderSystem.setShaderColor(1, 1, 1, 1); if (shouldRenderCrossHair(player) || stack.is(ModItems.MINIGUN.get()) || (stack.is(ModItems.BOCEK.get()) && stack.getOrCreateTag().getBoolean("HoloHidden"))) { - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/point.png"), w / 2f - 7.5f, h / 2f - 8, 0, 0, 16, 16, 16, 16); - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexheng.png"), (float) (w / 2f - 9.5f - 2.8f * spread), h / 2f - 8, 0, 0, 16, 16, 16, 16); - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexheng.png"), (float) (w / 2f - 6.5f + 2.8f * spread), h / 2f - 8, 0, 0, 16, 16, 16, 16); - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexshu.png"), w / 2f - 7.5f, (float) (h / 2f - 7 + 2.8f * spread), 0, 0, 16, 16, 16, 16); - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexshu.png"), w / 2f - 7.5f, (float) (h / 2f - 10 - 2.8f * spread), 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/point.png"), w / 2f - 7.5f, h / 2f - 7.5f, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexheng.png"), (float) (w / 2f - 13.5f - 2.8f * spread), h / 2f - 7.5f, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexheng.png"), (float) (w / 2f - 2.5f + 2.8f * spread), h / 2f - 7.5f, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexshu.png"), w / 2f - 7.5f, (float) (h / 2f - 2.5f + 2.8f * spread), 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexshu.png"), w / 2f - 7.5f, (float) (h / 2f - 13.5f - 2.8f * spread), 0, 0, 16, 16, 16, 16); } float ww = w / 2f - 7.5f + (float) (2 * (Math.random() - 0.5f)); diff --git a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java index 47eec1588..c718a1dd6 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java @@ -27,12 +27,14 @@ import net.minecraftforge.client.event.RenderGuiOverlayEvent; import net.minecraftforge.client.event.RenderHandEvent; import net.minecraftforge.client.event.ViewportEvent; import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay; +import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import org.lwjgl.glfw.GLFW; import static net.mcreator.superbwarfare.entity.DroneEntity.ROT_X; import static net.mcreator.superbwarfare.entity.DroneEntity.ROT_Z; +import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) public class ClientEventHandler { @@ -72,6 +74,8 @@ public class ClientEventHandler { public static double pullPos = 0; public static double bowPos = 0; public static double handPos = 0; + public static double gunSpread = 0; + public static double fireSpread = 0; public static MillisTimer clientTimer = new MillisTimer(); @@ -102,13 +106,63 @@ public class ClientEventHandler { return !mc.isWindowActive(); } + private static boolean isMove() { + return Minecraft.getInstance().options.keyLeft.isDown() + || Minecraft.getInstance().options.keyRight.isDown() + || Minecraft.getInstance().options.keyUp.isDown() + || Minecraft.getInstance().options.keyDown.isDown(); + } + @SubscribeEvent - public static void handleWeaponFire(RenderHandEvent event) { - if (notInGame()) return; + public static void handleWeaponFire(TickEvent.RenderTickEvent event) { ClientLevel level = Minecraft.getInstance().level; Player player = Minecraft.getInstance().player; - if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_LEFT) == GLFW.GLFW_PRESS && player != null && level != null && player.getMainHandItem().is(ModTags.Items.NORMAL_GUN)) { - ItemStack stack = player.getMainHandItem(); + if (notInGame()) return; + if (player == null) return; + if (level == null) return; + + ItemStack stack = player.getMainHandItem(); + + //精准度 + float times = Minecraft.getInstance().getDeltaFrameTime(); + + double basicDev = stack.getOrCreateTag().getDouble("spread"); + + double walk = isMove() ? 0.75 * basicDev : 0; + + double sprint = player.isSprinting() ? 1.25 * basicDev : 0; + + double crouching = player.isCrouching() ? -0.15 * basicDev : 0; + + double prone = isProne(player) ? -0.3 * basicDev : 0; + + double jump = player.onGround() ? 0 * basicDev : 1.5 * basicDev; + + double ride = player.onGround() ? -0.25 * basicDev : 0; + + double zoomSpread; + + if (stack.is(ModTags.Items.SNIPER_RIFLE)) { + zoomSpread = 1 - (0.995 * zoomTime); + } else if (stack.is(ModTags.Items.SHOTGUN) || stack.is(ModItems.MINIGUN.get())) { + zoomSpread = 1 - (0.25 * zoomTime); + } + else { + zoomSpread = 1 - (0.9 * zoomTime); + } + + double spread = stack.is(ModTags.Items.SHOTGUN) || stack.is(ModItems.MINIGUN.get()) ? 1.2 * zoomSpread * (basicDev + 0.2 * (walk + sprint + crouching + prone + jump + ride) + fireSpread) : zoomSpread * (0.4 * basicDev + walk + sprint + crouching + prone + jump + ride + 0.6 * fireSpread); + + if (gunSpread < spread) { + gunSpread += 0.07 * Math.pow(spread - gunSpread, 2) * times; + } else { + gunSpread -= 0.07 * Math.pow(spread - gunSpread, 2) * times; + } + +// player.displayClientMessage(Component.literal(new java.text.DecimalFormat("####").format(gunSpread)), true); + + // 开火部分 + if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_LEFT) == GLFW.GLFW_PRESS && player.getMainHandItem().is(ModTags.Items.NORMAL_GUN)) { double customRpm = 0; @@ -132,7 +186,7 @@ public class ClientEventHandler { } if (clientTimer.getProgress() >= cooldown) { - ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(0)); + ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(spread)); clientTimer.setProgress((long) (clientTimer.getProgress() - cooldown)); } @@ -231,9 +285,9 @@ public class ClientEventHandler { double pose; var data = entity.getPersistentData(); - if (entity.isShiftKeyDown() && entity.getBbHeight() >= 1 && data.getDouble("prone") == 0) { + if (entity.isShiftKeyDown() && entity.getBbHeight() >= 1 && isProne((Player) entity)) { pose = 0.85; - } else if (data.getDouble("prone") > 0) { + } else if (isProne((Player) entity)) { pose = entity.getMainHandItem().getOrCreateTag().getDouble("bipod") == 1 ? 0 : 0.25f; } else { pose = 1; @@ -266,10 +320,7 @@ public class ClientEventHandler { moveRotZ = Mth.clamp(moveRotZ - 0.007 * times, 0, 0.14) * (1 - zoomTime); } - if ((Minecraft.getInstance().options.keyLeft.isDown() - || Minecraft.getInstance().options.keyRight.isDown() - || Minecraft.getInstance().options.keyUp.isDown() - || Minecraft.getInstance().options.keyDown.isDown()) && firePosTimer == 0) { + if (isMove() && firePosTimer == 0) { if (moveYTime < 1.25) { moveYTime += 1.2 * on_ground * times * move_speed; } else { @@ -317,11 +368,13 @@ public class ClientEventHandler { } if (movePosHorizon < 0) { - movePosHorizon += 2 * times * Math.pow(movePosHorizon, 2) * (1 - zoomTime); + movePosHorizon += 4 * times * Math.pow(movePosHorizon, 2); } else { - movePosHorizon -= 2 * times * Math.pow(movePosHorizon, 2) * (1 - zoomTime); + movePosHorizon -= 4 * times * Math.pow(movePosHorizon, 2); } + movePosHorizon *= (1 - zoomTime); + double velocity = entity.getDeltaMovement().y(); if (-0.8 < velocity + 0.078 && velocity + 0.078 < 0.8) { @@ -358,8 +411,16 @@ public class ClientEventHandler { firePosTimer = 0.001; fireRotTimer = 0.001; firePosZ = 0.1; + fireSpread += 10; } + fireSpread = Mth.clamp(fireSpread - 0.2 * (Math.pow(fireSpread, 2) * times), 0 ,100); + +// Player player = Minecraft.getInstance().player; +// if (player != null) { +// player.displayClientMessage(Component.literal(new java.text.DecimalFormat("####").format(fireSpread)), true); +// } + firePosZ = Mth.clamp(firePosZ - 0.01 * times, 0, 0.6); if (0 < firePosTimer) { @@ -396,6 +457,9 @@ public class ClientEventHandler { fireRotTimer = 0; fireRot = 0; } + + + } private static void handlePlayerBreath(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 96fe509ff..c58dd1b31 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -124,7 +124,7 @@ public class GunEventHandler { stack.getOrCreateTag().putBoolean("shoot", true); for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectile_amount"); index0++) { - gunShoot(player); + gunShoot(player, 2 * stack.getOrCreateTag().getDouble("spread")); } player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { @@ -230,7 +230,7 @@ public class GunEventHandler { } } - public static void gunShoot(Player player) { + public static void gunShoot(Player player, double spared) { ItemStack heldItem = player.getMainHandItem(); if (!player.level().isClientSide()) { @@ -238,8 +238,6 @@ public class GunEventHandler { float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) heldItem.getOrCreateTag().getDouble("levelDamageMultiple"); boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom; - double spread = heldItem.getOrCreateTag().getDouble("spread"); - double zoomSpread = heldItem.getOrCreateTag().getDouble("zoomSpread"); ProjectileEntity projectile = new ProjectileEntity(player.level()) .shooter(player) @@ -285,7 +283,7 @@ public class GunEventHandler { projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z); projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.0005f, player.getLookAngle().z, 1 * (float) heldItem.getOrCreateTag().getDouble("velocity"), - (float) (zoom ? zoomSpread : spread)); + (float) spared); player.level().addFreshEntity(projectile); } } diff --git a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java index fdd559b22..f801910eb 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java @@ -77,7 +77,6 @@ public class PlayerEventHandler { if (event.phase == TickEvent.Phase.END) { if (stack.is(ModTags.Items.GUN)) { handleWeaponSway(player); - handlePlayerProne(player); handlePlayerSprint(player); handleWeaponLevel(player); handleAmmoCount(player); @@ -85,6 +84,7 @@ public class PlayerEventHandler { handleChangeFireRate(player); handleBocekPulling(player); handleGunRecoil(player); + isProne(player); } handleGround(player); @@ -95,14 +95,22 @@ public class PlayerEventHandler { } } + public static boolean isProne(Player player) { + Level level = player.level(); + + if (player.getBbHeight() <= 1) return true; + + return player.isCrouching() && level.getBlockState(BlockPos.containing(player.getX() + 0.7 * player.getLookAngle().x, player.getY() + 0.5, player.getZ() + 0.7 * player.getLookAngle().z)).canOcclude() && !level.getBlockState(BlockPos.containing(player.getX() + 0.7 * player.getLookAngle().x, player.getY() + 1.5, player.getZ() + 0.7 * player.getLookAngle().z)).canOcclude(); + } + private static void handleWeaponSway(Player player) { if (player.getMainHandItem().is(ModTags.Items.GUN)) { float pose; var data = player.getPersistentData(); - if (player.isCrouching() && player.getBbHeight() >= 1 && data.getDouble("prone") == 0) { + if (player.isCrouching() && player.getBbHeight() >= 1 && !isProne(player)) { pose = 0.85f; - } else if (player.getPersistentData().getDouble("prone") > 0) { + } else if (isProne(player)) { pose = player.getMainHandItem().getOrCreateTag().getDouble("bipod") == 1 ? 0 : 0.25f; } else { pose = 1; @@ -231,26 +239,6 @@ public class PlayerEventHandler { } } - /** - * 判断玩家是否趴下 - */ - private static void handlePlayerProne(Player player) { - Level level = player.level(); - - if (player.getBbHeight() <= 1) { - player.getPersistentData().putDouble("prone", 3); - } - - if (player.isCrouching() && level.getBlockState(BlockPos.containing(player.getX() + 0.7 * player.getLookAngle().x, player.getY() + 0.5, player.getZ() + 0.7 * player.getLookAngle().z)).canOcclude() - && !level.getBlockState(BlockPos.containing(player.getX() + 0.7 * player.getLookAngle().x, player.getY() + 1.5, player.getZ() + 0.7 * player.getLookAngle().z)).canOcclude()) { - player.getPersistentData().putDouble("prone", 3); - } - - if (player.getPersistentData().getDouble("prone") > 0) { - player.getPersistentData().putDouble("prone", (player.getPersistentData().getDouble("prone") - 1)); - } - } - /** * 判断玩家是否在奔跑 */ @@ -436,10 +424,10 @@ public class PlayerEventHandler { 计算后坐力 */ float rx, ry; - if (player.isShiftKeyDown() && player.getBbHeight() >= 1 && player.getPersistentData().getDouble("prone") == 0) { + if (player.isShiftKeyDown() && player.getBbHeight() >= 1 && !isProne(player)) { rx = 0.7f; ry = 0.8f; - } else if (player.getPersistentData().getDouble("prone") > 0) { + } else if (isProne(player)) { if (tag.getDouble("bipod") == 1) { rx = 0.05f; ry = 0.1f; diff --git a/src/main/java/net/mcreator/superbwarfare/network/ModVariables.java b/src/main/java/net/mcreator/superbwarfare/network/ModVariables.java index 347a81654..5136fc934 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/ModVariables.java +++ b/src/main/java/net/mcreator/superbwarfare/network/ModVariables.java @@ -275,7 +275,6 @@ public class ModVariables { public boolean tacticalSprint = false; public int tacticalSprintTime = 600; public boolean tacticalSprintExhaustion = false; - public boolean breath = false; public int breathTime = 160; public boolean breathExhaustion = false; 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 2dfe07e7f..b158059c3 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/ShootMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/ShootMessage.java @@ -22,31 +22,31 @@ import static net.mcreator.superbwarfare.event.GunEventHandler.gunShoot; import static net.mcreator.superbwarfare.event.GunEventHandler.playGunSounds; public class ShootMessage { - private final int type; + private final double spared; - public ShootMessage(int type) { - this.type = type; + public ShootMessage(double spared) { + this.spared = spared; } public static ShootMessage decode(FriendlyByteBuf buffer) { - return new ShootMessage(buffer.readInt()); + return new ShootMessage(buffer.readDouble()); } public static void encode(ShootMessage message, FriendlyByteBuf buffer) { - buffer.writeInt(message.type); + buffer.writeDouble(message.spared); } public static void handler(ShootMessage message, Supplier contextSupplier) { NetworkEvent.Context context = contextSupplier.get(); context.enqueueWork(() -> { if (context.getSender() != null) { - pressAction(context.getSender(), message.type); + pressAction(context.getSender(), message.spared); } }); context.setPacketHandled(true); } - public static void pressAction(Player player, int type) { + public static void pressAction(Player player, double spared) { Level level = player.level(); if (!level.isLoaded(player.blockPosition())) { @@ -55,7 +55,6 @@ public class ShootMessage { ItemStack stack = player.getMainHandItem(); if (stack.is(ModTags.Items.NORMAL_GUN)) { - double mode = stack.getOrCreateTag().getInt("fire_mode"); int interval = stack.getOrCreateTag().getInt("fire_interval"); @@ -150,7 +149,7 @@ public class ShootMessage { player.getCooldowns().addCooldown(stack.getItem(), cooldown); for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectile_amount"); index0++) { - gunShoot(player); + gunShoot(player, spared); } playGunSounds(player); diff --git a/src/main/resources/data/superbwarfare/guns/aa_12.json b/src/main/resources/data/superbwarfare/guns/aa_12.json index e9eea8fb4..0ecc03961 100644 --- a/src/main/resources/data/superbwarfare/guns/aa_12.json +++ b/src/main/resources/data/superbwarfare/guns/aa_12.json @@ -2,7 +2,6 @@ "zoom_speed": 0.95, "zoom": 1.25, "spread": 3.5, - "zoomSpread": 3, "recoil_x": 0.006, "recoil_y": 0.018, "damage": 2.5, diff --git a/src/main/resources/data/superbwarfare/guns/abekiri.json b/src/main/resources/data/superbwarfare/guns/abekiri.json index 1ce43b6be..9e055a5a2 100644 --- a/src/main/resources/data/superbwarfare/guns/abekiri.json +++ b/src/main/resources/data/superbwarfare/guns/abekiri.json @@ -2,7 +2,6 @@ "zoom_speed": 1.4, "zoom": 1.25, "spread": 4, - "zoomSpread": 3, "recoil_x": 0.005, "recoil_y": 0.026, "damage": 3, diff --git a/src/main/resources/data/superbwarfare/guns/ak_47.json b/src/main/resources/data/superbwarfare/guns/ak_47.json index 42a7833a5..b3ce6bc03 100644 --- a/src/main/resources/data/superbwarfare/guns/ak_47.json +++ b/src/main/resources/data/superbwarfare/guns/ak_47.json @@ -2,7 +2,6 @@ "zoom_speed": 1.1, "zoom": 1.25, "spread": 4, - "zoomSpread": 0.1, "recoil_x": 0.0025, "recoil_y": 0.012, "damage": 8.5, diff --git a/src/main/resources/data/superbwarfare/guns/devotion.json b/src/main/resources/data/superbwarfare/guns/devotion.json index 55c346e8f..c01177d2b 100644 --- a/src/main/resources/data/superbwarfare/guns/devotion.json +++ b/src/main/resources/data/superbwarfare/guns/devotion.json @@ -2,7 +2,6 @@ "zoom_speed": 0.9, "zoom": 2, "spread": 5, - "zoomSpread": 0.1, "bipod": 1, "recoil_x": 0.0018, "recoil_y": 0.01, diff --git a/src/main/resources/data/superbwarfare/guns/glock_17.json b/src/main/resources/data/superbwarfare/guns/glock_17.json index 2c45c8b5b..41f2d725a 100644 --- a/src/main/resources/data/superbwarfare/guns/glock_17.json +++ b/src/main/resources/data/superbwarfare/guns/glock_17.json @@ -2,7 +2,6 @@ "zoom_speed": 1.9, "zoom": 1.25, "spread": 2.5, - "zoomSpread": 0.2, "recoil_x": 0.004, "recoil_y": 0.013, "damage": 5.5, diff --git a/src/main/resources/data/superbwarfare/guns/glock_18.json b/src/main/resources/data/superbwarfare/guns/glock_18.json index 3fc23d76f..bf08315a9 100644 --- a/src/main/resources/data/superbwarfare/guns/glock_18.json +++ b/src/main/resources/data/superbwarfare/guns/glock_18.json @@ -2,7 +2,6 @@ "zoom_speed": 1.9, "zoom": 1.25, "spread": 2.5, - "zoomSpread": 0.2, "recoil_x": 0.004, "recoil_y": 0.013, "damage": 5.5, diff --git a/src/main/resources/data/superbwarfare/guns/hk_416.json b/src/main/resources/data/superbwarfare/guns/hk_416.json index 8ffbc8291..0a598b912 100644 --- a/src/main/resources/data/superbwarfare/guns/hk_416.json +++ b/src/main/resources/data/superbwarfare/guns/hk_416.json @@ -2,7 +2,6 @@ "zoom_speed": 1.3, "zoom": 1.25, "spread": 3.5, - "zoomSpread": 0.1, "recoil_x": 0.0016, "recoil_y": 0.009, "damage": 7.5, diff --git a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json index 3b9478803..ef0ac9568 100644 --- a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json +++ b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json @@ -2,7 +2,6 @@ "zoom_speed": 1, "zoom": 1.25, "spread": 7, - "zoomSpread": 0.01, "recoil_x": 0.004, "recoil_y": 0.04, "damage": 65, diff --git a/src/main/resources/data/superbwarfare/guns/k_98.json b/src/main/resources/data/superbwarfare/guns/k_98.json index b930b8483..32c5b088b 100644 --- a/src/main/resources/data/superbwarfare/guns/k_98.json +++ b/src/main/resources/data/superbwarfare/guns/k_98.json @@ -2,7 +2,6 @@ "zoom_speed": 1.05, "zoom": 1.25, "spread": 5, - "zoomSpread": 0.001, "recoil_x": 0.002, "recoil_y": 0.063, "damage": 35, diff --git a/src/main/resources/data/superbwarfare/guns/m_1911.json b/src/main/resources/data/superbwarfare/guns/m_1911.json index c71ef32fd..1ef67e624 100644 --- a/src/main/resources/data/superbwarfare/guns/m_1911.json +++ b/src/main/resources/data/superbwarfare/guns/m_1911.json @@ -2,7 +2,6 @@ "zoom_speed": 1.7, "zoom": 1.25, "spread": 2.5, - "zoomSpread": 0.2, "recoil_x": 0.006, "recoil_y": 0.018, "damage": 9.5, diff --git a/src/main/resources/data/superbwarfare/guns/m_4.json b/src/main/resources/data/superbwarfare/guns/m_4.json index df39651ca..034f15e9f 100644 --- a/src/main/resources/data/superbwarfare/guns/m_4.json +++ b/src/main/resources/data/superbwarfare/guns/m_4.json @@ -2,7 +2,6 @@ "zoom_speed": 1.15, "zoom": 1.25, "spread": 4, - "zoomSpread": 0.1, "recoil_x": 0.0015, "recoil_y": 0.011, "damage": 7, diff --git a/src/main/resources/data/superbwarfare/guns/m_60.json b/src/main/resources/data/superbwarfare/guns/m_60.json index 7de3be12d..de2ad11b5 100644 --- a/src/main/resources/data/superbwarfare/guns/m_60.json +++ b/src/main/resources/data/superbwarfare/guns/m_60.json @@ -2,7 +2,6 @@ "zoom_speed": 0.85, "zoom": 1.25, "spread": 5, - "zoomSpread": 0.1, "bipod": 1, "recoil_x": 0.004, "recoil_y": 0.014, diff --git a/src/main/resources/data/superbwarfare/guns/m_870.json b/src/main/resources/data/superbwarfare/guns/m_870.json index 5fd0cfd97..59395d964 100644 --- a/src/main/resources/data/superbwarfare/guns/m_870.json +++ b/src/main/resources/data/superbwarfare/guns/m_870.json @@ -2,7 +2,6 @@ "zoom_speed": 1.1, "zoom": 1.25, "spread": 3, - "zoomSpread": 2.7, "recoil_x": 0.009, "recoil_y": 0.04, "damage": 3, diff --git a/src/main/resources/data/superbwarfare/guns/m_98b.json b/src/main/resources/data/superbwarfare/guns/m_98b.json index 9f2805af9..bf8b07d52 100644 --- a/src/main/resources/data/superbwarfare/guns/m_98b.json +++ b/src/main/resources/data/superbwarfare/guns/m_98b.json @@ -4,7 +4,6 @@ "min_zoom": 4, "max_zoom": 8, "spread": 6, - "zoomSpread": 0.001, "recoil_x": 0.007, "recoil_y": 0.013, "damage": 38, diff --git a/src/main/resources/data/superbwarfare/guns/marlin.json b/src/main/resources/data/superbwarfare/guns/marlin.json index 7c244b45d..9ebc2a7ec 100644 --- a/src/main/resources/data/superbwarfare/guns/marlin.json +++ b/src/main/resources/data/superbwarfare/guns/marlin.json @@ -2,7 +2,6 @@ "zoom_speed": 1.1, "zoom": 1.25, "spread": 2, - "zoomSpread": 0.1, "recoil_x": 0.004, "recoil_y": 0.031, "damage": 16, diff --git a/src/main/resources/data/superbwarfare/guns/minigun.json b/src/main/resources/data/superbwarfare/guns/minigun.json index 53150ef3f..aa66e8465 100644 --- a/src/main/resources/data/superbwarfare/guns/minigun.json +++ b/src/main/resources/data/superbwarfare/guns/minigun.json @@ -1,7 +1,6 @@ { "zoom": 1, "spread": 2.5, - "zoomSpread": 2.5, "recoil_x": 0.012, "recoil_y": 0.011, "damage": 8, diff --git a/src/main/resources/data/superbwarfare/guns/mk_14.json b/src/main/resources/data/superbwarfare/guns/mk_14.json index 9637f3159..d1f547257 100644 --- a/src/main/resources/data/superbwarfare/guns/mk_14.json +++ b/src/main/resources/data/superbwarfare/guns/mk_14.json @@ -4,7 +4,6 @@ "min_zoom": 1.25, "max_zoom": 6, "spread": 5, - "zoomSpread": 0.01, "bipod": 1, "recoil_x": 0.006, "recoil_y": 0.014, diff --git a/src/main/resources/data/superbwarfare/guns/mosin_nagant.json b/src/main/resources/data/superbwarfare/guns/mosin_nagant.json index 4e0a3a115..84e0b3cc9 100644 --- a/src/main/resources/data/superbwarfare/guns/mosin_nagant.json +++ b/src/main/resources/data/superbwarfare/guns/mosin_nagant.json @@ -2,7 +2,6 @@ "zoom_speed": 0.9, "zoom": 3.5, "spread": 4.8, - "zoomSpread": 0.001, "recoil_x": 0.002, "recoil_y": 0.063, "damage": 33, diff --git a/src/main/resources/data/superbwarfare/guns/ntw_20.json b/src/main/resources/data/superbwarfare/guns/ntw_20.json index ca74f45ae..e1fbaff9b 100644 --- a/src/main/resources/data/superbwarfare/guns/ntw_20.json +++ b/src/main/resources/data/superbwarfare/guns/ntw_20.json @@ -5,7 +5,6 @@ "max_zoom": 6, "bipod": 1, "spread": 8, - "zoomSpread": 0.05, "recoil_x": 0.01, "recoil_y": 0.038, "damage": 100, diff --git a/src/main/resources/data/superbwarfare/guns/qbz_95.json b/src/main/resources/data/superbwarfare/guns/qbz_95.json index b5c040dcb..1fb77b280 100644 --- a/src/main/resources/data/superbwarfare/guns/qbz_95.json +++ b/src/main/resources/data/superbwarfare/guns/qbz_95.json @@ -2,7 +2,6 @@ "zoom_speed": 1.25, "zoom": 1.25, "spread": 3.7, - "zoomSpread": 0.1, "recoil_x": 0.0013, "recoil_y": 0.009, "damage": 7.5, diff --git a/src/main/resources/data/superbwarfare/guns/rpk.json b/src/main/resources/data/superbwarfare/guns/rpk.json index fdd9e41ed..87d6e2a52 100644 --- a/src/main/resources/data/superbwarfare/guns/rpk.json +++ b/src/main/resources/data/superbwarfare/guns/rpk.json @@ -2,7 +2,6 @@ "zoom_speed": 1, "zoom": 1.25, "spread": 5.5, - "zoomSpread": 0.1, "bipod": 1, "recoil_x": 0.0035, "recoil_y": 0.012, diff --git a/src/main/resources/data/superbwarfare/guns/sentinel.json b/src/main/resources/data/superbwarfare/guns/sentinel.json index 2edc3a7eb..6fb42b66c 100644 --- a/src/main/resources/data/superbwarfare/guns/sentinel.json +++ b/src/main/resources/data/superbwarfare/guns/sentinel.json @@ -2,7 +2,6 @@ "zoom_speed": 0.95, "zoom": 3, "spread": 6, - "zoomSpread": 0.001, "recoil_x": 0.007, "recoil_y": 0.018, "damage": 35, diff --git a/src/main/resources/data/superbwarfare/guns/sks.json b/src/main/resources/data/superbwarfare/guns/sks.json index a262480ea..9f23f7f02 100644 --- a/src/main/resources/data/superbwarfare/guns/sks.json +++ b/src/main/resources/data/superbwarfare/guns/sks.json @@ -2,7 +2,6 @@ "zoom_speed": 1, "zoom": 1.25, "spread": 4.5, - "zoomSpread": 0.1, "recoil_x": 0.004, "recoil_y": 0.015, "damage": 9.5, diff --git a/src/main/resources/data/superbwarfare/guns/svd.json b/src/main/resources/data/superbwarfare/guns/svd.json index a57552ca0..1df05e163 100644 --- a/src/main/resources/data/superbwarfare/guns/svd.json +++ b/src/main/resources/data/superbwarfare/guns/svd.json @@ -2,7 +2,6 @@ "zoom_speed": 0.9, "zoom": 4, "spread": 5.5, - "zoomSpread": 0.1, "recoil_x": 0.008, "recoil_y": 0.015, "damage": 18, diff --git a/src/main/resources/data/superbwarfare/guns/trachelium.json b/src/main/resources/data/superbwarfare/guns/trachelium.json index c0a3c64c1..0a3637eda 100644 --- a/src/main/resources/data/superbwarfare/guns/trachelium.json +++ b/src/main/resources/data/superbwarfare/guns/trachelium.json @@ -2,7 +2,6 @@ "zoom_speed": 1.7, "zoom": 1.25, "spread": 3, - "zoomSpread": 0.1, "recoil_x": 0.005, "recoil_y": 0.032, "damage": 19, diff --git a/src/main/resources/data/superbwarfare/guns/vector.json b/src/main/resources/data/superbwarfare/guns/vector.json index efbdd274c..5d49df98a 100644 --- a/src/main/resources/data/superbwarfare/guns/vector.json +++ b/src/main/resources/data/superbwarfare/guns/vector.json @@ -2,7 +2,6 @@ "zoom_speed": 1.6, "zoom": 1.25, "spread": 2.3, - "zoomSpread": 0.15, "recoil_x": 0.007, "recoil_y": 0.007, "damage": 4.5,