From b8f20eb2a0f24fe2d2af0b0aa8ca3945a678049b Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 24 Dec 2024 17:22:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96NBT#NeedBoltAction?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atsuishio/superbwarfare/client/ClickHandler.java | 2 +- .../superbwarfare/client/screens/CrossHairOverlay.java | 10 ---------- .../superbwarfare/event/ClientEventHandler.java | 2 +- .../atsuishio/superbwarfare/event/GunEventHandler.java | 4 ++-- .../superbwarfare/network/message/FireMessage.java | 2 +- .../superbwarfare/network/message/FireModeMessage.java | 4 ++-- .../superbwarfare/network/message/ShootMessage.java | 2 +- .../com/atsuishio/superbwarfare/tools/GunsTool.java | 4 ++-- 8 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java b/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java index 35df72b1f..40201b649 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java @@ -311,7 +311,7 @@ public class ClickHandler { if ((!(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading")) && !stack.getOrCreateTag().getBoolean("reloading") && !stack.getOrCreateTag().getBoolean("charging") - && !stack.getOrCreateTag().getBoolean("need_bolt_action")) + && !GunsTool.getGunBooleanTag(stack, "NeedBoltAction", false)) && cantFireTime == 0 && drawTime < 0.01 && !notInGame()) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/screens/CrossHairOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/screens/CrossHairOverlay.java index 48c5d093a..c40271ca6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/screens/CrossHairOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/screens/CrossHairOverlay.java @@ -122,16 +122,6 @@ public class CrossHairOverlay { RenderSystem.enableDepthTest(); RenderSystem.disableBlend(); RenderSystem.setShaderColor(1, 1, 1, 1); - -// 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); -// } - } private static void normalCrossHair(GuiGraphics guiGraphics, int w, int h, double spread, float moveX, float moveY) { diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index 925d8d867..1e2da05de 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -299,7 +299,7 @@ public class ClientEventHandler { && !stack.getOrCreateTag().getBoolean("charging") && stack.getOrCreateTag().getInt("ammo") > 0 && !player.getCooldowns().isOnCooldown(stack.getItem()) - && !stack.getOrCreateTag().getBoolean("need_bolt_action") + && !GunsTool.getGunBooleanTag(stack, "NeedBoltAction", false) && revolverPre() ) || (stack.is(ModItems.MINIGUN.get()) diff --git a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java index afd835c69..52a26a3d1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java @@ -72,7 +72,7 @@ public class GunEventHandler { } if (stack.getOrCreateTag().getInt("bolt_action_anim") == 1) { - stack.getOrCreateTag().putBoolean("need_bolt_action", false); + GunsTool.setGunBooleanTag(stack, "NeedBoltAction", false); if (stack.is(ModTags.Items.REVOLVER)) { stack.getOrCreateTag().putBoolean("canImmediatelyShoot", true); } @@ -693,7 +693,7 @@ public class GunEventHandler { if (tag.getInt("finish") == 1) { tag.putInt("reload_stage", 0); if (GunsTool.getGunIntTag(stack, "BoltActionTime", 0) > 0) { - stack.getOrCreateTag().putBoolean("need_bolt_action", false); + GunsTool.setGunBooleanTag(stack, "NeedBoltAction", false); } tag.putBoolean("reloading", false); diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/FireMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/FireMessage.java index 52c9ab0d7..05c92b88b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/FireMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/FireMessage.java @@ -152,7 +152,7 @@ public class FireMessage { && !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading")) && !stack.getOrCreateTag().getBoolean("reloading") && !stack.getOrCreateTag().getBoolean("charging")) { - if (!player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getBoolean("need_bolt_action")) { + if (!player.getCooldowns().isOnCooldown(stack.getItem()) && GunsTool.getGunBooleanTag(stack, "NeedBoltAction", false)) { stack.getOrCreateTag().putInt("bolt_action_anim", GunsTool.getGunIntTag(stack, "BoltActionTime", 0) + 1); GunEventHandler.playGunBoltSounds(player); } diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/FireModeMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/FireModeMessage.java index 86b810c49..87368ef11 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/FireModeMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/FireModeMessage.java @@ -128,7 +128,7 @@ public class FireModeMessage { } } - if (stack.getItem() == ModItems.TRACHELIUM.get() && !tag.getBoolean("need_bolt_action")) { + if (stack.getItem() == ModItems.TRACHELIUM.get() && !GunsTool.getGunBooleanTag(stack, "NeedBoltAction", false)) { if (!tag.getBoolean("DA")) { tag.putBoolean("DA", true); player.displayClientMessage(Component.translatable("des.superbwarfare.revolver.sa").withStyle(ChatFormatting.BOLD), true); @@ -137,7 +137,7 @@ public class FireModeMessage { player.displayClientMessage(Component.translatable("des.superbwarfare.revolver.da").withStyle(ChatFormatting.BOLD), true); } if (!tag.getBoolean("canImmediatelyShoot")) { - tag.putBoolean("need_bolt_action", true); + GunsTool.setGunBooleanTag(stack, "NeedBoltAction", true); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/ShootMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/ShootMessage.java index 3fdacd343..9baedb7fe 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/ShootMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/ShootMessage.java @@ -74,7 +74,7 @@ public class ShootMessage { // 判断是否为栓动武器(BoltActionTime > 0),并在开火后给一个需要上膛的状态 if (GunsTool.getGunIntTag(stack, "BoltActionTime", 0) > 0 && stack.getOrCreateTag().getInt("ammo") > (stack.is(ModTags.Items.REVOLVER) ? 0 : 1)) { - stack.getOrCreateTag().putBoolean("need_bolt_action", true); + GunsTool.setGunBooleanTag(stack, "NeedBoltAction", true); } stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java index 34c1b4b3e..3521e6955 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java @@ -105,9 +105,9 @@ public class GunsTool { int ammo = tag.getInt("ammo"); int ammoToAdd = mag - ammo + (extraOne ? 1 : 0); - // 空仓换弹的栓动武器应该在换单后取消待上膛标记 + // 空仓换弹的栓动武器应该在换弹后取消待上膛标记 if (ammo == 0 && GunsTool.getGunIntTag(stack, "BoltActionTime", 0) > 0 && !stack.is(ModTags.Items.REVOLVER)) { - tag.putBoolean("need_bolt_action", false); + GunsTool.setGunBooleanTag(stack, "NeedBoltAction", false); } int playerAmmo = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c -> switch (type) {