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 14e24942e..2f344d899 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 @@ -74,7 +74,6 @@ public class AK12ItemModel extends GeoModel { double fr = ClientEventHandler.fireRot; var data = GunData.from(stack); - var tag = data.tag(); int type = data.attachment.get(AttachmentType.SCOPE); float posY = switch (type) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java index 2c9a1d3d3..d56c9455e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java @@ -7,7 +7,6 @@ import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.handgun.Glock17Item; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -104,7 +103,6 @@ public class Glock17ItemModel extends GeoModel { float numP = (float) (1 - 0.68 * zt); var data = GunData.from(stack); - var tag = data.tag(); if (data.reload.time() > 0) { main.setRotX(numR * main.getRotX()); @@ -123,7 +121,7 @@ public class Glock17ItemModel extends GeoModel { GeoBone shell = getAnimationProcessor().getBone("shell"); GeoBone barrel = getAnimationProcessor().getBone("guan"); - if (GunsTool.getGunBooleanTag(tag, "HoldOpen")) { + if (data.holdOpen.get()) { slide.setPosZ(1.5f); barrel.setRotX(4 * Mth.DEG_TO_RAD); bullet.setScaleX(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java index 35ef18480..102f9d882 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java @@ -7,7 +7,6 @@ import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.handgun.Glock18Item; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -48,7 +47,6 @@ public class Glock18ItemModel extends GeoModel { if (!stack.is(ModTags.Items.GUN)) return; var data = GunData.from(stack); - var tag = data.tag(); int mode = data.fireMode.get(); if (mode == 0) { switch_.setRotX(35 * Mth.DEG_TO_RAD); @@ -132,7 +130,7 @@ public class Glock18ItemModel extends GeoModel { GeoBone shell = getAnimationProcessor().getBone("shell"); GeoBone barrel = getAnimationProcessor().getBone("guan"); - if (GunsTool.getGunBooleanTag(tag, "HoldOpen")) { + if (data.holdOpen.get()) { slide.setPosZ(1.5f); barrel.setRotX(4 * Mth.DEG_TO_RAD); bullet.setScaleX(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java index 6e4e414cc..01b86addf 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java @@ -7,7 +7,6 @@ import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.handgun.M1911Item; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -106,7 +105,6 @@ public class M1911ItemModel extends GeoModel { float numP = (float) (1 - 0.68 * zt); var data = GunData.from(stack); - var tag = data.tag(); if (data.reload.time() > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); @@ -123,7 +121,7 @@ public class M1911ItemModel extends GeoModel { AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f); GeoBone shell = getAnimationProcessor().getBone("shell"); - if (GunsTool.getGunBooleanTag(tag, "HoldOpen")) { + if (data.holdOpen.get()) { slide.setPosZ(1.5f); bullet.setScaleX(0); bullet.setScaleY(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M60ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M60ItemModel.java index 133690e25..8dafb3426 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M60ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M60ItemModel.java @@ -7,7 +7,6 @@ import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.machinegun.M60Item; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -60,9 +59,8 @@ public class M60ItemModel extends GeoModel { } var data = GunData.from(stack); - var tag = data.tag(); int ammo = data.ammo.get(); - boolean flag = GunsTool.getGunBooleanTag(tag, "HideBulletChain"); + boolean flag = data.hideBulletChain.get(); if (ammo < 5 && flag) { b5.setScaleX(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mk14ItemModel.java index 1477c3721..353d2b556 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 @@ -166,7 +166,7 @@ public class Mk14ItemModel extends GeoModel { GeoBone shell = getAnimationProcessor().getBone("shell"); - if (data.data().getBoolean("HoldOpen")) { + if (data.holdOpen.get()) { action.setPosZ(2.5f); shell.setScaleX(0); shell.setScaleY(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java index 394eb5611..bc4eeeb9f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java @@ -7,7 +7,6 @@ import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.handgun.Mp443Item; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -103,7 +102,6 @@ public class Mp443ItemModel extends GeoModel { float numP = (float) (1 - 0.68 * zt); var data = GunData.from(stack); - var tag = data.tag(); if (data.reload.time() > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); @@ -121,7 +119,7 @@ public class Mp443ItemModel extends GeoModel { GeoBone shell = getAnimationProcessor().getBone("shell"); - if (GunsTool.getGunBooleanTag(tag, "HoldOpen")) { + if (data.holdOpen.get()) { slide.setPosZ(1.5f); bullet.setScaleX(0); bullet.setScaleY(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Qbz95ItemModel.java index c9b686d91..f465eb98c 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 @@ -8,7 +8,6 @@ import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.data.value.AttachmentType; import com.atsuishio.superbwarfare.item.gun.rifle.Qbz95Item; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -85,7 +84,6 @@ public class Qbz95ItemModel extends GeoModel { double fr = ClientEventHandler.fireRot; var data = GunData.from(stack); - var tag = data.tag(); int type = data.attachment.get(AttachmentType.SCOPE); float posYAlt = switch (type) { @@ -169,7 +167,7 @@ public class Qbz95ItemModel extends GeoModel { l.setRotX(rotXBipod * Mth.DEG_TO_RAD); r.setRotX(rotXBipod * Mth.DEG_TO_RAD); - if (GunsTool.getGunBooleanTag(tag, "HoldOpen")) { + if (data.holdOpen.get()) { bolt.setPosZ(5f); } 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 dcca391ab..8a34e3d3a 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 @@ -71,8 +71,6 @@ public class RpkItemModel extends GeoModel { double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; - var data = GunData.from(stack); - var tag = data.tag(); int type = GunData.from(stack).attachment.get(AttachmentType.SCOPE); float posYAlt = switch (type) { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SecondaryCataclysmModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SecondaryCataclysmModel.java index 71f2d8b9f..1013ff773 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SecondaryCataclysmModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SecondaryCataclysmModel.java @@ -100,7 +100,6 @@ public class SecondaryCataclysmModel extends GeoModel { float numP = (float) (1 - 0.68 * zt); var data = GunData.from(stack); - var tag = data.tag(); if (data.reload.time() > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); 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 53960e20e..160bbe992 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 @@ -7,7 +7,6 @@ import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.rifle.SksItem; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -69,7 +68,6 @@ public class SksItemModel extends GeoModel { gun.setRotZ((float) (0.05f * zpz)); var data = GunData.from(stack); - var tag = data.tag(); GeoBone shen = getAnimationProcessor().getBone("shen"); @@ -110,7 +108,7 @@ public class SksItemModel extends GeoModel { AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1.2f); GeoBone shell = getAnimationProcessor().getBone("shell"); - if (GunsTool.getGunBooleanTag(tag, "HoldOpen")) { + if (data.holdOpen.get()) { shell.setScaleX(0); shell.setScaleY(0); shell.setScaleZ(0); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/SvdItemModel.java index 64fba7e1b..319919043 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 @@ -8,7 +8,6 @@ import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.item.gun.data.value.AttachmentType; import com.atsuishio.superbwarfare.item.gun.sniper.SvdItem; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -112,7 +111,6 @@ public class SvdItemModel extends GeoModel { cross3.setScaleY((float) (1f + (0.1 * zp))); var data = GunData.from(stack); - var tag = data.tag(); GeoBone shen; if (zt < 0.5) { @@ -148,7 +146,7 @@ public class SvdItemModel extends GeoModel { bolt.setPosZ(4.5f * (float) fp); - if (GunsTool.getGunBooleanTag(tag, "HoldOpen")) { + if (data.holdOpen.get()) { bolt.setPosZ(3.5f); } 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 23ab7b653..6b410c7bf 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 @@ -56,7 +56,6 @@ public class VectorItemModel extends GeoModel { if (!stack.is(ModTags.Items.GUN)) return; var data = GunData.from(stack); - var tag = data.tag(); int mode = data.fireMode.get(); if (mode == 0) { kmj.setRotX(-120 * Mth.DEG_TO_RAD); 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 84bd5e552..9d1f0bd67 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 @@ -81,7 +81,6 @@ public class RpkItemRenderer extends GeoItemRenderer { ItemStack itemStack = player.getMainHandItem(); if (!itemStack.is(ModTags.Items.GUN)) return; var data = GunData.from(itemStack); - var tag = GunData.from(itemStack).tag(); if (name.equals("Cross1")) { bone.setHidden(ClientEventHandler.zoomPos < 0.7 || data.attachment.get(AttachmentType.SCOPE) != 1); diff --git a/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java index 3b9cec5f2..b332fe904 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java @@ -390,9 +390,9 @@ public class LivingEventHandler { if (newStack.getItem() instanceof GunItem) { var newData = GunData.from(newStack); + newData.draw.set(true); newTag = newData.tag(); - newTag.putBoolean("draw", true); if (newData.defaultActionTime() > 0) { newData.bolt.actionTimer.reset(); } diff --git a/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java index d8433bc63..849adf464 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java @@ -39,10 +39,7 @@ public class PlayerEventHandler { for (ItemStack stack : player.getInventory().items) { if (stack.getItem() instanceof GunItem) { var data = GunData.from(stack); - tag = data.tag(); - - tag.putBoolean("draw", true); - + data.draw.set(true); data.save(); } } @@ -60,10 +57,7 @@ public class PlayerEventHandler { for (ItemStack stack : player.getInventory().items) { if (stack.is(ModTags.Items.GUN)) { var data = GunData.from(stack); - final var tag = data.tag(); - - tag.putBoolean("draw", true); - + data.draw.set(true); data.save(); } } @@ -102,7 +96,6 @@ public class PlayerEventHandler { for (ItemStack stack : player.getInventory().items) { if (stack.is(ModTags.Items.GUN)) { var data = GunData.from(stack); - var tag = data.tag(); if (!InventoryTool.hasCreativeAmmoBox(player)) { var cap = player.getData(ModAttachments.PLAYER_VARIABLE); @@ -142,7 +135,7 @@ public class PlayerEventHandler { } else { data.ammo.set(data.magazine()); } - GunsTool.setGunBooleanTag(tag, "HoldOpen", false); + data.holdOpen.set(false); data.save(); } } 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 23a93ce48..4916d2b2f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunEvents.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunEvents.java @@ -14,8 +14,7 @@ public class GunEvents { var stack = event.getItemEntity().getItem(); if (stack.is(ModTags.Items.GUN)) { var data = GunData.from(stack); - final var tag = data.tag(); - tag.putBoolean("draw", true); + data.draw.set(true); data.save(); } } 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 0cf5dbccc..703c83fbb 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java @@ -65,7 +65,6 @@ public abstract class GunItem extends Item implements CustomRendererItem { ) return; var data = GunData.from(stack); - var tag = data.tag(); if (!data.initialized()) { data.initialize(); @@ -73,7 +72,7 @@ public abstract class GunItem extends Item implements CustomRendererItem { data.ammo.set(data.magazine()); } } - tag.putBoolean("draw", false); + data.draw.set(false); handleGunPerks(data); var hasBulletInBarrel = gunItem.hasBulletInBarrel(stack); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/data/GunData.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/data/GunData.java index 415fa70ca..333ae22a5 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/data/GunData.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/data/GunData.java @@ -64,6 +64,9 @@ public class GunData { forceStop = new BooleanValue(data, "ForceStop"); loadIndex = new IntValue(data, "LoadIndex"); maxAmmo = new IntValue(data, "MaxAmmo"); + holdOpen = new BooleanValue(data, "HoldOpen"); + hideBulletChain = new BooleanValue(data, "HideBulletChain"); + draw = new BooleanValue(data, "Draw"); } private CompoundTag getOrPut(String name) { @@ -301,6 +304,9 @@ public class GunData { public final IntValue loadIndex; public final IntValue maxAmmo; + public final BooleanValue holdOpen; + public final BooleanValue hideBulletChain; + public final BooleanValue draw; // 其他子级属性 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 2415a5588..746cf96d1 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 @@ -144,6 +144,6 @@ public class Glock17Item extends GunItem implements GeoItem { public void addReloadTimeBehavior(Map> behaviors) { super.addReloadTimeBehavior(behaviors); - behaviors.put(9, data -> data.data().remove("HoldOpen")); + behaviors.put(9, data -> data.holdOpen.set(false)); } } \ No newline at end of file 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 6cc1d3279..ce4872c3d 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 @@ -152,6 +152,6 @@ public class Glock18Item extends GunItem implements GeoItem { public void addReloadTimeBehavior(Map> behaviors) { super.addReloadTimeBehavior(behaviors); - behaviors.put(9, data -> data.data().remove("HoldOpen")); + behaviors.put(9, data -> data.holdOpen.set(false)); } } \ No newline at end of file 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 36e8f7236..dfaa83bf7 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 @@ -147,6 +147,6 @@ public class M1911Item extends GunItem implements GeoItem { public void addReloadTimeBehavior(Map> behaviors) { super.addReloadTimeBehavior(behaviors); - behaviors.put(9, data -> data.data().remove("HoldOpen")); + behaviors.put(9, data -> data.holdOpen.set(false)); } } \ No newline at end of file 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 afe2dd390..0b13440a9 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 @@ -144,6 +144,6 @@ public class Mp443Item extends GunItem implements GeoItem { public void addReloadTimeBehavior(Map> behaviors) { super.addReloadTimeBehavior(behaviors); - behaviors.put(9, data -> data.data().remove("HoldOpen")); + behaviors.put(9, data -> data.holdOpen.set(false)); } } \ No newline at end of file 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 8e8715e29..4991a9625 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 @@ -133,9 +133,8 @@ public class RpgItem extends GunItem implements GeoItem, SpecialFireWeapon { @ParametersAreNonnullByDefault public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { var data = GunData.from(stack); - final var tag = data.tag(); - if (tag.getBoolean("draw")) { - tag.putBoolean("draw", false); + if (data.draw.get()) { + data.draw.set(false); if (data.ammo.get() == 0) { data.isEmpty.set(true); 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 aabe24f3d..6b09497ad 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 @@ -10,7 +10,6 @@ import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.perk.Perk; import com.atsuishio.superbwarfare.perk.PerkHelper; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.resources.ResourceLocation; @@ -109,12 +108,11 @@ public class M60Item extends GunItem implements GeoItem { @ParametersAreNonnullByDefault public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) { var data = GunData.from(stack); - final var tag = data.tag(); - if (tag.getBoolean("draw")) { - tag.putBoolean("draw", false); + if (data.draw.get()) { + data.draw.set(false); if (data.ammo.get() <= 5) { - GunsTool.setGunBooleanTag(tag, "HideBulletChain", true); + data.hideBulletChain.set(true); } data.save(); } @@ -165,6 +163,6 @@ public class M60Item extends GunItem implements GeoItem { public void addReloadTimeBehavior(Map> behaviors) { super.addReloadTimeBehavior(behaviors); - behaviors.put(55, data -> data.data().remove("HideBulletChain")); + behaviors.put(55, data -> data.hideBulletChain.reset()); } } \ No newline at end of file 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 e53430556..1eed641ae 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 @@ -244,6 +244,6 @@ public class Mk14Item extends GunItem implements GeoItem { public void addReloadTimeBehavior(Map> behaviors) { super.addReloadTimeBehavior(behaviors); - behaviors.put(18, data -> data.data().remove("HoldOpen")); + behaviors.put(18, data -> data.holdOpen.set(false)); } } \ No newline at end of file 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 667156c20..724310446 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 @@ -252,6 +252,6 @@ public class Qbz95Item extends GunItem implements GeoItem { public void addReloadTimeBehavior(Map> behaviors) { super.addReloadTimeBehavior(behaviors); - behaviors.put(14, data -> data.data().remove("HoldOpen")); + behaviors.put(14, data -> data.holdOpen.set(false)); } } \ No newline at end of file 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 c0d660354..7c274cd03 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 @@ -9,7 +9,6 @@ import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.perk.Perk; import com.atsuishio.superbwarfare.perk.PerkHelper; -import com.atsuishio.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.resources.ResourceLocation; @@ -93,12 +92,11 @@ public class SksItem extends GunItem implements GeoItem { @ParametersAreNonnullByDefault public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) { var data = GunData.from(stack); - final var tag = data.tag(); - if (tag.getBoolean("draw")) { - tag.putBoolean("draw", false); + if (data.draw.get()) { + data.draw.set(false); if (data.ammo.get() == 0) { - GunsTool.setGunBooleanTag(tag, "HoldOpen", true); + data.holdOpen.set(true); } data.save(); } @@ -149,6 +147,6 @@ public class SksItem extends GunItem implements GeoItem { public void addReloadTimeBehavior(Map> behaviors) { super.addReloadTimeBehavior(behaviors); - behaviors.put(14, data -> data.data().remove("HoldOpen")); + behaviors.put(14, data -> data.holdOpen.set(false)); } } \ No newline at end of file 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 37ff838c2..3596c043a 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 @@ -198,6 +198,6 @@ public class SvdItem extends GunItem implements GeoItem { public void addReloadTimeBehavior(Map> behaviors) { super.addReloadTimeBehavior(behaviors); - behaviors.put(17, data -> data.data().remove("HoldOpen")); + behaviors.put(17, data -> data.holdOpen.set(false)); } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/send/ShootMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/send/ShootMessage.java index 970ea2914..e83c06445 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/send/ShootMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/send/ShootMessage.java @@ -6,7 +6,6 @@ import com.atsuishio.superbwarfare.init.*; import com.atsuishio.superbwarfare.item.gun.data.GunData; import com.atsuishio.superbwarfare.perk.AmmoPerk; import com.atsuishio.superbwarfare.perk.Perk; -import com.atsuishio.superbwarfare.tools.GunsTool; import com.atsuishio.superbwarfare.tools.InventoryTool; import com.atsuishio.superbwarfare.tools.ParticleTool; import com.atsuishio.superbwarfare.tools.SoundTool; @@ -50,7 +49,7 @@ public record ShootMessage(double spread, boolean zoom) implements CustomPacketP if (data.ammo.get() > 0) { // 空仓挂机 if (data.ammo.get() == 1) { - GunsTool.setGunBooleanTag(tag, "HoldOpen", true); + data.holdOpen.set(true); } if (stack.is(ModTags.Items.REVOLVER)) { @@ -66,7 +65,7 @@ public record ShootMessage(double spread, boolean zoom) implements CustomPacketP data.isEmpty.set(true); if (stack.getItem() == ModItems.M_60.get() && data.ammo.get() <= 5) { - GunsTool.setGunBooleanTag(tag, "HideBulletChain", true); + data.hideBulletChain.set(true); } if (stack.getItem() == ModItems.HOMEMADE_SHOTGUN.get()) {