From 89ec47b3b096ee84d269e83b201bee6cba1f5af3 Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Fri, 28 Mar 2025 21:12:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Tag=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/client/PoseTool.java | 2 +- .../client/layer/gun/MinigunHeatLayer.java | 2 +- .../client/model/item/AK12ItemModel.java | 2 +- .../client/model/item/AK47ItemModel.java | 2 +- .../client/model/item/BocekItemModel.java | 2 +- .../client/model/item/DevotionItemModel.java | 2 +- .../client/model/item/Hk416ItemModel.java | 2 +- .../client/model/item/JavelinItemModel.java | 2 +- .../client/model/item/K98ItemModel.java | 2 +- .../client/model/item/M4ItemModel.java | 8 +-- .../client/model/item/M98bItemModel.java | 2 +- .../client/model/item/MarlinItemModel.java | 2 +- .../client/model/item/Mk14ItemModel.java | 2 +- .../model/item/MosinNagantItemModel.java | 2 +- .../client/model/item/Ntw20Model.java | 2 +- .../client/model/item/Qbz95ItemModel.java | 4 +- .../client/model/item/RpkItemModel.java | 2 +- .../client/model/item/SentinelItemModel.java | 2 +- .../client/model/item/SksItemModel.java | 2 +- .../client/model/item/SvdItemModel.java | 2 +- .../model/item/TracheliumItemModel.java | 12 ++-- .../client/model/item/VectorItemModel.java | 2 +- .../client/overlay/CrossHairOverlay.java | 2 +- .../renderer/item/AK12ItemRenderer.java | 10 +-- .../renderer/item/AK47ItemRenderer.java | 10 +-- .../renderer/item/BocekItemRenderer.java | 2 +- .../renderer/item/DevotionItemRenderer.java | 2 +- .../renderer/item/Hk416ItemRenderer.java | 10 +-- .../client/renderer/item/M4ItemRenderer.java | 18 ++--- .../renderer/item/M98bItemRenderer.java | 4 +- .../renderer/item/Mk14ItemRenderer.java | 10 +-- .../item/MosinNagantItemRenderer.java | 4 +- .../client/renderer/item/Ntw20Renderer.java | 10 +-- .../renderer/item/Qbz95ItemRenderer.java | 10 +-- .../client/renderer/item/RpgItemRenderer.java | 2 +- .../client/renderer/item/RpkItemRenderer.java | 2 +- .../renderer/item/SentinelItemRenderer.java | 2 +- .../client/renderer/item/SksItemRenderer.java | 2 +- .../client/renderer/item/SvdItemRenderer.java | 8 +-- .../renderer/item/TracheliumItemRenderer.java | 14 ++-- .../renderer/item/VectorItemRenderer.java | 4 +- .../event/ClientEventHandler.java | 16 ++--- .../superbwarfare/event/GunEventHandler.java | 26 ++++--- .../superbwarfare/item/ArmorPlate.java | 10 +-- .../superbwarfare/item/gun/GunEvents.java | 4 +- .../superbwarfare/item/gun/GunItem.java | 11 +-- .../item/gun/handgun/Glock17Item.java | 6 +- .../item/gun/handgun/Glock18Item.java | 6 +- .../item/gun/handgun/M1911Item.java | 6 +- .../item/gun/handgun/Mp443Item.java | 6 +- .../item/gun/handgun/Trachelium.java | 11 +-- .../item/gun/heavy/Ntw20Item.java | 8 +-- .../item/gun/launcher/JavelinItem.java | 12 ++-- .../item/gun/launcher/M79Item.java | 2 +- .../item/gun/launcher/RpgItem.java | 15 ++-- .../item/gun/launcher/SecondaryCataclysm.java | 16 ++--- .../item/gun/machinegun/DevotionItem.java | 4 +- .../item/gun/machinegun/M60Item.java | 8 +-- .../item/gun/machinegun/MinigunItem.java | 8 +-- .../item/gun/machinegun/RpkItem.java | 4 +- .../item/gun/rifle/AK12Item.java | 6 +- .../item/gun/rifle/AK47Item.java | 6 +- .../item/gun/rifle/Hk416Item.java | 6 +- .../superbwarfare/item/gun/rifle/M4Item.java | 8 +-- .../item/gun/rifle/MarlinItem.java | 8 +-- .../item/gun/rifle/Mk14Item.java | 6 +- .../item/gun/rifle/Qbz95Item.java | 8 +-- .../superbwarfare/item/gun/rifle/SksItem.java | 8 +-- .../item/gun/shotgun/Aa12Item.java | 4 +- .../item/gun/shotgun/HomemadeShotgunItem.java | 4 +- .../item/gun/shotgun/M870Item.java | 10 +-- .../item/gun/smg/VectorItem.java | 6 +- .../item/gun/sniper/HuntingRifleItem.java | 2 +- .../item/gun/sniper/K98Item.java | 18 ++--- .../item/gun/sniper/M98bItem.java | 6 +- .../item/gun/sniper/MosinNagantItem.java | 18 ++--- .../item/gun/sniper/SentinelItem.java | 6 +- .../item/gun/sniper/SvdItem.java | 6 +- .../item/gun/special/TaserItem.java | 4 +- .../network/message/ShootMessage.java | 4 +- .../superbwarfare/tools/GunsTool.java | 49 ++++++++----- .../superbwarfare/tools/NBTTool.java | 72 +++++++++++-------- 82 files changed, 334 insertions(+), 298 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/PoseTool.java b/src/main/java/com/atsuishio/superbwarfare/client/PoseTool.java index 42ceeb188..647b624d8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/PoseTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/PoseTool.java @@ -13,7 +13,7 @@ import net.neoforged.api.distmarker.OnlyIn; public class PoseTool { public static HumanoidModel.ArmPose pose(LivingEntity entityLiving, InteractionHand hand, ItemStack stack) { - var tag = NBTTool.getOrCreateTag(stack); + var tag = NBTTool.getTag(stack); if (tag.getBoolean("is_empty_reloading") || tag.getBoolean("is_normal_reloading") || GunsTool.getGunBooleanTag(stack, "Reloading") diff --git a/src/main/java/com/atsuishio/superbwarfare/client/layer/gun/MinigunHeatLayer.java b/src/main/java/com/atsuishio/superbwarfare/client/layer/gun/MinigunHeatLayer.java index 613b1422a..333f31f55 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/layer/gun/MinigunHeatLayer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/layer/gun/MinigunHeatLayer.java @@ -33,7 +33,7 @@ public class MinigunHeatLayer extends GeoRenderLayer { if (player == null) return; ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return; - float heat = (float) NBTTool.getOrCreateTag(stack).getDouble("heat"); + float heat = (float) NBTTool.getTag(stack).getDouble("heat"); var color = FastColor.ARGB32.color(1, (int) (heat / 55 * 255), (int) (heat / 55 * 255), (int) (heat / 55 * 255)); getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, color); } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK12ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK12ItemModel.java index 63ea02aba..07f1094e1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK12ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK12ItemModel.java @@ -110,7 +110,7 @@ public class AK12ItemModel extends GeoModel { scope2.setScaleZ(1f - (0.3f * (float) zp)); scope3.setScaleZ(1f - (0.7f * (float) zp)); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.85)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.85)); GeoBone shen; if (zt < 0.5) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK47ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK47ItemModel.java index 468d5eb94..ad1356b4a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK47ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/AK47ItemModel.java @@ -114,7 +114,7 @@ public class AK47ItemModel extends GeoModel { scope2.setScaleZ(1f - (0.3f * (float) zp)); scope3.setScaleZ(1f - (0.7f * (float) zp)); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.8)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.8)); GeoBone shen; if (zt < 0.5) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/BocekItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/BocekItemModel.java index 34fe29ec7..c0a63377c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/BocekItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/BocekItemModel.java @@ -105,7 +105,7 @@ public class BocekItemModel extends GeoModel { r.setScaleZ(1f - (0.31f * (float) zp)); shen.setRotZ(60 * Mth.DEG_TO_RAD * (float) zp + (float) (0.05f * zpz) - 0.2f); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !((shen_pos.getPosX() < -0.6 && gun.getPosZ() < -2))); + NBTTool.getTag(stack).putBoolean("HoloHidden", !((shen_pos.getPosX() < -0.6 && gun.getPosZ() < -2))); fire.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp)); fire.setPosY((float) (-0.03f * fp - 0.06f * fr)); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/DevotionItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/DevotionItemModel.java index 267767a27..5052394ca 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/DevotionItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/DevotionItemModel.java @@ -74,7 +74,7 @@ public class DevotionItemModel extends GeoModel { GeoBone shen = getAnimationProcessor().getBone("shen"); GeoBone holo = getAnimationProcessor().getBone("holo"); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.8)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.8)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); shen.setPosY((float) (0.15f * fp + 0.18f * fr)); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Hk416ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Hk416ItemModel.java index d87afc323..c40511e75 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Hk416ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Hk416ItemModel.java @@ -108,7 +108,7 @@ public class Hk416ItemModel extends GeoModel { scope2.setScaleZ(1f - (0.8f * (float) zp)); scope3.setScaleZ(1f - (0.5f * (float) zp)); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 3.1)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 3.1)); GeoBone shen; if (zt < 0.5) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/JavelinItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/JavelinItemModel.java index 29e61790f..1f617ef38 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/JavelinItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/JavelinItemModel.java @@ -67,7 +67,7 @@ public class JavelinItemModel extends GeoModel { gun.setRotZ(-4.75f * Mth.DEG_TO_RAD * (float) zp + (float) (0.02f * zpz)); javelin.setHidden(gun.getPosZ() > 15.85); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosZ() > 15.85)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosZ() > 15.85)); shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp)); shen.setPosY((float) (-0.03f * fp - 0.06f * fr)); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/K98ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/K98ItemModel.java index d00a34cd7..63eb6d97f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/K98ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/K98ItemModel.java @@ -45,7 +45,7 @@ public class K98ItemModel extends GeoModel { if (!stack.is(ModTags.Items.GUN)) return; - if (NBTTool.getOrCreateTag(stack).getDouble("prepare") > 11 && GunsTool.getGunIntTag(stack, "Ammo", 0) == 1) { + if (NBTTool.getTag(stack).getDouble("prepare") > 11 && GunsTool.getGunIntTag(stack, "Ammo", 0) == 1) { clip.setScaleX(0); clip.setScaleY(0); clip.setScaleZ(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M4ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M4ItemModel.java index 4aa8c2455..81af71418 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M4ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M4ItemModel.java @@ -86,9 +86,9 @@ public class M4ItemModel extends GeoModel { int type = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE); - posYAlt = Mth.lerp(times, posYAlt, NBTTool.getOrCreateTag(stack).getBoolean("ScopeAlt") ? -0.6875f : 0.5625f); - scaleZAlt = Mth.lerp(times, scaleZAlt, NBTTool.getOrCreateTag(stack).getBoolean("ScopeAlt") ? 0.4f : 0.88f); - posZAlt = Mth.lerp(times, posZAlt, NBTTool.getOrCreateTag(stack).getBoolean("ScopeAlt") ? 5.5f : 7.6f); + posYAlt = Mth.lerp(times, posYAlt, NBTTool.getTag(stack).getBoolean("ScopeAlt") ? -0.6875f : 0.5625f); + scaleZAlt = Mth.lerp(times, scaleZAlt, NBTTool.getTag(stack).getBoolean("ScopeAlt") ? 0.4f : 0.88f); + posZAlt = Mth.lerp(times, posZAlt, NBTTool.getTag(stack).getBoolean("ScopeAlt") ? 5.5f : 7.6f); rotXSight = Mth.lerp(1.5f * times, rotXSight, type == 0 ? 0 : 90); float posY = switch (type) { @@ -129,7 +129,7 @@ public class M4ItemModel extends GeoModel { button6.setScaleX(1f - (0.5f * (float) zp)); button7.setScaleX(1f - (0.5f * (float) zp)); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 2.385)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 2.385)); if (type == 3 && zt > 0.5) { lh.setPosY((float) (-zt * 4)); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M98bItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M98bItemModel.java index f94bae431..9e60b385d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M98bItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M98bItemModel.java @@ -88,7 +88,7 @@ public class M98bItemModel extends GeoModel { gun.setPosZ(4.2f * (float) zp + (float) (0.3f * zpz)); gun.setRotZ((float) (0.02f * zpz)); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.8)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.8)); GeoBone root = getAnimationProcessor().getBone("root"); GeoBone zhunxing = getAnimationProcessor().getBone("shi"); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MarlinItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MarlinItemModel.java index d5afa740e..5361c4499 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MarlinItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MarlinItemModel.java @@ -84,7 +84,7 @@ public class MarlinItemModel extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - if (NBTTool.getOrCreateTag(stack).getBoolean("empty")) { + if (NBTTool.getTag(stack).getBoolean("empty")) { jichui.setRotX(-0.52f); } 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 b2d309887..59115baf6 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 @@ -139,7 +139,7 @@ public class Mk14ItemModel extends GeoModel { action.setPosZ(2.5f * (float) fp); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 2.5)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 2.5)); GeoBone root = getAnimationProcessor().getBone("root"); root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MosinNagantItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MosinNagantItemModel.java index 40053fcaa..a80fa544c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/MosinNagantItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/MosinNagantItemModel.java @@ -86,7 +86,7 @@ public class MosinNagantItemModel extends GeoModel { qiangshen.setScaleZ(1); } - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.4)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.4)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); shen.setPosY((float) (0.4f * fp + 0.44f * fr)); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Ntw20Model.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Ntw20Model.java index 71aab2f54..cd2f1d426 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Ntw20Model.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Ntw20Model.java @@ -137,7 +137,7 @@ public class Ntw20Model extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 4.3)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 4.3)); action.setPosZ(3f * (float) ClientEventHandler.actionMove); lh.setPosZ(-3f * (float) ClientEventHandler.actionMove); 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 133db521d..5237b378e 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 @@ -122,7 +122,7 @@ public class Qbz95ItemModel extends GeoModel { button3.setScaleX(1f - (0.5f * (float) zp)); button6.setScaleX(1f - (0.8f * (float) zp)); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", gun.getPosX() < 3.1); + NBTTool.getTag(stack).putBoolean("HoloHidden", gun.getPosX() < 3.1); GeoBone shen; if (zt < 0.5) { @@ -202,7 +202,7 @@ public class Qbz95ItemModel extends GeoModel { lHandRotZ = Mth.lerp(1.5f * times, lHandRotZ, isZooming ? 2.9228f : leftHand.getRotZ()); - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { leftHand.setPosX(lHandPosX); leftHand.setPosY(lHandPosY); leftHand.setPosZ(lHandPosZ); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpkItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpkItemModel.java index 1284ef0d9..75d993cee 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpkItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/RpkItemModel.java @@ -74,7 +74,7 @@ public class RpkItemModel extends GeoModel { button.setScaleY(1f - (0.3f * (float) zp)); button.setScaleZ(1f - (0.3f * (float) zp)); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.65)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 1.65)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); shen.setPosY((float) (0.15f * fp + 0.18f * fr)); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SentinelItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SentinelItemModel.java index 0898e19c8..683f0389f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SentinelItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SentinelItemModel.java @@ -75,7 +75,7 @@ public class SentinelItemModel extends GeoModel { GeoBone holo = getAnimationProcessor().getBone("holo"); holo.setPosY(0.09f); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 2.4)); + NBTTool.getTag(stack).putBoolean("HoloHidden", !(gun.getPosX() > 2.4)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); shen.setPosY((float) (0.4f * fp + 0.44f * fr)); 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 7a4de6c8e..0a93e8c71 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 @@ -68,7 +68,7 @@ public class SksItemModel extends GeoModel { gun.setPosZ(2.5f * (float) zp + (float) (0.5f * zpz)); gun.setRotZ((float) (0.05f * zpz)); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", gun.getPosX() <= 1.2); + NBTTool.getTag(stack).putBoolean("HoloHidden", gun.getPosX() <= 1.2); GeoBone shen = getAnimationProcessor().getBone("shen"); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); 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 cb8bae921..9bba55d5f 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 @@ -110,7 +110,7 @@ public class SvdItemModel extends GeoModel { cross3.setScaleX((float) (1f + (0.1 * zp))); cross3.setScaleY((float) (1f + (0.1 * zp))); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", gun.getPosX() <= 1.4); + NBTTool.getTag(stack).putBoolean("HoloHidden", gun.getPosX() <= 1.4); GeoBone shen; if (zt < 0.5) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/TracheliumItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/TracheliumItemModel.java index c5c07740a..e4a15e28e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/TracheliumItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/TracheliumItemModel.java @@ -84,9 +84,9 @@ public class TracheliumItemModel extends GeoModel { int scopeType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE); int gripType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP); - posYAlt = Mth.lerp(times, posYAlt, NBTTool.getOrCreateTag(stack).getBoolean("ScopeAlt") ? -1.98f : -0.83f); - scaleZAlt = Mth.lerp(times, scaleZAlt, NBTTool.getOrCreateTag(stack).getBoolean("ScopeAlt") ? 0.4f : 0.8f); - posZAlt = Mth.lerp(times, posZAlt, NBTTool.getOrCreateTag(stack).getBoolean("ScopeAlt") ? 7.5f : 13.7f); + posYAlt = Mth.lerp(times, posYAlt, NBTTool.getTag(stack).getBoolean("ScopeAlt") ? -1.98f : -0.83f); + scaleZAlt = Mth.lerp(times, scaleZAlt, NBTTool.getTag(stack).getBoolean("ScopeAlt") ? 0.4f : 0.8f); + posZAlt = Mth.lerp(times, posZAlt, NBTTool.getTag(stack).getBoolean("ScopeAlt") ? 7.5f : 13.7f); float posY = switch (scopeType) { case 0 -> 1.1f; @@ -152,7 +152,7 @@ public class TracheliumItemModel extends GeoModel { CrossHairOverlay.gunRot = shen.getRotZ(); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", (gun.getPosX() <= 3 || Mth.abs(shen.getRotX()) > (scopeType == 2 ? 3 : 1) * Mth.DEG_TO_RAD || Mth.abs(main.getRotX()) > (scopeType == 2 ? 5.7 : 1) * Mth.DEG_TO_RAD || Mth.abs(main.getRotY()) > 3 * Mth.DEG_TO_RAD)); + NBTTool.getTag(stack).putBoolean("HoloHidden", (gun.getPosX() <= 3 || Mth.abs(shen.getRotX()) > (scopeType == 2 ? 3 : 1) * Mth.DEG_TO_RAD || Mth.abs(main.getRotX()) > (scopeType == 2 ? 5.7 : 1) * Mth.DEG_TO_RAD || Mth.abs(main.getRotY()) > 3 * Mth.DEG_TO_RAD)); hammer.setRotX(50 * Mth.DEG_TO_RAD * (float) ClientEventHandler.revolverPreTime); lun.setRotZ(-60 * Mth.DEG_TO_RAD * (float) ClientEventHandler.revolverWheelPreTime); @@ -161,7 +161,7 @@ public class TracheliumItemModel extends GeoModel { ammo.setRotZ(60 * Mth.DEG_TO_RAD * (float) ClientEventHandler.revolverWheelPreTime); ammohole.setRotZ(-60 * Mth.DEG_TO_RAD * (float) ClientEventHandler.revolverWheelPreTime); - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { lun.setRotZ(0); ammo.setRotZ(0); ammohole.setRotZ(0); @@ -170,7 +170,7 @@ public class TracheliumItemModel extends GeoModel { GeoBone root = getAnimationProcessor().getBone("root"); root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); - root.setPosZ(!NBTTool.getOrCreateTag(stack).getBoolean("DA") && !NBTTool.getOrCreateTag(stack).getBoolean("canImmediatelyShoot") ? 0.2f * (float) ClientEventHandler.revolverPreTime : 0); + root.setPosZ(!NBTTool.getTag(stack).getBoolean("DA") && !NBTTool.getTag(stack).getBoolean("canImmediatelyShoot") ? 0.2f * (float) ClientEventHandler.revolverPreTime : 0); root.setRotX((float) ((swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY))); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/VectorItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/VectorItemModel.java index 4f21c9cef..b060acf85 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/VectorItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/VectorItemModel.java @@ -97,7 +97,7 @@ public class VectorItemModel extends GeoModel { gun.setScaleZ(1f - (0.5f * (float) zp)); scope.setScaleZ(1f - (0.2f * (float) zp)); - NBTTool.getOrCreateTag(stack).putBoolean("HoloHidden", gun.getPosX() <= 2); + NBTTool.getTag(stack).putBoolean("HoloHidden", gun.getPosX() <= 2); GeoBone shen; if (zt < 0.5) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/CrossHairOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/CrossHairOverlay.java index 88bd3305c..f2eb75ae8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/CrossHairOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/CrossHairOverlay.java @@ -103,7 +103,7 @@ public class CrossHairOverlay { } if (stack.is(ModItems.BOCEK.get())) { - if (NBTTool.getOrCreateTag(stack).getBoolean("HoloHidden")) { + if (NBTTool.getTag(stack).getBoolean("HoloHidden")) { preciseBlit(guiGraphics, ModUtils.loc("textures/screens/point.png"), w / 2f - 7.5f + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16); if (!player.isSprinting() || player.getPersistentData().getDouble("noRun") > 0 || ClientEventHandler.pullPos > 0) { if (ClientEventHandler.zoomTime < 0.1) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK12ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK12ItemRenderer.java index a639d9a78..b383307be 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK12ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK12ItemRenderer.java @@ -87,31 +87,31 @@ public class AK12ItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2); } if (name.equals("Cross3")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 3); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && (name.equals("hidden2"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 3 && (name.equals("jing") || name.equals("Barrel") || name.equals("humu") || name.equals("qiangguan") || name.equals("houzhunxing"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK47ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK47ItemRenderer.java index 7d1ef9457..664772078 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK47ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/AK47ItemRenderer.java @@ -87,19 +87,19 @@ public class AK47ItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2); } if (name.equals("Cross3")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 3); } @@ -113,14 +113,14 @@ public class AK47ItemRenderer extends GeoItemRenderer { } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 - && (name.equals("Hidden") || name.equals("gun") || name.equals("Lefthand")) && ClientEventHandler.zoom && !NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden")) { + && (name.equals("Hidden") || name.equals("gun") || name.equals("Lefthand")) && ClientEventHandler.zoom && !NBTTool.getTag(itemStack).getBoolean("HoloHidden")) { bone.setHidden(true); renderingArms = false; } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 3 && (name.equals("jing") || name.equals("Barrel") || name.equals("humu") || name.equals("qiangguan") || name.equals("houzhunxing"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/BocekItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/BocekItemRenderer.java index 804e6efca..02a8a1434 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/BocekItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/BocekItemRenderer.java @@ -88,7 +88,7 @@ public class BocekItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("holo")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); } if (name.equals("arrow")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/DevotionItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/DevotionItemRenderer.java index 90d135d25..53f3e6eb8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/DevotionItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/DevotionItemRenderer.java @@ -97,7 +97,7 @@ public class DevotionItemRenderer extends GeoItemRenderer { } if (name.equals("holo")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); } if (this.transformType.firstPerson() && renderingArms) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Hk416ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Hk416ItemRenderer.java index 2506791ab..3b7c12690 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Hk416ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Hk416ItemRenderer.java @@ -87,31 +87,31 @@ public class Hk416ItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2); } if (name.equals("Cross3")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 3); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && (name.equals("hidden"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 3 && (name.equals("jing") || name.equals("Barrel") || name.equals("yugu") || name.equals("qiangguan"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M4ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M4ItemRenderer.java index 7c0270225..044aafdb6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M4ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M4ItemRenderer.java @@ -87,38 +87,38 @@ public class M4ItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2 - || NBTTool.getOrCreateTag(itemStack).getBoolean("ScopeAlt")); + || NBTTool.getTag(itemStack).getBoolean("ScopeAlt")); } if (name.equals("CrossAlt")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2 - || !(NBTTool.getOrCreateTag(itemStack).getBoolean("ScopeAlt"))); + || !(NBTTool.getTag(itemStack).getBoolean("ScopeAlt"))); } if (name.equals("Cross3")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 3); } - if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && !NBTTool.getOrCreateTag(itemStack).getBoolean("ScopeAlt") && (name.equals("hidden"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && !NBTTool.getTag(itemStack).getBoolean("ScopeAlt") && (name.equals("hidden"))) { + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 3 && (name.equals("hidden2") || name.equals("yugu") || name.equals("qiangguan") || name.equals("Barrel"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M98bItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M98bItemRenderer.java index 173bc6a29..2bbb8cb57 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M98bItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/M98bItemRenderer.java @@ -97,11 +97,11 @@ public class M98bItemRenderer extends GeoItemRenderer { } if (name.equals("scope2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); } if (name.equals("qiang")) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden")); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden")); } if (this.transformType.firstPerson() && renderingArms) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mk14ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mk14ItemRenderer.java index 6406d1b7a..81b965e76 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mk14ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Mk14ItemRenderer.java @@ -91,31 +91,31 @@ public class Mk14ItemRenderer extends GeoItemRenderer { } if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2); } if (name.equals("Cross3")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 3); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && (name.equals("hidden"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 3 && (name.equals("jing") || name.equals("yugu") || name.equals("qiangguan") || name.equals("Barrel"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MosinNagantItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MosinNagantItemRenderer.java index f0a370499..d40bc4e2c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MosinNagantItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/MosinNagantItemRenderer.java @@ -86,11 +86,11 @@ public class MosinNagantItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("rex")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); } if (name.equals("jia") || name.equals("b1") || name.equals("b2")) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden")); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden")); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Ntw20Renderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Ntw20Renderer.java index 213e4bc57..8d792f7b6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Ntw20Renderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Ntw20Renderer.java @@ -91,31 +91,31 @@ public class Ntw20Renderer extends GeoItemRenderer { } if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2); } if (name.equals("Cross3")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 3); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && (name.equals("bone1") || name.equals("zhituiqi") || name.equals("guan") || name.equals("hidden"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 3 && (name.equals("bone1") || name.equals("zhituiqi") || name.equals("guan") || name.equals("jing") || name.equals("rail") || name.equals("base2") || name.equals("guan7"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Qbz95ItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Qbz95ItemRenderer.java index 074612295..af06a59c3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Qbz95ItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/Qbz95ItemRenderer.java @@ -87,7 +87,7 @@ public class Qbz95ItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } @@ -105,25 +105,25 @@ public class Qbz95ItemRenderer extends GeoItemRenderer { } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2); } if (name.equals("Cross3")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 3); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && (name.equals("hidden"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 3 && (name.equals("hidden2") || name.equals("jimiao2"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpgItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpgItemRenderer.java index fb31f68cb..cb9df49dd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpgItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpgItemRenderer.java @@ -84,7 +84,7 @@ public class RpgItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("Rockets")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("empty")); + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("empty")); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpkItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpkItemRenderer.java index f5aaa0112..a7d03a32c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpkItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/RpkItemRenderer.java @@ -86,7 +86,7 @@ public class RpkItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("holo")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SentinelItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SentinelItemRenderer.java index ff0cb6b41..67cef8b65 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SentinelItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SentinelItemRenderer.java @@ -100,7 +100,7 @@ public class SentinelItemRenderer extends GeoItemRenderer { } if (name.equals("holo")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); } var cap = itemStack.getCapability(Capabilities.EnergyStorage.ITEM); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SksItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SksItemRenderer.java index 409b10437..b6a7dea0f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SksItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SksItemRenderer.java @@ -86,7 +86,7 @@ public class SksItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("holo")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom); } if (name.equals("flare")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SvdItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SvdItemRenderer.java index 22071801e..7fd04b115 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SvdItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/SvdItemRenderer.java @@ -91,19 +91,19 @@ public class SvdItemRenderer extends GeoItemRenderer { } if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2); } if ((GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 3) - && (name.equals("Hidden2") || name.equals("Hidden") || name.equals("gun") || name.equals("bolt") || name.equals("Lefthand") || name.equals("Barrel") || name.equals("bipod") || name.equals("mount")) && ClientEventHandler.zoom && !NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden")) { + && (name.equals("Hidden2") || name.equals("Hidden") || name.equals("gun") || name.equals("bolt") || name.equals("Lefthand") || name.equals("Barrel") || name.equals("bipod") || name.equals("mount")) && ClientEventHandler.zoom && !NBTTool.getTag(itemStack).getBoolean("HoloHidden")) { bone.setHidden(true); renderingArms = false; } @@ -112,7 +112,7 @@ public class SvdItemRenderer extends GeoItemRenderer { if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.BARREL) == 2 || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.BARREL) == 3) { bone.setHidden(true); } else { - if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && ClientEventHandler.zoom && !NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden")) { + if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && ClientEventHandler.zoom && !NBTTool.getTag(itemStack).getBoolean("HoloHidden")) { bone.setPosY(-2f); } bone.setHidden(false); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/TracheliumItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/TracheliumItemRenderer.java index f409beb34..4376aa23b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/TracheliumItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/TracheliumItemRenderer.java @@ -105,27 +105,27 @@ public class TracheliumItemRenderer extends GeoItemRenderer { } if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2 - || NBTTool.getOrCreateTag(itemStack).getBoolean("ScopeAlt")); + || NBTTool.getTag(itemStack).getBoolean("ScopeAlt")); } if (name.equals("CrossAlt")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2 - || !(NBTTool.getOrCreateTag(itemStack).getBoolean("ScopeAlt"))); + || !(NBTTool.getTag(itemStack).getBoolean("ScopeAlt"))); } - if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && !NBTTool.getOrCreateTag(itemStack).getBoolean("ScopeAlt") && (name.equals("hidden"))) { - bone.setHidden(!NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); + if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && !NBTTool.getTag(itemStack).getBoolean("ScopeAlt") && (name.equals("hidden"))) { + bone.setHidden(!NBTTool.getTag(itemStack).getBoolean("HoloHidden") && ClientEventHandler.zoom); } // TODO handle gun attachments diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/VectorItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/VectorItemRenderer.java index 61426ebd0..72cf52c0c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/VectorItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/item/VectorItemRenderer.java @@ -87,13 +87,13 @@ public class VectorItemRenderer extends GeoItemRenderer { if (!itemStack.is(ModTags.Items.GUN)) return; if (name.equals("Cross1")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1); } if (name.equals("Cross2")) { - bone.setHidden(NBTTool.getOrCreateTag(itemStack).getBoolean("HoloHidden") + bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2); } diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index 132ba57bb..155e51ee3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -173,7 +173,7 @@ public class ClientEventHandler { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.REVOLVER)) { return true; - } else if (stack.is(ModTags.Items.REVOLVER) && (NBTTool.getOrCreateTag(stack).getBoolean("DA") || NBTTool.getOrCreateTag(stack).getBoolean("canImmediatelyShoot"))) { + } else if (stack.is(ModTags.Items.REVOLVER) && (NBTTool.getTag(stack).getBoolean("DA") || NBTTool.getTag(stack).getBoolean("canImmediatelyShoot"))) { return true; } else { return revolverPreTime >= 1; @@ -257,7 +257,7 @@ public class ClientEventHandler { && !holdFireVehicle && !notInGame() // && !cap != null && cap.edit - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading") || NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) + && !(NBTTool.getTag(stack).getBoolean("is_normal_reloading") || NBTTool.getTag(stack).getBoolean("is_empty_reloading")) && !GunsTool.getGunBooleanTag(stack, "Reloading") && !player.getCooldowns().isOnCooldown(stack.getItem()) && !GunsTool.getGunBooleanTag(stack, "Charging")) { @@ -400,11 +400,11 @@ public class ClientEventHandler { int cooldown = (int) (1000 / rps); //左轮类 - if (clientTimer.getProgress() == 0 && stack.is(ModTags.Items.REVOLVER) && ((holdFire && !NBTTool.getOrCreateTag(stack).getBoolean("DA")) - || (GunsTool.getGunIntTag(stack, "BoltActionTick") < 7 && GunsTool.getGunIntTag(stack, "BoltActionTick") > 2) || NBTTool.getOrCreateTag(stack).getBoolean("canImmediatelyShoot"))) { + if (clientTimer.getProgress() == 0 && stack.is(ModTags.Items.REVOLVER) && ((holdFire && !NBTTool.getTag(stack).getBoolean("DA")) + || (GunsTool.getGunIntTag(stack, "BoltActionTick") < 7 && GunsTool.getGunIntTag(stack, "BoltActionTick") > 2) || NBTTool.getTag(stack).getBoolean("canImmediatelyShoot"))) { revolverPreTime = Mth.clamp(revolverPreTime + 0.3 * times, 0, 1); revolverWheelPreTime = Mth.clamp(revolverWheelPreTime + 0.32 * times, 0, revolverPreTime > 0.7 ? 1 : 0.55); - } else if (!NBTTool.getOrCreateTag(stack).getBoolean("DA") && !NBTTool.getOrCreateTag(stack).getBoolean("canImmediatelyShoot")) { + } else if (!NBTTool.getTag(stack).getBoolean("DA") && !NBTTool.getTag(stack).getBoolean("canImmediatelyShoot")) { revolverPreTime = Mth.clamp(revolverPreTime - 1.2 * times, 0, 1); } @@ -419,7 +419,7 @@ public class ClientEventHandler { && drawTime < 0.01 && cap != null && !cap.edit && !notInGame() - && (!(NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading") || NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) + && (!(NBTTool.getTag(stack).getBoolean("is_normal_reloading") || NBTTool.getTag(stack).getBoolean("is_empty_reloading")) && !GunsTool.getGunBooleanTag(stack, "Reloading") && !GunsTool.getGunBooleanTag(stack, "Charging") && GunsTool.getGunIntTag(stack, "Ammo", 0) > 0 @@ -430,7 +430,7 @@ public class ClientEventHandler { // todo minigun // stack.is(ModItems.MINIGUN.get()) && !player.isSprinting() - && NBTTool.getOrCreateTag(stack).getDouble("overheat") == 0 + && NBTTool.getTag(stack).getDouble("overheat") == 0 && !player.getCooldowns().isOnCooldown(stack.getItem()) && miniGunRot >= 20 && (cap != null && cap.rifleAmmo > 0 || InventoryTool.hasCreativeAmmoBox(player)) ))) { @@ -813,7 +813,7 @@ public class ClientEventHandler { && ( // todo monitor // stack.is(ModItems.MONITOR.get()) && - NBTTool.getOrCreateTag(stack).getBoolean("Using") && NBTTool.getOrCreateTag(stack).getBoolean("Linked"))) { + NBTTool.getTag(stack).getBoolean("Using") && NBTTool.getTag(stack).getBoolean("Linked"))) { handleDroneCamera(event, living); } else { var effect = Minecraft.getInstance().gameRenderer.currentEffect(); diff --git a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java index e5cb76239..2ccaeb6b8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java @@ -26,6 +26,8 @@ import net.neoforged.neoforge.event.tick.PlayerTickEvent; import java.text.DecimalFormat; +import static com.atsuishio.superbwarfare.tools.NBTTool.saveTag; + @EventBusSubscriber(modid = ModUtils.MODID) public class GunEventHandler { @@ -61,7 +63,7 @@ public class GunEventHandler { if (GunsTool.getGunIntTag(stack, "BoltActionTick") == 1) { GunsTool.setGunBooleanTag(stack, "NeedBoltAction", false); if (stack.is(ModTags.Items.REVOLVER)) { - NBTTool.getOrCreateTag(stack).putBoolean("canImmediatelyShoot", true); + NBTTool.getTag(stack).putBoolean("canImmediatelyShoot", true); } } } @@ -317,8 +319,8 @@ public class GunEventHandler { ItemStack stack = player.getMainHandItem(); if (!(stack.getItem() instanceof GunItem gunItem)) return; - CompoundTag tag = NBTTool.getOrCreateTag(stack); - CompoundTag data = NBTTool.getOrCreateTag(stack).getCompound("GunData"); + CompoundTag tag = NBTTool.getTag(stack); + CompoundTag data = NBTTool.getTag(stack).getCompound("GunData"); // 启动换弹 if (GunsTool.getGunBooleanTag(stack, "StartReload")) { @@ -327,16 +329,16 @@ public class GunEventHandler { if (gunItem.isOpenBolt(stack)) { if (GunsTool.getGunIntTag(stack, "Ammo", 0) == 0) { data.putInt("ReloadTime", data.getInt("EmptyReloadTime") + 1); - NBTTool.getOrCreateTag(stack).putBoolean("is_empty_reloading", true); + NBTTool.getTag(stack).putBoolean("is_empty_reloading", true); playGunEmptyReloadSounds(player); } else { data.putInt("ReloadTime", data.getInt("NormalReloadTime") + 1); - NBTTool.getOrCreateTag(stack).putBoolean("is_normal_reloading", true); + NBTTool.getTag(stack).putBoolean("is_normal_reloading", true); playGunNormalReloadSounds(player); } } else { data.putInt("ReloadTime", data.getInt("EmptyReloadTime") + 2); - NBTTool.getOrCreateTag(stack).putBoolean("is_empty_reloading", true); + NBTTool.getTag(stack).putBoolean("is_empty_reloading", true); playGunEmptyReloadSounds(player); } data.putBoolean("StartReload", false); @@ -406,6 +408,7 @@ public class GunEventHandler { } tag.put("GunData", data); + saveTag(stack, tag); } public static void playGunNormalReload(Player player) { @@ -429,8 +432,8 @@ public class GunEventHandler { GunsTool.reload(player, stack, AmmoType.HEAVY, gunItem.hasBulletInBarrel(stack)); } } - NBTTool.getOrCreateTag(stack).putBoolean("is_normal_reloading", false); - NBTTool.getOrCreateTag(stack).putBoolean("is_empty_reloading", false); + NBTTool.getTag(stack).putBoolean("is_normal_reloading", false); + NBTTool.getTag(stack).putBoolean("is_empty_reloading", false); // TODO reload event // NeoForge.EVENT_BUS.post(new ReloadEvent.Post(player, stack)); @@ -470,8 +473,8 @@ public class GunEventHandler { // } } - NBTTool.getOrCreateTag(stack).putBoolean("is_normal_reloading", false); - NBTTool.getOrCreateTag(stack).putBoolean("is_empty_reloading", false); + NBTTool.getTag(stack).putBoolean("is_normal_reloading", false); + NBTTool.getTag(stack).putBoolean("is_empty_reloading", false); // TODO reload event // NeoForge.EVENT_BUS.post(new ReloadEvent.Post(player, stack)); @@ -519,7 +522,7 @@ public class GunEventHandler { */ private static void handleGunSingleReload(Player player) { ItemStack stack = player.getMainHandItem(); - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); // 换弹流程计时器 if (tag.getDouble("prepare") > 0) { @@ -729,6 +732,7 @@ public class GunEventHandler { // todo reload event // NeoForge.EVENT_BUS.post(new ReloadEvent.Post(player, stack)); } + saveTag(stack, tag); } public static void singleLoad(Player player) { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/ArmorPlate.java b/src/main/java/com/atsuishio/superbwarfare/item/ArmorPlate.java index 3f2765530..5c9547643 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/ArmorPlate.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/ArmorPlate.java @@ -33,7 +33,7 @@ public class ArmorPlate extends Item { @Override @ParametersAreNonnullByDefault public void appendHoverText(ItemStack stack, TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { - if (NBTTool.getOrCreateTag(stack).getBoolean("Infinite")) { + if (NBTTool.getTag(stack).getBoolean("Infinite")) { tooltipComponents.add(Component.translatable("des.superbwarfare.armor_plate.infinite").withStyle(ChatFormatting.GRAY)); } } @@ -54,7 +54,7 @@ public class ArmorPlate extends Item { } // TODO 解决数据双端同步问题 - if (NBTTool.getOrCreateTag(armor).getDouble("ArmorPlate") < armorLevel * 15) { + if (NBTTool.getTag(armor).getDouble("ArmorPlate") < armorLevel * 15) { playerIn.startUsingItem(handIn); } @@ -79,13 +79,13 @@ public class ArmorPlate extends Item { armorLevel = 3; } - NBTTool.getOrCreateTag(armor).putDouble("ArmorPlate", Mth.clamp(NBTTool.getOrCreateTag(armor).getDouble("ArmorPlate") + 15, 0, armorLevel * 15)); + NBTTool.getTag(armor).putDouble("ArmorPlate", Mth.clamp(NBTTool.getTag(armor).getDouble("ArmorPlate") + 15, 0, armorLevel * 15)); if (pLivingEntity instanceof ServerPlayer serverPlayer) { serverPlayer.level().playSound((Entity) null, serverPlayer.getOnPos(), SoundEvents.ARMOR_EQUIP_IRON.value(), SoundSource.PLAYERS, 0.5f, 1); } - if (pLivingEntity instanceof Player player && !player.isCreative() && !NBTTool.getOrCreateTag(pStack).getBoolean("Infinite")) { + if (pLivingEntity instanceof Player player && !player.isCreative() && !NBTTool.getTag(pStack).getBoolean("Infinite")) { pStack.shrink(1); } } @@ -101,7 +101,7 @@ public class ArmorPlate extends Item { public static ItemStack getInfiniteInstance() { ItemStack stack = new ItemStack(ModItems.ARMOR_PLATE.get()); - NBTTool.getOrCreateTag(stack).putBoolean("Infinite", true); + NBTTool.getTag(stack).putBoolean("Infinite", true); return stack; } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunEvents.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunEvents.java index 6738c26ee..098d4efca 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunEvents.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunEvents.java @@ -13,8 +13,8 @@ public class GunEvents { public static void onPickup(ItemEntityPickupEvent.Pre event) { var stack = event.getItemEntity().getItem(); if (stack.is(ModTags.Items.GUN)) { - NBTTool.getOrCreateTag(stack).putBoolean("draw", true); - NBTTool.getOrCreateTag(stack).putBoolean("init", true); + NBTTool.getTag(stack).putBoolean("draw", true); + NBTTool.getTag(stack).putBoolean("init", true); } } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java index 37ac76988..93724566c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java @@ -38,6 +38,8 @@ import javax.annotation.ParametersAreNonnullByDefault; import java.util.Optional; import java.util.Set; +import static com.atsuishio.superbwarfare.tools.NBTTool.saveTag; + @EventBusSubscriber(modid = ModUtils.MODID, bus = EventBusSubscriber.Bus.MOD) public abstract class GunItem extends Item implements CustomRendererItem { @@ -64,8 +66,8 @@ public abstract class GunItem extends Item implements CustomRendererItem { NBTTool.setBoolean(stack, "init", true); } - if (NBTTool.getOrCreateTag(stack).getBoolean("draw")) { - NBTTool.getOrCreateTag(stack).putBoolean("draw", false); + if (NBTTool.getTag(stack).getBoolean("draw")) { + NBTTool.getTag(stack).putBoolean("draw", false); } handleGunPerks(stack); @@ -192,7 +194,7 @@ public abstract class GunItem extends Item implements CustomRendererItem { } private void handleGunAttachment(ItemStack stack) { - CompoundTag tag = NBTTool.getOrCreateTag(stack).getCompound("Attachments"); + CompoundTag tag = NBTTool.getTag(stack).getCompound("Attachments"); double scopeWeight = switch (tag.getInt("Scope")) { case 1 -> 0.5; @@ -236,7 +238,7 @@ public abstract class GunItem extends Item implements CustomRendererItem { } private void reducePerkTagCoolDown(ItemStack stack, String... tags) { - var tag = NBTTool.getOrCreateTag(stack); + var tag = NBTTool.getTag(stack); var compound = tag.getCompound("PerkData"); for (String t : tags) { @@ -249,6 +251,7 @@ public abstract class GunItem extends Item implements CustomRendererItem { } } tag.put("PerkData", compound); + saveTag(stack, tag); } /** diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock17Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock17Item.java index 51b30686f..4f193ad6f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock17Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock17Item.java @@ -50,11 +50,11 @@ public class Glock17Item extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_normal")); } @@ -70,7 +70,7 @@ public class Glock17Item extends GunItem implements GeoItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading") || NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { + && !(NBTTool.getTag(stack).getBoolean("is_normal_reloading") || NBTTool.getTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.run_fast")); } else { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock18Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock18Item.java index 43edc3527..5ed7e7dd5 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock18Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock18Item.java @@ -50,11 +50,11 @@ public class Glock18Item extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_normal")); } @@ -69,7 +69,7 @@ public class Glock18Item extends GunItem implements GeoItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading") || NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { + && !(NBTTool.getTag(stack).getBoolean("is_normal_reloading") || NBTTool.getTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.run_fast")); } else { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/M1911Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/M1911Item.java index 38ea2102c..52389aa1c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/M1911Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/M1911Item.java @@ -50,11 +50,11 @@ public class M1911Item extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_normal")); } @@ -70,7 +70,7 @@ public class M1911Item extends GunItem implements GeoItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading") || NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { + && !(NBTTool.getTag(stack).getBoolean("is_normal_reloading") || NBTTool.getTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.run_fast")); } else { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Mp443Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Mp443Item.java index 10c1f87d3..5c282b47d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Mp443Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Mp443Item.java @@ -50,11 +50,11 @@ public class Mp443Item extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_normal")); } @@ -70,7 +70,7 @@ public class Mp443Item extends GunItem implements GeoItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading") || NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { + && !(NBTTool.getTag(stack).getBoolean("is_normal_reloading") || NBTTool.getTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.run_fast")); } else { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Trachelium.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Trachelium.java index 88ec28e68..f725ba0c9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Trachelium.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Trachelium.java @@ -37,6 +37,8 @@ import javax.annotation.ParametersAreNonnullByDefault; import java.util.List; import java.util.Set; +import static com.atsuishio.superbwarfare.tools.NBTTool.saveTag; + public class Trachelium extends GunItem implements GeoItem { private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); @@ -125,7 +127,7 @@ public class Trachelium extends GunItem implements GeoItem { } } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { if (stock) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.reload_stock_grip")); @@ -240,13 +242,13 @@ public class Trachelium extends GunItem implements GeoItem { @ParametersAreNonnullByDefault public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { super.inventoryTick(stack, world, entity, slot, selected); - var tag = NBTTool.getOrCreateTag(stack); + var tag = NBTTool.getTag(stack); GunsTool.setGunIntTag(stack, "BoltActionTime", tag.getBoolean("DA") ? 12 : 0); int scopeType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE); int gripType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP); int stockType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.STOCK); - CompoundTag tags = NBTTool.getOrCreateTag(stack).getCompound("Attachments"); + CompoundTag tags = tag.getCompound("Attachments"); if (stockType == 1) { tags.putInt("Stock", 2); @@ -270,12 +272,13 @@ public class Trachelium extends GunItem implements GeoItem { double customZoom = switch (scopeType) { case 0, 1 -> 0; - case 2 -> NBTTool.getOrCreateTag(stack).getBoolean("ScopeAlt") ? 0 : 2.75; + case 2 -> NBTTool.getTag(stack).getBoolean("ScopeAlt") ? 0 : 2.75; default -> 1; }; GunsTool.setGunBooleanTag(stack, "CanSwitchScope", scopeType == 2); GunsTool.setGunDoubleTag(stack, "CustomZoom", customZoom); + saveTag(stack, tag); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/heavy/Ntw20Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/heavy/Ntw20Item.java index 5989401de..fe449e96c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/heavy/Ntw20Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/heavy/Ntw20Item.java @@ -64,11 +64,11 @@ public class Ntw20Item extends GunItem implements GeoItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.shift")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.reload_normal")); } @@ -83,7 +83,7 @@ public class Ntw20Item extends GunItem implements GeoItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading") || NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) + && !(NBTTool.getTag(stack).getBoolean("is_normal_reloading") || NBTTool.getTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED) && GunsTool.getGunIntTag(stack, "BoltActionTick") == 0) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ntw_20.run_fast")); @@ -143,7 +143,7 @@ public class Ntw20Item extends GunItem implements GeoItem { default -> GunsTool.getGunDoubleTag(stack, "CustomZoom", 0); }; - NBTTool.getOrCreateTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); + NBTTool.getTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); GunsTool.setGunDoubleTag(stack, "CustomZoom", customZoom); GunsTool.setGunIntTag(stack, "CustomMagazine", customMag); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/JavelinItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/JavelinItem.java index 15ad0c53d..2dc71d009 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/JavelinItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/JavelinItem.java @@ -72,7 +72,7 @@ public class JavelinItem extends GunItem implements GeoItem, SpecialFireWeapon { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.javelin.reload")); } @@ -129,7 +129,7 @@ public class JavelinItem extends GunItem implements GeoItem, SpecialFireWeapon { public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { super.inventoryTick(stack, world, entity, slot, selected); if (entity instanceof Player player && selected) { - var tag = NBTTool.getOrCreateTag(stack); + var tag = NBTTool.getTag(stack); GunsTool.setGunIntTag(stack, "MaxAmmo", getAmmoCount(player)); if (tag.getBoolean("Seeking")) { @@ -195,7 +195,7 @@ public class JavelinItem extends GunItem implements GeoItem, SpecialFireWeapon { } } } else { - NBTTool.getOrCreateTag(stack).putInt("SeekTime", 0); + NBTTool.getTag(stack).putInt("SeekTime", 0); } } @@ -239,7 +239,7 @@ public class JavelinItem extends GunItem implements GeoItem, SpecialFireWeapon { private void fire(Player player) { Level level = player.level(); ItemStack stack = player.getMainHandItem(); - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); if (tag.getInt("SeekTime") < 20) return; @@ -291,7 +291,7 @@ public class JavelinItem extends GunItem implements GeoItem, SpecialFireWeapon { @Override public void fireOnRelease(Player player) { - var tag = NBTTool.getOrCreateTag(player.getMainHandItem()); + var tag = NBTTool.getTag(player.getMainHandItem()); fire(player); tag.putBoolean("Seeking", false); tag.putInt("SeekTime", 0); @@ -305,7 +305,7 @@ public class JavelinItem extends GunItem implements GeoItem, SpecialFireWeapon { @Override public void fireOnPress(Player player) { var stack = player.getMainHandItem(); - var tag = NBTTool.getOrCreateTag(stack); + var tag = NBTTool.getTag(stack); var cap = player.getCapability(ModCapabilities.PLAYER_VARIABLE); if (cap != null && !cap.zoom || GunsTool.getGunIntTag(stack, "Ammo", 0) <= 0) return; diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/M79Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/M79Item.java index 6701e83fe..fb0be5042 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/M79Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/M79Item.java @@ -65,7 +65,7 @@ public class M79Item extends GunItem implements GeoItem, SpecialFireWeapon { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m79.reload")); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/RpgItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/RpgItem.java index 91963bd43..c3274bafb 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/RpgItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/RpgItem.java @@ -34,9 +34,12 @@ import software.bernie.geckolib.animation.*; import software.bernie.geckolib.renderer.GeoItemRenderer; import software.bernie.geckolib.util.GeckoLibUtil; +import javax.annotation.ParametersAreNonnullByDefault; import java.util.Optional; import java.util.Set; +import static com.atsuishio.superbwarfare.tools.NBTTool.saveTag; + public class RpgItem extends GunItem implements GeoItem, SpecialFireWeapon { private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); @@ -61,7 +64,7 @@ public class RpgItem extends GunItem implements GeoItem, SpecialFireWeapon { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.rpg.reload")); } @@ -114,12 +117,13 @@ public class RpgItem extends GunItem implements GeoItem, SpecialFireWeapon { } @Override + @ParametersAreNonnullByDefault public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { - if (NBTTool.getOrCreateTag(stack).getBoolean("draw")) { - NBTTool.getOrCreateTag(stack).putBoolean("draw", false); + if (NBTTool.getTag(stack).getBoolean("draw")) { + NBTTool.getTag(stack).putBoolean("draw", false); if (GunsTool.getGunIntTag(stack, "Ammo", 0) == 0) { - NBTTool.getOrCreateTag(stack).putDouble("empty", 1); + NBTTool.getTag(stack).putDouble("empty", 1); } } @@ -171,7 +175,7 @@ public class RpgItem extends GunItem implements GeoItem, SpecialFireWeapon { public void fireOnPress(Player player) { Level level = player.level(); ItemStack stack = player.getMainHandItem(); - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); if (GunsTool.getGunBooleanTag(stack, "Reloading") || player.getCooldowns().isOnCooldown(stack.getItem()) @@ -233,5 +237,6 @@ public class RpgItem extends GunItem implements GeoItem, SpecialFireWeapon { player.getCooldowns().addCooldown(stack.getItem(), 10); GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Ammo", 0) - 1); + saveTag(stack, tag); } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/SecondaryCataclysm.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/SecondaryCataclysm.java index ddbd48d60..7ccd067eb 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/SecondaryCataclysm.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/SecondaryCataclysm.java @@ -86,15 +86,15 @@ public class SecondaryCataclysm extends GunItem implements GeoItem, SpecialFireW ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 1 && NBTTool.getOrCreateTag(stack).getDouble("prepare_load") > 0) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 1 && NBTTool.getTag(stack).getDouble("prepare_load") > 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sc.prepare")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 0 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 0 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sc.iterativeload")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 1 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 1 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sc.iterativeload2")); } @@ -102,7 +102,7 @@ public class SecondaryCataclysm extends GunItem implements GeoItem, SpecialFireW return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sc.hit")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 3) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 3) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sc.finish")); } @@ -117,10 +117,10 @@ public class SecondaryCataclysm extends GunItem implements GeoItem, SpecialFireW if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) - && NBTTool.getOrCreateTag(stack).getInt("reload_stage") != 1 - && NBTTool.getOrCreateTag(stack).getInt("reload_stage") != 2 - && NBTTool.getOrCreateTag(stack).getInt("reload_stage") != 3 + && !(NBTTool.getTag(stack).getBoolean("is_empty_reloading")) + && NBTTool.getTag(stack).getInt("reload_stage") != 1 + && NBTTool.getTag(stack).getInt("reload_stage") != 2 + && NBTTool.getTag(stack).getInt("reload_stage") != 3 && ClientEventHandler.drawTime < 0.01 && ClientEventHandler.gunMelee == 0 && !GunsTool.getGunBooleanTag(stack, "Reloading")) { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/DevotionItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/DevotionItem.java index 065e88aac..822173aa1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/DevotionItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/DevotionItem.java @@ -50,11 +50,11 @@ public class DevotionItem extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.devotion.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.devotion.reload_normal")); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/M60Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/M60Item.java index 305ceb0d8..faa5084b2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/M60Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/M60Item.java @@ -66,11 +66,11 @@ public class M60Item extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m60.reload")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m60.reload2")); } @@ -112,8 +112,8 @@ public class M60Item extends GunItem implements GeoItem { @Override @ParametersAreNonnullByDefault public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) { - if (NBTTool.getOrCreateTag(stack).getBoolean("draw")) { - NBTTool.getOrCreateTag(stack).putBoolean("draw", false); + if (NBTTool.getTag(stack).getBoolean("draw")) { + NBTTool.getTag(stack).putBoolean("draw", false); if (GunsTool.getGunIntTag(stack, "Ammo", 0) <= 5) { GunsTool.setGunBooleanTag(stack, "HideBulletChain", true); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/MinigunItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/MinigunItem.java index 3e6c845ea..267dc6bd3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/MinigunItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/MinigunItem.java @@ -129,7 +129,7 @@ public class MinigunItem extends GunItem implements GeoItem { cooldown = -0.1; } - if (entity instanceof ServerPlayer serverPlayer && entity.level() instanceof ServerLevel serverLevel && NBTTool.getOrCreateTag(itemstack).getDouble("heat") > 4 && entity.isInWaterOrRain()) { + if (entity instanceof ServerPlayer serverPlayer && entity.level() instanceof ServerLevel serverLevel && NBTTool.getTag(itemstack).getDouble("heat") > 4 && entity.isInWaterOrRain()) { if (entity.isInWater()) { ParticleTool.sendParticle(serverLevel, ParticleTypes.BUBBLE_COLUMN_UP, entity.getX() + leftPos.x, @@ -144,10 +144,10 @@ public class MinigunItem extends GunItem implements GeoItem { 1, 0.1, 0.1, 0.1, 0.002, true, serverPlayer); } - NBTTool.getOrCreateTag(itemstack).putDouble("heat", Mth.clamp(NBTTool.getOrCreateTag(itemstack).getDouble("heat") - 0.05 - cooldown, 0, 55)); + NBTTool.getTag(itemstack).putDouble("heat", Mth.clamp(NBTTool.getTag(itemstack).getDouble("heat") - 0.05 - cooldown, 0, 55)); - if (NBTTool.getOrCreateTag(itemstack).getDouble("overheat") > 0) { - NBTTool.getOrCreateTag(itemstack).putDouble("overheat", (NBTTool.getOrCreateTag(itemstack).getDouble("overheat") - 1)); + if (NBTTool.getTag(itemstack).getDouble("overheat") > 0) { + NBTTool.getTag(itemstack).putDouble("overheat", (NBTTool.getTag(itemstack).getDouble("overheat") - 1)); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/RpkItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/RpkItem.java index 379d5f4e4..4dcf7fe7e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/RpkItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/RpkItem.java @@ -50,11 +50,11 @@ public class RpkItem extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_normal")); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK12Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK12Item.java index 963c7a57c..aba48d814 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK12Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK12Item.java @@ -61,7 +61,7 @@ public class AK12Item extends GunItem implements GeoItem { boolean drum = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE) == 2; boolean grip = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 1 || GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 2; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak12.reload_empty_grip")); } else { @@ -69,7 +69,7 @@ public class AK12Item extends GunItem implements GeoItem { } } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak12.reload_normal_drum_grip")); @@ -158,7 +158,7 @@ public class AK12Item extends GunItem implements GeoItem { default -> GunsTool.getGunDoubleTag(stack, "CustomZoom", 0); }; - NBTTool.getOrCreateTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); + NBTTool.getTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); GunsTool.setGunDoubleTag(stack, "CustomZoom", customZoom); GunsTool.setGunIntTag(stack, "CustomMagazine", customMag); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK47Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK47Item.java index 129272be8..2a636def7 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK47Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK47Item.java @@ -62,7 +62,7 @@ public class AK47Item extends GunItem implements GeoItem { boolean drum = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE) == 2; boolean grip = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 1 || GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 2; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_empty_drum_grip")); @@ -78,7 +78,7 @@ public class AK47Item extends GunItem implements GeoItem { } } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_normal_drum_grip")); @@ -168,7 +168,7 @@ public class AK47Item extends GunItem implements GeoItem { default -> GunsTool.getGunDoubleTag(stack, "CustomZoom", 0); }; - NBTTool.getOrCreateTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); + NBTTool.getTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); GunsTool.setGunDoubleTag(stack, "CustomZoom", customZoom); GunsTool.setGunIntTag(stack, "CustomMagazine", customMag); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Hk416Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Hk416Item.java index bcf43279a..5e210f171 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Hk416Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Hk416Item.java @@ -56,7 +56,7 @@ public class Hk416Item extends GunItem implements GeoItem { boolean drum = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE) == 2; boolean grip = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 1 || GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 2; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload_empty_drum_grip")); @@ -72,7 +72,7 @@ public class Hk416Item extends GunItem implements GeoItem { } } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload_normal_drum_grip")); @@ -152,7 +152,7 @@ public class Hk416Item extends GunItem implements GeoItem { default -> GunsTool.getGunDoubleTag(stack, "CustomZoom", 0); }; - NBTTool.getOrCreateTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); + NBTTool.getTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); GunsTool.setGunDoubleTag(stack, "CustomZoom", customZoom); GunsTool.setGunIntTag(stack, "CustomMagazine", customMag); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/M4Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/M4Item.java index 1154ba724..3bf173968 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/M4Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/M4Item.java @@ -56,7 +56,7 @@ public class M4Item extends GunItem implements GeoItem { boolean drum = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE) == 2; boolean grip = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 1 || GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 2; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload_empty_drum_grip")); @@ -72,7 +72,7 @@ public class M4Item extends GunItem implements GeoItem { } } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload_normal_drum_grip")); @@ -162,12 +162,12 @@ public class M4Item extends GunItem implements GeoItem { double customZoom = switch (scopeType) { case 0, 1 -> 0; - case 2 -> NBTTool.getOrCreateTag(stack).getBoolean("ScopeAlt") ? 0 : 2.75; + case 2 -> NBTTool.getTag(stack).getBoolean("ScopeAlt") ? 0 : 2.75; default -> GunsTool.getGunDoubleTag(stack, "CustomZoom", 0); }; GunsTool.setGunBooleanTag(stack, "CanSwitchScope", scopeType == 2); - NBTTool.getOrCreateTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); + NBTTool.getTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); GunsTool.setGunDoubleTag(stack, "CustomZoom", customZoom); GunsTool.setGunIntTag(stack, "CustomMagazine", customMag); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/MarlinItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/MarlinItem.java index 8a9f20b41..cbcb847f9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/MarlinItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/MarlinItem.java @@ -54,19 +54,19 @@ public class MarlinItem extends GunItem implements GeoItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.shift")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 1 && NBTTool.getOrCreateTag(stack).getDouble("prepare") > 0) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 1 && NBTTool.getTag(stack).getDouble("prepare") > 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.prepare")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 0 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 0 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.iterativeload")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 1 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 1 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.iterativeload2")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 3) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 3) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.finish")); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Mk14Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Mk14Item.java index 3b309571f..af2b4c123 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Mk14Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Mk14Item.java @@ -56,7 +56,7 @@ public class Mk14Item extends GunItem implements GeoItem { boolean drum = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE) == 2; boolean grip = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 1 || GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 2; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m14.reload_empty_drum_grip")); @@ -72,7 +72,7 @@ public class Mk14Item extends GunItem implements GeoItem { } } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m14.reload_normal_drum_grip")); @@ -155,7 +155,7 @@ public class Mk14Item extends GunItem implements GeoItem { default -> GunsTool.getGunDoubleTag(stack, "CustomZoom", 0); }; - NBTTool.getOrCreateTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); + NBTTool.getTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); GunsTool.setGunDoubleTag(stack, "CustomZoom", customZoom); GunsTool.setGunIntTag(stack, "CustomMagazine", customMag); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Qbz95Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Qbz95Item.java index b1bc52ca6..703922732 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Qbz95Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Qbz95Item.java @@ -57,7 +57,7 @@ public class Qbz95Item extends GunItem implements GeoItem { boolean drum = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE) == 2; boolean grip = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 1 || GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 2; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.qbz95.reload_empty_drum_grip")); @@ -73,7 +73,7 @@ public class Qbz95Item extends GunItem implements GeoItem { } } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { if (drum) { if (grip) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.qbz95.reload_normal_drum_grip")); @@ -147,7 +147,7 @@ public class Qbz95Item extends GunItem implements GeoItem { int stockType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.STOCK); if (magType == 1) { - CompoundTag tag = NBTTool.getOrCreateTag(stack).getCompound("Attachments"); + CompoundTag tag = NBTTool.getTag(stack).getCompound("Attachments"); tag.putInt("Magazine", 2); } @@ -159,7 +159,7 @@ public class Qbz95Item extends GunItem implements GeoItem { default -> GunsTool.getGunDoubleTag(stack, "CustomZoom", 0); }; - NBTTool.getOrCreateTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); + NBTTool.getTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); GunsTool.setGunDoubleTag(stack, "CustomZoom", customZoom); GunsTool.setGunIntTag(stack, "CustomMagazine", customMag); } 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 43d67bbbf..42dd96583 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 @@ -58,11 +58,11 @@ public class SksItem extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sks.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sks.reload_normal")); } @@ -97,8 +97,8 @@ public class SksItem extends GunItem implements GeoItem { @Override @ParametersAreNonnullByDefault public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) { - if (NBTTool.getOrCreateTag(stack).getBoolean("draw")) { - NBTTool.getOrCreateTag(stack).putBoolean("draw", false); + if (NBTTool.getTag(stack).getBoolean("draw")) { + NBTTool.getTag(stack).putBoolean("draw", false); if (GunsTool.getGunIntTag(stack, "Ammo", 0) == 0) { GunsTool.setGunBooleanTag(stack, "HoldOpen", true); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/Aa12Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/Aa12Item.java index 04c1665ec..6cf350e99 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/Aa12Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/Aa12Item.java @@ -59,11 +59,11 @@ public class Aa12Item extends GunItem implements GeoItem { if (this.animationProcedure.equals("empty")) { - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.reload_normal")); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/HomemadeShotgunItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/HomemadeShotgunItem.java index 40bddc7ef..661323261 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/HomemadeShotgunItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/HomemadeShotgunItem.java @@ -59,11 +59,11 @@ public class HomemadeShotgunItem extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ab.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ab.reload_normal")); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/M870Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/M870Item.java index 343dbefbb..e6cc13b60 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/M870Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/M870Item.java @@ -58,23 +58,23 @@ public class M870Item extends GunItem implements GeoItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.shift")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 1 && NBTTool.getOrCreateTag(stack).getDouble("prepare_load") > 0) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 1 && NBTTool.getTag(stack).getDouble("prepare_load") > 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.preparealt")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 1 && NBTTool.getOrCreateTag(stack).getDouble("prepare") > 0) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 1 && NBTTool.getTag(stack).getDouble("prepare") > 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.prepare")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 0 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 0 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.iterativeload")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 1 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 1 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.iterativeload2")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 3) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 3) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.finish")); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java index 8affafef5..a15969303 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java @@ -53,7 +53,7 @@ public class VectorItem extends GunItem implements GeoItem { boolean drum = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE) == 2; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { if (drum) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.vec.reload_empty_drum")); } else { @@ -61,7 +61,7 @@ public class VectorItem extends GunItem implements GeoItem { } } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { if (drum) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.vec.reload_normal_drum")); } else { @@ -127,7 +127,7 @@ public class VectorItem extends GunItem implements GeoItem { }; if (scopeType == 3) { - CompoundTag tag = NBTTool.getOrCreateTag(stack).getCompound("Attachments"); + CompoundTag tag = NBTTool.getTag(stack).getCompound("Attachments"); tag.putInt("Scope", 0); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java index c13b75893..a3c5330bf 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java @@ -55,7 +55,7 @@ public class HuntingRifleItem extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.hunting_rifle.reload")); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/K98Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/K98Item.java index 3a92dcaf8..4ac46eb6c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/K98Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/K98Item.java @@ -54,23 +54,23 @@ public class K98Item extends GunItem implements GeoItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.shift")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 1 && NBTTool.getOrCreateTag(stack).getDouble("prepare") > 0) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 1 && NBTTool.getTag(stack).getDouble("prepare") > 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.prepare")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 0 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 0 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.iterativeload")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 1 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 1 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.iterativeload2")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 3) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 3) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.finish")); } @@ -85,10 +85,10 @@ public class K98Item extends GunItem implements GeoItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) - && NBTTool.getOrCreateTag(stack).getInt("reload_stage") != 1 - && NBTTool.getOrCreateTag(stack).getInt("reload_stage") != 2 - && NBTTool.getOrCreateTag(stack).getInt("reload_stage") != 3 + && !(NBTTool.getTag(stack).getBoolean("is_empty_reloading")) + && NBTTool.getTag(stack).getInt("reload_stage") != 1 + && NBTTool.getTag(stack).getInt("reload_stage") != 2 + && NBTTool.getTag(stack).getInt("reload_stage") != 3 && ClientEventHandler.drawTime < 0.01 && !GunsTool.getGunBooleanTag(stack, "Reloading")) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED) && GunsTool.getGunIntTag(stack, "BoltActionTick") == 0) { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/M98bItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/M98bItem.java index 5296d8011..27b98025d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/M98bItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/M98bItem.java @@ -54,11 +54,11 @@ public class M98bItem extends GunItem implements GeoItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m98b.shift")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m98b.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m98b.reload_normal")); } @@ -73,7 +73,7 @@ public class M98bItem extends GunItem implements GeoItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading") || NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { + && !(NBTTool.getTag(stack).getBoolean("is_normal_reloading") || NBTTool.getTag(stack).getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED) && GunsTool.getGunIntTag(stack, "BoltActionTick") == 0) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m98b.run_fast")); } else { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/MosinNagantItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/MosinNagantItem.java index bfc2538e1..5827338b1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/MosinNagantItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/MosinNagantItem.java @@ -54,23 +54,23 @@ public class MosinNagantItem extends GunItem implements GeoItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.mosin.shift")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 1 && GunsTool.getGunIntTag(stack, "Ammo", 0) == 0) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 1 && GunsTool.getGunIntTag(stack, "Ammo", 0) == 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.mosin.prepare_empty")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 1 && GunsTool.getGunIntTag(stack, "Ammo", 0) > 0) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 1 && GunsTool.getGunIntTag(stack, "Ammo", 0) > 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.mosin.prepare")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 0 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 0 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.mosin.iterativeload")); } - if (NBTTool.getOrCreateTag(stack).getDouble("load_index") == 1 && NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 2) { + if (NBTTool.getTag(stack).getDouble("load_index") == 1 && NBTTool.getTag(stack).getInt("reload_stage") == 2) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.mosin.iterativeload2")); } - if (NBTTool.getOrCreateTag(stack).getInt("reload_stage") == 3) { + if (NBTTool.getTag(stack).getInt("reload_stage") == 3) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.mosin.finish")); } @@ -85,10 +85,10 @@ public class MosinNagantItem extends GunItem implements GeoItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) - && NBTTool.getOrCreateTag(stack).getInt("reload_stage") != 1 - && NBTTool.getOrCreateTag(stack).getInt("reload_stage") != 2 - && NBTTool.getOrCreateTag(stack).getInt("reload_stage") != 3 + && !(NBTTool.getTag(stack).getBoolean("is_empty_reloading")) + && NBTTool.getTag(stack).getInt("reload_stage") != 1 + && NBTTool.getTag(stack).getInt("reload_stage") != 2 + && NBTTool.getTag(stack).getInt("reload_stage") != 3 && ClientEventHandler.drawTime < 0.01 && !GunsTool.getGunBooleanTag(stack, "Reloading")) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED) && GunsTool.getGunIntTag(stack, "BoltActionTick") == 0) { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java index ea17fc385..a46c13256 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java @@ -93,11 +93,11 @@ public class SentinelItem extends GunItem implements GeoItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.shift")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.reload_normal")); } @@ -116,7 +116,7 @@ public class SentinelItem extends GunItem implements GeoItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading") || NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) + && !(NBTTool.getTag(stack).getBoolean("is_normal_reloading") || NBTTool.getTag(stack).getBoolean("is_empty_reloading")) && !GunsTool.getGunBooleanTag(stack, "Charging") && ClientEventHandler.drawTime < 0.01) { if (player.hasEffect(MobEffects.MOVEMENT_SPEED) && GunsTool.getGunIntTag(stack, "BoltActionTick") == 0) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.sentinel.run_fast")); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SvdItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SvdItem.java index adf66d971..334ee56eb 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SvdItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SvdItem.java @@ -53,11 +53,11 @@ public class SvdItem extends GunItem implements GeoItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.svd.reload_empty")); } - if (NBTTool.getOrCreateTag(stack).getBoolean("is_normal_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_normal_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.svd.reload_normal")); } @@ -130,7 +130,7 @@ public class SvdItem extends GunItem implements GeoItem { default -> GunsTool.getGunDoubleTag(stack, "CustomZoom", 0); }; - NBTTool.getOrCreateTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); + NBTTool.getTag(stack).putBoolean("CanAdjustZoomFov", scopeType == 3); GunsTool.setGunDoubleTag(stack, "CustomZoom", customZoom); GunsTool.setGunIntTag(stack, "CustomMagazine", customMag); } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/special/TaserItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/special/TaserItem.java index 4cf3e3375..c1abc5be2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/special/TaserItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/special/TaserItem.java @@ -97,7 +97,7 @@ public class TaserItem extends GunItem implements GeoItem, SpecialFireWeapon { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - if (NBTTool.getOrCreateTag(stack).getBoolean("is_empty_reloading")) { + if (NBTTool.getTag(stack).getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.taser.reload")); } @@ -274,6 +274,6 @@ public class TaserItem extends GunItem implements GeoItem, SpecialFireWeapon { GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Ammo", 0) - 1); energyStorage.extractEnergy(400 + 100 * perkLevel, false); - NBTTool.getOrCreateTag(stack).putBoolean("shoot", true); + NBTTool.getTag(stack).putBoolean("shoot", 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 f11dcc335..5462881ee 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/ShootMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/ShootMessage.java @@ -39,7 +39,7 @@ public record ShootMessage(double spread) implements CustomPacketPayload { } if (stack.is(ModTags.Items.REVOLVER)) { - NBTTool.getOrCreateTag(stack).putBoolean("canImmediatelyShoot", false); + NBTTool.getTag(stack).putBoolean("canImmediatelyShoot", false); } // 判断是否为栓动武器(BoltActionTime > 0),并在开火后给一个需要上膛的状态 @@ -49,7 +49,7 @@ public record ShootMessage(double spread) implements CustomPacketPayload { GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Ammo", 0) - 1); - NBTTool.getOrCreateTag(stack).putDouble("empty", 1); + NBTTool.getTag(stack).putDouble("empty", 1); // if (stack.getItem() == ModItems.M_60.get() && GunsTool.getGunIntTag(stack, "Ammo", 0) <= 5) { // GunsTool.setGunBooleanTag(stack, "HideBulletChain", true); diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java index efe120431..fafe15d8b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java @@ -24,6 +24,8 @@ import java.io.InputStreamReader; import java.util.HashMap; import java.util.UUID; +import static com.atsuishio.superbwarfare.tools.NBTTool.saveTag; + @EventBusSubscriber(modid = ModUtils.MODID) public class GunsTool { @@ -58,20 +60,22 @@ public class GunsTool { public static void initGun(Level level, ItemStack stack, String location) { if (level.getServer() == null) return; gunsData.get(location).forEach((k, v) -> { - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); CompoundTag data = tag.getCompound("GunData"); data.putDouble(k, v); tag.put("GunData", data); + saveTag(stack, tag); }); } public static void initCreativeGun(ItemStack stack, String location) { if (gunsData != null && gunsData.get(location) != null) { gunsData.get(location).forEach((k, v) -> { - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); CompoundTag data = tag.getCompound("GunData"); data.putDouble(k, v); tag.put("GunData", data); + saveTag(stack, tag); }); GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + GunsTool.getGunIntTag(stack, "CustomMagazine", 0)); @@ -80,10 +84,11 @@ public class GunsTool { public static void generateAndSetUUID(ItemStack stack) { UUID uuid = UUID.randomUUID(); - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); var data = tag.getCompound("GunData"); data.putUUID("UUID", uuid); tag.put("GunData", data); + saveTag(stack, tag); } @SubscribeEvent @@ -103,7 +108,7 @@ public class GunsTool { } public static void reload(Player player, ItemStack stack, AmmoType type, boolean extraOne) { - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); if (!(stack.getItem() instanceof GunItem)) return; int mag = GunsTool.getGunIntTag(stack, "Magazine", 0) + GunsTool.getGunIntTag(stack, "CustomMagazine", 0); @@ -130,48 +135,52 @@ public class GunsTool { GunsTool.setGunIntTag(stack, "Ammo", needToAdd); tag.putBoolean("is_normal_reloading", false); tag.putBoolean("is_empty_reloading", false); + saveTag(stack, tag); } /* PerkData */ public static void setPerkIntTag(ItemStack stack, String name, int num) { - var rootTag = NBTTool.getOrCreateTag(stack); + var rootTag = NBTTool.getTag(stack); CompoundTag tag = rootTag.getCompound("PerkData"); tag.putInt(name, num); rootTag.put("PerkData", tag); + saveTag(stack, rootTag); } public static int getPerkIntTag(ItemStack stack, String name) { - CompoundTag tag = NBTTool.getOrCreateTag(stack).getCompound("PerkData"); + CompoundTag tag = NBTTool.getTag(stack).getCompound("PerkData"); return tag.getInt(name); } public static void setPerkDoubleTag(ItemStack stack, String name, double num) { - var rootTag = NBTTool.getOrCreateTag(stack); + var rootTag = NBTTool.getTag(stack); CompoundTag tag = rootTag.getCompound("PerkData"); tag.putDouble(name, num); rootTag.put("PerkData", tag); + saveTag(stack, rootTag); } public static double getPerkDoubleTag(ItemStack stack, String name) { - CompoundTag tag = NBTTool.getOrCreateTag(stack).getCompound("PerkData"); + CompoundTag tag = NBTTool.getTag(stack).getCompound("PerkData"); return tag.getDouble(name); } public static void setPerkBooleanTag(ItemStack stack, String name, boolean flag) { - var rootTag = NBTTool.getOrCreateTag(stack); + var rootTag = NBTTool.getTag(stack); CompoundTag tag = rootTag.getCompound("PerkData"); tag.putBoolean(name, flag); rootTag.put("PerkData", tag); + saveTag(stack, rootTag); } public static boolean getPerkBooleanTag(ItemStack stack, String name) { - CompoundTag tag = NBTTool.getOrCreateTag(stack).getCompound("PerkData"); + CompoundTag tag = NBTTool.getTag(stack).getCompound("PerkData"); return tag.getBoolean(name); } /* Attachments */ public static int getAttachmentType(ItemStack stack, AttachmentType type) { - CompoundTag tag = NBTTool.getOrCreateTag(stack).getCompound("Attachments"); + CompoundTag tag = NBTTool.getTag(stack).getCompound("Attachments"); return tag.getInt(type.getName()); } @@ -195,15 +204,15 @@ public class GunsTool { /* GunData */ public static CompoundTag getGunData(ItemStack stack) { - CompoundTag tag = NBTTool.getOrCreateTag(stack); - return tag.getCompound("GunData"); + return NBTTool.getTag(stack).getCompound("GunData"); } public static void setGunIntTag(ItemStack stack, String name, int num) { - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); var data = tag.getCompound("GunData"); data.putInt(name, num); tag.put("GunData", data); + saveTag(stack, tag); } public static int getGunIntTag(ItemStack stack, String name) { @@ -211,17 +220,18 @@ public class GunsTool { } public static int getGunIntTag(ItemStack stack, String name, int defaultValue) { - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); var data = tag.getCompound("GunData"); if (!data.contains(name)) return defaultValue; return data.getInt(name); } public static void setGunDoubleTag(ItemStack stack, String name, double num) { - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); var data = tag.getCompound("GunData"); data.putDouble(name, num); tag.put("GunData", data); + saveTag(stack, tag); } public static double getGunDoubleTag(ItemStack stack, String name) { @@ -229,17 +239,18 @@ public class GunsTool { } public static double getGunDoubleTag(ItemStack stack, String name, double defaultValue) { - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); var data = tag.getCompound("GunData"); if (!data.contains(name)) return defaultValue; return data.getDouble(name); } public static void setGunBooleanTag(ItemStack stack, String name, boolean flag) { - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); var data = tag.getCompound("GunData"); data.putBoolean(name, flag); tag.put("GunData", data); + saveTag(stack, tag); } public static boolean getGunBooleanTag(ItemStack stack, String name) { @@ -247,7 +258,7 @@ public class GunsTool { } public static boolean getGunBooleanTag(ItemStack stack, String name, boolean defaultValue) { - CompoundTag tag = NBTTool.getOrCreateTag(stack); + CompoundTag tag = NBTTool.getTag(stack); var data = tag.getCompound("GunData"); if (!data.contains(name)) return defaultValue; return data.getBoolean(name); diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/NBTTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/NBTTool.java index 8a9955ef8..5bdf97a6b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/NBTTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/NBTTool.java @@ -1,63 +1,73 @@ package com.atsuishio.superbwarfare.tools; -import com.atsuishio.superbwarfare.component.ModDataComponents; +import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.CustomData; // From Botania -// TODO 修改为使用DataComponents.CUSTOM_DATA public final class NBTTool { - public static boolean verifyExistence(ItemStack stack, String tag) { - var data = stack.get(ModDataComponents.GUN_DATA); - return !stack.isEmpty() && data != null && data.contains(tag); + public static boolean verifyExistence(ItemStack stack, String key) { + var data = stack.get(DataComponents.CUSTOM_DATA); + return !stack.isEmpty() && data != null && data.contains(key); } - public static CompoundTag getOrCreateTag(ItemStack stack) { - var data = stack.get(ModDataComponents.GUN_DATA); - if (data != null) return data; + public static CompoundTag getTag(ItemStack stack) { + var data = stack.get(DataComponents.CUSTOM_DATA); + if (data != null) return data.copyTag(); - var newTag = new CompoundTag(); - stack.set(ModDataComponents.GUN_DATA, newTag); - return newTag; + return new CompoundTag(); } - public static void setBoolean(ItemStack stack, String tag, boolean b) { - getOrCreateTag(stack).putBoolean(tag, b); + public static void setBoolean(ItemStack stack, String key, boolean b) { + var tag = getTag(stack); + tag.putBoolean(key, b); + saveTag(stack, tag); } - public static boolean getBoolean(ItemStack stack, String tag, boolean defaultExpected) { - return verifyExistence(stack, tag) ? getOrCreateTag(stack).getBoolean(tag) : defaultExpected; + public static boolean getBoolean(ItemStack stack, String key, boolean defaultExpected) { + return verifyExistence(stack, key) ? getTag(stack).getBoolean(key) : defaultExpected; } - public static void setFloat(ItemStack stack, String tag, float f) { - getOrCreateTag(stack).putFloat(tag, f); + public static void setFloat(ItemStack stack, String key, float f) { + var tag = getTag(stack); + tag.putFloat(key, f); + saveTag(stack, tag); } - public static float getFloat(ItemStack stack, String tag, float f) { - return verifyExistence(stack, tag) ? getOrCreateTag(stack).getFloat(tag) : f; + public static float getFloat(ItemStack stack, String key, float f) { + return verifyExistence(stack, key) ? getTag(stack).getFloat(key) : f; } - public static void setInt(ItemStack stack, String tag, int num) { - getOrCreateTag(stack).putInt(tag, num); + public static void setInt(ItemStack stack, String key, int num) { + var tag = getTag(stack); + tag.putInt(key, num); + saveTag(stack, tag); } - public static int getInt(ItemStack stack, String tag, int num) { - return verifyExistence(stack, tag) ? getOrCreateTag(stack).getInt(tag) : num; + public static int getInt(ItemStack stack, String key, int num) { + return verifyExistence(stack, key) ? getTag(stack).getInt(key) : num; } - public static void setLong(ItemStack stack, String tag, long num) { - getOrCreateTag(stack).putLong(tag, num); + public static void setLong(ItemStack stack, String key, long num) { + var tag = getTag(stack); + tag.putLong(key, num); + saveTag(stack, tag); } - public static long getLong(ItemStack stack, String tag, long num) { - return verifyExistence(stack, tag) ? getOrCreateTag(stack).getLong(tag) : num; + public static long getLong(ItemStack stack, String key, long num) { + return verifyExistence(stack, key) ? getTag(stack).getLong(key) : num; } - public static void setDouble(ItemStack stack, String tag, double num) { - getOrCreateTag(stack).putDouble(tag, num); + public static void setDouble(ItemStack stack, String key, double num) { + getTag(stack).putDouble(key, num); } - public static double getDouble(ItemStack stack, String tag, double num) { - return verifyExistence(stack, tag) ? getOrCreateTag(stack).getDouble(tag) : num; + public static double getDouble(ItemStack stack, String key, double num) { + return verifyExistence(stack, key) ? getTag(stack).getDouble(key) : num; + } + + public static void saveTag(ItemStack stack, CompoundTag tag) { + stack.set(DataComponents.CUSTOM_DATA, CustomData.of(tag)); } } \ No newline at end of file