From e40f77a509550812f24752d2e388ae6314844ec5 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Sun, 25 May 2025 00:54:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86=E9=83=A8=E5=88=86tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2e07f3c482445536d45c00e6abf223465c01c841 | 4 +- .../data/superbwarfare/tags/item/handgun.json | 10 ----- .../superbwarfare/tags/item/machine_gun.json | 8 ---- .../datagen/ModItemTagProvider.java | 13 +----- .../event/ClientEventHandler.java | 14 ++++-- .../superbwarfare/event/GunEventHandler.java | 43 +++++++++++++------ .../atsuishio/superbwarfare/init/ModTags.java | 2 - 7 files changed, 43 insertions(+), 51 deletions(-) delete mode 100644 src/generated/resources/data/superbwarfare/tags/item/handgun.json delete mode 100644 src/generated/resources/data/superbwarfare/tags/item/machine_gun.json diff --git a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 index 4ab5e588b..cbc8a735c 100644 --- a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 +++ b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 @@ -1,4 +1,4 @@ -// 1.21.1 2025-05-23T16:26:24.1302748 Tags for minecraft:item mod id superbwarfare +// 1.21.1 2025-05-25T01:09:39.7999946 Tags for minecraft:item mod id superbwarfare 44a232152f5941d0435a35483b37f8ed22fd10bf data/c/tags/item/dusts.json 0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/c/tags/item/dusts/coal_coke.json 295ddf906b7133a0558d03e9a60eea18281fe430 data/c/tags/item/dusts/iron.json @@ -33,13 +33,11 @@ b2461a0f5cf318dde060f2b111a01c77234a0681 data/superbwarfare/tags/item/blueprint/ 702f9ef2b959fc0d546443968556ea7db0672b04 data/superbwarfare/tags/item/blueprint/legendary.json 3154110c8f6b5d1473d558b7d0d2f752396dff34 data/superbwarfare/tags/item/blueprint/rare.json bb51d8b21c5e9e23551a66933577241e65af2fac data/superbwarfare/tags/item/gun.json -cd469bd18f1d19893b79c9cff9970e4db7e0e484 data/superbwarfare/tags/item/handgun.json 0ab1b2a8f5433e0d1b03446a9d0d9428e9d64feb data/superbwarfare/tags/item/heavy_weapon.json 3cc00928c041f710b50eb1f7a817e0345f6f96b3 data/superbwarfare/tags/item/ingots/cemented_carbide.json a1c6460b9c956972b74d5ad5cd206e9ae3560b03 data/superbwarfare/tags/item/ingots/steel.json d39c5c787667ce78c214bc2fbd4931891ebaf936 data/superbwarfare/tags/item/launcher.json ab580f3989177c0589c43ca346db571011600187 data/superbwarfare/tags/item/launcher/grenade.json -b404c6fd99d2ca68c6738f225cb7d68ee443c10a data/superbwarfare/tags/item/machine_gun.json a53020091752016da6602ee1b8b7e08823614344 data/superbwarfare/tags/item/military_armor.json a38ce936246513bfdbf9c0b58807ae361c6edd78 data/superbwarfare/tags/item/normal_gun.json aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/item/rifle.json diff --git a/src/generated/resources/data/superbwarfare/tags/item/handgun.json b/src/generated/resources/data/superbwarfare/tags/item/handgun.json deleted file mode 100644 index 24fa6dfc7..000000000 --- a/src/generated/resources/data/superbwarfare/tags/item/handgun.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "values": [ - "superbwarfare:trachelium", - "superbwarfare:glock_17", - "superbwarfare:glock_18", - "superbwarfare:m_1911", - "superbwarfare:mp_443", - "superbwarfare:aurelia_sceptre" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/item/machine_gun.json b/src/generated/resources/data/superbwarfare/tags/item/machine_gun.json deleted file mode 100644 index e213306ac..000000000 --- a/src/generated/resources/data/superbwarfare/tags/item/machine_gun.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "values": [ - "superbwarfare:minigun", - "superbwarfare:devotion", - "superbwarfare:rpk", - "superbwarfare:m_60" - ] -} \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java index d111aea5f..ebecdad2b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java @@ -80,14 +80,6 @@ public class ModItemTagProvider extends ItemTagsProvider { this.tag(ModTags.Items.SMG).add(ModItems.VECTOR.get()); - this.tag(ModTags.Items.HANDGUN).add(ModItems.TRACHELIUM.get(), - ModItems.GLOCK_17.get(), - ModItems.GLOCK_18.get(), - ModItems.M_1911.get(), - ModItems.MP_443.get(), - ModItems.AURELIA_SCEPTRE.get() - ); - this.tag(ModTags.Items.RIFLE).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(), ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get()); @@ -98,10 +90,7 @@ public class ModItemTagProvider extends ItemTagsProvider { this.tag(ModTags.Items.SHOTGUN).add(ModItems.HOMEMADE_SHOTGUN.get(), ModItems.M_870.get(), ModItems.AA_12.get()); - this.tag(ModTags.Items.MACHINE_GUN).add(ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.RPK.get(), ModItems.M_60.get()); - - this.tag(ModTags.Items.NORMAL_GUN).add( - ModItems.HOMEMADE_SHOTGUN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.SVD.get(), ModItems.M_60.get(), ModItems.MK_14.get(), ModItems.VECTOR.get(), + this.tag(ModTags.Items.NORMAL_GUN).add(ModItems.HOMEMADE_SHOTGUN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.SVD.get(), ModItems.M_60.get(), ModItems.MK_14.get(), ModItems.VECTOR.get(), ModItems.SKS.get(), ModItems.RPK.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.DEVOTION.get(), ModItems.TRACHELIUM.get(), ModItems.M_79.get(), ModItems.HUNTING_RIFLE.get(), ModItems.NTW_20.get(), ModItems.M_98B.get(), ModItems.SENTINEL.get(), ModItems.M_870.get(), ModItems.MARLIN.get(), ModItems.GLOCK_17.get(), ModItems.RPG.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.AURELIA_SCEPTRE.get(), ModItems.QBZ_95.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get(), ModItems.MP_443.get(), ModItems.INSIDIOUS.get(), ModItems.SECONDARY_CATACLYSM.get(), diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index e81fb5933..26a8dafdd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -809,10 +809,16 @@ public class ClientEventHandler { Mod.queueClientWork((int) (1 + 1.5 * shooterHeight), () -> { if (gunItem.canEjectShell(stack)) { - if (stack.is(ModTags.Items.SHOTGUN)) { - player.playSound(ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), (float) ((2 * org.joml.Math.random() - 1) * 0.05f + 1.0f)); - } else if (stack.is(ModTags.Items.SNIPER_RIFLE) || stack.is(ModTags.Items.HEAVY_WEAPON)) { - player.playSound(ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), (float) ((2 * org.joml.Math.random() - 1) * 0.05f + 1.0f)); + var ammoType = data.ammoTypeInfo().playerAmmoType(); + if (ammoType != null) { + switch (ammoType) { + case SHOTGUN -> + player.playSound(ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), (float) ((2 * Math.random() - 1) * 0.05f + 1.0f)); + case SNIPER, HEAVY -> + player.playSound(ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), (float) ((2 * org.joml.Math.random() - 1) * 0.05f + 1.0f)); + default -> + player.playSound(ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), (float) ((2 * org.joml.Math.random() - 1) * 0.05f + 1.0f)); + } } else { player.playSound(ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), (float) ((2 * org.joml.Math.random() - 1) * 0.05f + 1.0f)); } diff --git a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java index f63c42514..a12c8da5c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java @@ -81,10 +81,16 @@ public class GunEventHandler { ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos()))); Mod.queueServerWork((int) (data.bolt.actionTimer.get() / 2 + 1.5 * shooterHeight), () -> { - if (stack.is(ModTags.Items.SHOTGUN)) { - SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); - } else if (stack.is(ModTags.Items.SNIPER_RIFLE)) { - SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1); + var ammoType = data.ammoTypeInfo().playerAmmoType(); + if (ammoType != null) { + switch (ammoType) { + case SHOTGUN -> + SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); + case SNIPER, HEAVY -> + SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1); + default -> + SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1); + } } else { SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1); } @@ -378,10 +384,16 @@ public class GunEventHandler { ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos()))); Mod.queueServerWork((int) (data.defaultPrepareEmptyTime() / 2 + 3 + 1.5 * shooterHeight), () -> { - if (stack.is(ModTags.Items.SHOTGUN)) { - SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); - } else if (stack.is(ModTags.Items.SNIPER_RIFLE) || stack.is(ModTags.Items.HEAVY_WEAPON)) { - SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1); + var ammoType = data.ammoTypeInfo().playerAmmoType(); + if (ammoType != null) { + switch (ammoType) { + case SHOTGUN -> + SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); + case SNIPER, HEAVY -> + SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1); + default -> + SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1); + } } else { SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1); } @@ -393,6 +405,7 @@ public class GunEventHandler { public static void playGunPrepareLoadReloadSounds(Player player) { ItemStack stack = player.getMainHandItem(); if (!(stack.getItem() instanceof GunItem)) return; + var data = GunData.from(stack); if (!player.level().isClientSide) { String origin = stack.getItem().getDescriptionId(); @@ -406,10 +419,16 @@ public class GunEventHandler { ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos()))); Mod.queueServerWork((int) (8 + 1.5 * shooterHeight), () -> { - if (stack.is(ModTags.Items.SHOTGUN)) { - SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); - } else if (stack.is(ModTags.Items.SNIPER_RIFLE) || stack.is(ModTags.Items.HEAVY_WEAPON)) { - SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1); + var ammoType = data.ammoTypeInfo().playerAmmoType(); + if (ammoType != null) { + switch (ammoType) { + case SHOTGUN -> + SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); + case SNIPER, HEAVY -> + SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_50CAL.get(), (float) Math.max(1 - 0.15 * shooterHeight, 0), 1); + default -> + SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1); + } } else { SoundTool.playLocalSound(serverPlayer, ModSounds.SHELL_CASING_NORMAL.get(), (float) Math.max(1.5 - 0.2 * shooterHeight, 0), 1); } diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java b/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java index 1ee001148..6a7bcdf9e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java @@ -15,10 +15,8 @@ public class ModTags { public static class Items { public static final TagKey GUN = tag("gun"); public static final TagKey SMG = tag("smg"); - public static final TagKey HANDGUN = tag("handgun"); public static final TagKey RIFLE = tag("rifle"); public static final TagKey SNIPER_RIFLE = tag("sniper_rifle"); - public static final TagKey MACHINE_GUN = tag("machine_gun"); public static final TagKey SHOTGUN = tag("shotgun"); public static final TagKey HEAVY_WEAPON = tag("heavy_weapon");