diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java index c327b7c34..9d4dba470 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java @@ -127,7 +127,7 @@ public class Glock17ItemModel extends GeoModel { AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f); CoreGeoBone shell = getAnimationProcessor().getBone("shell"); - if (stack.getOrCreateTag().getBoolean("HoldOpen")) { + if (GunsTool.getGunBooleanTag(stack, "HoldOpen")) { slide.setPosZ(1.5f); bullet.setScaleX(0); bullet.setScaleY(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java index 9de4977eb..a5a50ba90 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java @@ -136,7 +136,7 @@ public class Glock18ItemModel extends GeoModel { AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f); CoreGeoBone shell = getAnimationProcessor().getBone("shell"); - if (stack.getOrCreateTag().getBoolean("HoldOpen")) { + if (GunsTool.getGunBooleanTag(stack, "HoldOpen")) { slide.setPosZ(1.5f); bullet.setScaleX(0); bullet.setScaleY(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java index 2c680ef78..963078d81 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java @@ -127,7 +127,7 @@ public class M1911ItemModel extends GeoModel { AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f); CoreGeoBone shell = getAnimationProcessor().getBone("shell"); - if (stack.getOrCreateTag().getBoolean("HoldOpen")) { + if (GunsTool.getGunBooleanTag(stack, "HoldOpen")) { slide.setPosZ(1.5f); bullet.setScaleX(0); bullet.setScaleY(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java index 315f1b8d0..04ea446c6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java @@ -164,7 +164,7 @@ public class Mk14ItemModel extends GeoModel { CoreGeoBone shell = getAnimationProcessor().getBone("shell"); - if (stack.getOrCreateTag().getBoolean("HoldOpen")) { + if (GunsTool.getGunBooleanTag(stack, "HoldOpen")) { action.setPosZ(2.5f); shell.setScaleX(0); shell.setScaleY(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java index ce764a9ef..d277ac99c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java @@ -165,7 +165,7 @@ public class Qbz95ItemModel extends GeoModel { l.setRotX(rotXBipod * Mth.DEG_TO_RAD); r.setRotX(rotXBipod * Mth.DEG_TO_RAD); - if (stack.getOrCreateTag().getBoolean("HoldOpen")) { + if (GunsTool.getGunBooleanTag(stack, "HoldOpen")) { bolt.setPosZ(5f); } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SksItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SksItemModel.java index e8f7b8adb..8b373fb11 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SksItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SksItemModel.java @@ -6,6 +6,7 @@ import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.rifle.SksItem; +import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -106,7 +107,7 @@ public class SksItemModel extends GeoModel { AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1.2f); CoreGeoBone shell = getAnimationProcessor().getBone("shell"); - if (stack.getOrCreateTag().getBoolean("HoldOpen")) { + if (GunsTool.getGunBooleanTag(stack, "HoldOpen")) { shell.setScaleX(0); shell.setScaleY(0); shell.setScaleZ(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java index 020c2e941..8ef033873 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java @@ -6,6 +6,7 @@ import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.sniper.SvdItem; +import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -48,7 +49,7 @@ public class SvdItemModel extends GeoModel { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return; - if (stack.getOrCreateTag().getBoolean("HoldOpen")) { + if (GunsTool.getGunBooleanTag(stack, "HoldOpen")) { bolt.setPosZ(3.25f); } diff --git a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java index dabdac463..7439ab97e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java @@ -317,7 +317,7 @@ public class GunEventHandler { CompoundTag tag = stack.getOrCreateTag(); CompoundTag data = stack.getOrCreateTag().getCompound("GunData"); // 启动换弹 - if (tag.getBoolean("start_reload")) { + if (GunsTool.getGunBooleanTag(stack, "StartReload")) { MinecraftForge.EVENT_BUS.post(new ReloadEvent.Pre(player, stack)); if (gunItem.isOpenBolt(stack)) { if (GunsTool.getGunIntTag(stack, "Ammo", 0) == 0) { @@ -334,7 +334,7 @@ public class GunEventHandler { stack.getOrCreateTag().putBoolean("is_empty_reloading", true); playGunEmptyReloadSounds(player); } - tag.putBoolean("start_reload", false); + GunsTool.setGunBooleanTag(stack, "StartReload", false); } if (data.getInt("ReloadTime") > 0) { @@ -352,13 +352,13 @@ public class GunEventHandler { if (stack.getItem() == ModItems.MK_14.get()) { if (data.getInt("ReloadTime") == 18) { - tag.putBoolean("HoldOpen", false); + GunsTool.setGunBooleanTag(stack, "HoldOpen", false); } } if (stack.getItem() == ModItems.SKS.get()) { if (data.getInt("ReloadTime") == 14) { - tag.putBoolean("HoldOpen", false); + GunsTool.setGunBooleanTag(stack, "HoldOpen", false); } } @@ -370,13 +370,13 @@ public class GunEventHandler { if (stack.getItem() == ModItems.GLOCK_17.get() || stack.getItem() == ModItems.GLOCK_18.get() || stack.getItem() == ModItems.M_1911.get()) { if (data.getInt("ReloadTime") == 5) { - tag.putBoolean("HoldOpen", false); + GunsTool.setGunBooleanTag(stack, "HoldOpen", false); } } if (stack.getItem() == ModItems.QBZ_95.get()) { if (data.getInt("ReloadTime") == 14) { - tag.putBoolean("HoldOpen", false); + GunsTool.setGunBooleanTag(stack, "HoldOpen", false); } } @@ -390,7 +390,7 @@ public class GunEventHandler { } else { playGunEmptyReload(player); } - tag.putBoolean("start_reload", false); + GunsTool.setGunBooleanTag(stack, "StartReload", false); } stack.addTagElement("GunData", data); diff --git a/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java index 4f16bbe95..d249df5d4 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java @@ -334,7 +334,7 @@ public class PlayerEventHandler { } else { GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag")); } - stack.getOrCreateTag().putBoolean("HoldOpen", false); + GunsTool.setGunBooleanTag(stack, "HoldOpen", false); } } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/SksItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/SksItem.java index 527c8171c..7784856ed 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/SksItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/SksItem.java @@ -119,15 +119,15 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public void inventoryTick(ItemStack itemstack, Level level, Entity entity, int slot, boolean selected) { - if (itemstack.getOrCreateTag().getBoolean("draw")) { - itemstack.getOrCreateTag().putBoolean("draw", false); + public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) { + if (stack.getOrCreateTag().getBoolean("draw")) { + stack.getOrCreateTag().putBoolean("draw", false); - if (GunsTool.getGunIntTag(itemstack, "Ammo", 0) == 0) { - itemstack.getOrCreateTag().putBoolean("HoldOpen", true); + if (GunsTool.getGunIntTag(stack, "Ammo", 0) == 0) { + GunsTool.setGunBooleanTag(stack, "HoldOpen", true); } } - super.inventoryTick(itemstack, level, entity, slot, selected); + super.inventoryTick(stack, level, entity, slot, selected); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/ReloadMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/ReloadMessage.java index 7b93a2a4a..368df89a7 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/ReloadMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/ReloadMessage.java @@ -95,15 +95,15 @@ public class ReloadMessage { if (gunItem.isOpenBolt(stack)) { if (gunItem.bulletInBarrel(stack)) { if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag") + 1) { - tag.putBoolean("start_reload", true); + GunsTool.setGunBooleanTag(stack, "StartReload", true); } } else { if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag")) { - tag.putBoolean("start_reload", true); + GunsTool.setGunBooleanTag(stack, "StartReload", true); } } } else if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag")) { - tag.putBoolean("start_reload", true); + GunsTool.setGunBooleanTag(stack, "StartReload", true); } return; } 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 3a9e42e6a..ca7b4115b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/ShootMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/ShootMessage.java @@ -58,7 +58,7 @@ public class ShootMessage { if (GunsTool.getGunIntTag(stack, "Ammo", 0) > 0) { // 空仓挂机 if (GunsTool.getGunIntTag(stack, "Ammo", 0) == 1) { - stack.getOrCreateTag().putBoolean("HoldOpen", true); + GunsTool.setGunBooleanTag(stack, "HoldOpen", true); } if (stack.is(ModTags.Items.REVOLVER)) {