From ae317597cfd28348da3d7ca3dc0d7371117180ca Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Sat, 21 Sep 2024 21:23:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=90=A5=E4=B8=9A=E5=A6=A8=E7=A2=8DCOD?= =?UTF-8?q?=E7=9A=84=E5=8A=A8=E6=80=81=E5=87=86=E6=98=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/screens/CrossHairOverlay.java | 31 ++++++++++-------- .../event/ClientEventHandler.java | 32 ++++++++----------- 2 files changed, 32 insertions(+), 31 deletions(-) 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 e0e27dac1..48f2dfe26 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/screens/CrossHairOverlay.java +++ b/src/main/java/net/mcreator/superbwarfare/client/screens/CrossHairOverlay.java @@ -39,7 +39,7 @@ public class CrossHairOverlay { return; } ItemStack stack = player.getMainHandItem(); - double spread = ClientEventHandler.gunSpread; + double spread = ClientEventHandler.gunSpread + 3 * ClientEventHandler.firePos; RenderSystem.disableDepthTest(); RenderSystem.depthMask(false); @@ -48,31 +48,36 @@ public class CrossHairOverlay { RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); RenderSystem.setShaderColor(1, 1, 1, 1); + float moveX = (float) (-6 * ClientEventHandler.turnRot[1] - (player.isSprinting() ? 10 : 6) * ClientEventHandler.movePosX); + float moveY = (float) (-6 * ClientEventHandler.turnRot[0] + 6 * (float)ClientEventHandler.velocityY - (player.isSprinting() ? 10 : 6) * ClientEventHandler.movePosY - 2 * ClientEventHandler.firePos); + 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 - 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); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/point.png"), w / 2f - 7.5f + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16); + if (!player.isSprinting()) { + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexheng.png"), (float) (w / 2f - 13.5f - 2.8f * spread) + moveX, h / 2f - 7.5f + moveY, 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) + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexshu.png"), w / 2f - 7.5f + moveX, (float) (h / 2f - 2.5f + 2.8f * spread) + moveY, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexshu.png"), w / 2f - 7.5f + moveX, (float) (h / 2f - 13.5f - 2.8f * spread) + moveY, 0, 0, 16, 16, 16, 16); + } } float ww = w / 2f - 7.5f + (float) (2 * (Math.random() - 0.5f)); - float hh = h / 2f - 8 + (float) (2 * (Math.random() - 0.5f)); + float hh = h / 2f - 7.5f + (float) (2 * (Math.random() - 0.5f)); float m = (40 - KILL_INDICATOR * 5) / 5.5f; if (HIT_INDICATOR > 0) { - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/hit_marker.png"), ww, hh, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/hit_marker.png"), ww + moveX, hh + moveY, 0, 0, 16, 16, 16, 16); } if (HEAD_INDICATOR > 0) { - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/headshotmark.png"), ww, hh, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/headshotmark.png"), ww + moveX, hh + moveY, 0, 0, 16, 16, 16, 16); } if (KILL_INDICATOR > 0) { - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/kill_mark1.png"), w / 2f - 7.5f - 2 + m, h / 2f - 8 - 2 + m, 0, 0, 16, 16, 16, 16); - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/kill_mark2.png"), w / 2f - 7.5f + 2 - m, h / 2f - 8 - 2 + m, 0, 0, 16, 16, 16, 16); - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/kill_mark3.png"), w / 2f - 7.5f - 2 + m, h / 2f - 8 + 2 - m, 0, 0, 16, 16, 16, 16); - preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/kill_mark4.png"), w / 2f - 7.5f + 2 - m, h / 2f - 8 + 2 - m, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/kill_mark1.png"), w / 2f - 7.5f - 2 + m + moveX, h / 2f - 7.5f - 2 + m + moveY, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/kill_mark2.png"), w / 2f - 7.5f + 2 - m + moveX, h / 2f - 7.5f - 2 + m + moveY, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/kill_mark3.png"), w / 2f - 7.5f - 2 + m + moveX, h / 2f - 7.5f + 2 - m + moveY, 0, 0, 16, 16, 16, 16); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/kill_mark4.png"), w / 2f - 7.5f + 2 - m + moveX, h / 2f - 7.5f + 2 - m + moveY, 0, 0, 16, 16, 16, 16); } RenderSystem.depthMask(true); diff --git a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java index c718a1dd6..2c2696408 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java @@ -107,10 +107,13 @@ public class ClientEventHandler { } 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(); + Player player = Minecraft.getInstance().player; + return Minecraft.getInstance().options.keyLeft.isDown() + || Minecraft.getInstance().options.keyRight.isDown() + || Minecraft.getInstance().options.keyUp.isDown() + || Minecraft.getInstance().options.keyDown.isDown() + || (player != null && player.isSprinting()); + } @SubscribeEvent @@ -128,15 +131,15 @@ public class ClientEventHandler { double basicDev = stack.getOrCreateTag().getDouble("spread"); - double walk = isMove() ? 0.75 * basicDev : 0; + double walk = isMove() ? 0.15 * basicDev : 0; - double sprint = player.isSprinting() ? 1.25 * basicDev : 0; + double sprint = player.isSprinting() ? 0.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 jump = player.onGround() ? 0 * basicDev : 0.35 * basicDev; double ride = player.onGround() ? -0.25 * basicDev : 0; @@ -151,7 +154,7 @@ public class ClientEventHandler { 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); + 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.7 * basicDev + walk + sprint + crouching + prone + jump + ride + 0.8 * fireSpread); if (gunSpread < spread) { gunSpread += 0.07 * Math.pow(spread - gunSpread, 2) * times; @@ -283,7 +286,6 @@ public class ClientEventHandler { if (entity.getMainHandItem().is(ModTags.Items.GUN)) { float times = 2 * Minecraft.getInstance().getDeltaFrameTime(); double pose; - var data = entity.getPersistentData(); if (entity.isShiftKeyDown() && entity.getBbHeight() >= 1 && isProne((Player) entity)) { pose = 0.85; @@ -306,7 +308,7 @@ public class ClientEventHandler { double on_ground; if (entity.onGround()) { if (entity.isSprinting()) { - on_ground = 1.0; + on_ground = 1.35; } else { on_ground = 2.0; } @@ -411,16 +413,10 @@ public class ClientEventHandler { firePosTimer = 0.001; fireRotTimer = 0.001; firePosZ = 0.1; - fireSpread += 10; + fireSpread += 1.5; } - 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); -// } - + fireSpread = Mth.clamp(fireSpread - 0.1 * (Math.pow(fireSpread, 2) * times), 0 ,100); firePosZ = Mth.clamp(firePosZ - 0.01 * times, 0, 0.6); if (0 < firePosTimer) {