diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index 2d4da9f2b..7b077cb4c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -231,7 +231,7 @@ public class ClientEventHandler { // 精准度 float times = (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 0.8); - double basicDev = stack.getOrCreateTag().getDouble("spread"); + double basicDev = GunsTool.getGunDoubleTag(stack, "Spread"); double walk = isMoving() ? 0.3 * basicDev : 0; double sprint = player.isSprinting() ? 0.25 * basicDev : 0; double crouching = player.isCrouching() ? -0.15 * basicDev : 0; diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/FireMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/FireMessage.java index da4e4c485..bdb049c6d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/FireMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/FireMessage.java @@ -11,10 +11,7 @@ import com.atsuishio.superbwarfare.network.ModVariables; import com.atsuishio.superbwarfare.perk.AmmoPerk; import com.atsuishio.superbwarfare.perk.Perk; import com.atsuishio.superbwarfare.perk.PerkHelper; -import com.atsuishio.superbwarfare.tools.EntityFindUtil; -import com.atsuishio.superbwarfare.tools.ParticleTool; -import com.atsuishio.superbwarfare.tools.SeekTool; -import com.atsuishio.superbwarfare.tools.SoundTool; +import com.atsuishio.superbwarfare.tools.*; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; @@ -336,7 +333,7 @@ public class FireMessage { int wireLength = PerkHelper.getItemPerkLevel(ModPerks.LONGER_WIRE.get(), stack); boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom; - double spread = stack.getOrCreateTag().getDouble("spread"); + double spread = GunsTool.getGunDoubleTag(stack, "Spread"); Level level = player.level(); if (!level.isClientSide()) { @@ -369,7 +366,7 @@ public class FireMessage { if (!stack.getOrCreateTag().getBoolean("reloading")) { if (!player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getInt("ammo") > 0) { boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom; - double spread = stack.getOrCreateTag().getDouble("spread"); + double spread = GunsTool.getGunDoubleTag(stack, "Spread"); Level level = player.level(); if (!level.isClientSide()) { @@ -421,7 +418,7 @@ public class FireMessage { if (!tag.getBoolean("reloading") && !player.getCooldowns().isOnCooldown(stack.getItem()) && tag.getInt("ammo") > 0) { boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom; - double spread = stack.getOrCreateTag().getDouble("spread"); + double spread = GunsTool.getGunDoubleTag(stack, "Spread"); if (!level.isClientSide()) { RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level, diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java index 4f5c07b91..f5c3a8763 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java @@ -19,6 +19,7 @@ import net.minecraftforge.network.PacketDistributor; import java.io.InputStreamReader; import java.util.HashMap; +import java.util.Set; import java.util.UUID; @Mod.EventBusSubscriber(modid = ModUtils.MODID) @@ -52,11 +53,14 @@ public class GunsTool { } } + // TODO 临时使用,移植完毕后删除 + private static final Set STRING_SET = Set.of("EmptyReloadTime", "FireMode", "Weight", "SoundRadius", "BurstSize", "ProjectileAmount", + "Spread"); + public static void initGun(Level level, ItemStack stack, String location) { if (level.getServer() == null) return; gunsData.get(location).forEach((k, v) -> { - if (k.equals("EmptyReloadTime") || k.equals("FireMode") || k.equals("Weight") || k.equals("SoundRadius") || k.equals("BurstSize") - || k.equals("ProjectileAmount")) { + if (STRING_SET.contains(k)) { CompoundTag tag = stack.getOrCreateTag(); CompoundTag data = tag.getCompound("GunData"); data.putDouble(k, v); @@ -70,8 +74,7 @@ public class GunsTool { public static void initCreativeGun(ItemStack stack, String location) { if (gunsData != null && gunsData.get(location) != null) { gunsData.get(location).forEach((k, v) -> { - if (k.equals("EmptyReloadTime") || k.equals("FireMode") || k.equals("Weight") || k.equals("SoundRadius") || k.equals("BurstSize") - || k.equals("ProjectileAmount")) { + if (STRING_SET.contains(k)) { CompoundTag tag = stack.getOrCreateTag(); CompoundTag data = tag.getCompound("GunData"); data.putDouble(k, v); diff --git a/src/main/resources/data/superbwarfare/guns/aa_12.json b/src/main/resources/data/superbwarfare/guns/aa_12.json index e51f4cc0d..ff92d5f72 100644 --- a/src/main/resources/data/superbwarfare/guns/aa_12.json +++ b/src/main/resources/data/superbwarfare/guns/aa_12.json @@ -1,5 +1,5 @@ { - "spread": 3.5, + "Spread": 3.5, "recoil_x": 0.006, "recoil_y": 0.018, "damage": 2.5, diff --git a/src/main/resources/data/superbwarfare/guns/abekiri.json b/src/main/resources/data/superbwarfare/guns/abekiri.json index 1359b66bc..3b8053784 100644 --- a/src/main/resources/data/superbwarfare/guns/abekiri.json +++ b/src/main/resources/data/superbwarfare/guns/abekiri.json @@ -1,5 +1,5 @@ { - "spread": 4, + "Spread": 4, "recoil_x": 0.005, "recoil_y": 0.026, "damage": 5, diff --git a/src/main/resources/data/superbwarfare/guns/ak_12.json b/src/main/resources/data/superbwarfare/guns/ak_12.json index e8944fcc8..d5254c683 100644 --- a/src/main/resources/data/superbwarfare/guns/ak_12.json +++ b/src/main/resources/data/superbwarfare/guns/ak_12.json @@ -1,7 +1,7 @@ { "MinZoom": 1.25, "MaxZoom": 6, - "spread": 3.5, + "Spread": 3.5, "recoil_x": 0.0015, "recoil_y": 0.01, "damage": 7.7, diff --git a/src/main/resources/data/superbwarfare/guns/ak_47.json b/src/main/resources/data/superbwarfare/guns/ak_47.json index de68a9966..271227eb9 100644 --- a/src/main/resources/data/superbwarfare/guns/ak_47.json +++ b/src/main/resources/data/superbwarfare/guns/ak_47.json @@ -1,7 +1,7 @@ { "MinZoom": 1.25, "MaxZoom": 6, - "spread": 4, + "Spread": 4, "recoil_x": 0.002, "recoil_y": 0.012, "damage": 8.5, diff --git a/src/main/resources/data/superbwarfare/guns/bocek.json b/src/main/resources/data/superbwarfare/guns/bocek.json index e38af7b90..62db67a15 100644 --- a/src/main/resources/data/superbwarfare/guns/bocek.json +++ b/src/main/resources/data/superbwarfare/guns/bocek.json @@ -1,6 +1,6 @@ { "CustomZoom": 0.75, - "spread": 4, + "Spread": 4, "headshot": 2.5, "damage": 48, "Weight": 3, diff --git a/src/main/resources/data/superbwarfare/guns/devotion.json b/src/main/resources/data/superbwarfare/guns/devotion.json index ca7679c5e..163132557 100644 --- a/src/main/resources/data/superbwarfare/guns/devotion.json +++ b/src/main/resources/data/superbwarfare/guns/devotion.json @@ -1,6 +1,6 @@ { "CustomZoom": 0.75, - "spread": 5, + "Spread": 5, "recoil_x": 0.0018, "recoil_y": 0.01, "damage": 9.5, diff --git a/src/main/resources/data/superbwarfare/guns/glock_17.json b/src/main/resources/data/superbwarfare/guns/glock_17.json index 99346d226..9457121b8 100644 --- a/src/main/resources/data/superbwarfare/guns/glock_17.json +++ b/src/main/resources/data/superbwarfare/guns/glock_17.json @@ -1,5 +1,5 @@ { - "spread": 2.5, + "Spread": 2.5, "recoil_x": 0.004, "recoil_y": 0.013, "damage": 5.5, diff --git a/src/main/resources/data/superbwarfare/guns/glock_18.json b/src/main/resources/data/superbwarfare/guns/glock_18.json index 9857ba182..a1309aefe 100644 --- a/src/main/resources/data/superbwarfare/guns/glock_18.json +++ b/src/main/resources/data/superbwarfare/guns/glock_18.json @@ -1,5 +1,5 @@ { - "spread": 2.5, + "Spread": 2.5, "recoil_x": 0.004, "recoil_y": 0.013, "damage": 5.5, diff --git a/src/main/resources/data/superbwarfare/guns/hk_416.json b/src/main/resources/data/superbwarfare/guns/hk_416.json index dd06b5ff6..384192e7c 100644 --- a/src/main/resources/data/superbwarfare/guns/hk_416.json +++ b/src/main/resources/data/superbwarfare/guns/hk_416.json @@ -1,7 +1,7 @@ { "MinZoom": 1.25, "MaxZoom": 6, - "spread": 3.5, + "Spread": 3.5, "recoil_x": 0.0016, "recoil_y": 0.009, "damage": 7.5, diff --git a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json index bcecbcad0..a9105f5b5 100644 --- a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json +++ b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json @@ -1,5 +1,5 @@ { - "spread": 7, + "Spread": 7, "recoil_x": 0.004, "recoil_y": 0.04, "damage": 65, diff --git a/src/main/resources/data/superbwarfare/guns/javelin.json b/src/main/resources/data/superbwarfare/guns/javelin.json index 282bb792a..ba9255322 100644 --- a/src/main/resources/data/superbwarfare/guns/javelin.json +++ b/src/main/resources/data/superbwarfare/guns/javelin.json @@ -1,6 +1,6 @@ { "CustomZoom": 1.75, - "spread": 5, + "Spread": 5, "zoomSpread": 5, "mag": 1, "Weight": 10, diff --git a/src/main/resources/data/superbwarfare/guns/k_98.json b/src/main/resources/data/superbwarfare/guns/k_98.json index 0f32b113a..6a262814e 100644 --- a/src/main/resources/data/superbwarfare/guns/k_98.json +++ b/src/main/resources/data/superbwarfare/guns/k_98.json @@ -1,5 +1,5 @@ { - "spread": 5, + "Spread": 5, "recoil_x": 0.002, "recoil_y": 0.063, "damage": 35, diff --git a/src/main/resources/data/superbwarfare/guns/m_1911.json b/src/main/resources/data/superbwarfare/guns/m_1911.json index 56d1e927f..ea6b799f1 100644 --- a/src/main/resources/data/superbwarfare/guns/m_1911.json +++ b/src/main/resources/data/superbwarfare/guns/m_1911.json @@ -1,5 +1,5 @@ { - "spread": 2.5, + "Spread": 2.5, "recoil_x": 0.006, "recoil_y": 0.018, "damage": 9.5, diff --git a/src/main/resources/data/superbwarfare/guns/m_4.json b/src/main/resources/data/superbwarfare/guns/m_4.json index 710d72f84..3c52f9e61 100644 --- a/src/main/resources/data/superbwarfare/guns/m_4.json +++ b/src/main/resources/data/superbwarfare/guns/m_4.json @@ -1,7 +1,7 @@ { "MinZoom": 4, "MaxZoom": 8, - "spread": 4, + "Spread": 4, "recoil_x": 0.0015, "recoil_y": 0.011, "damage": 7, diff --git a/src/main/resources/data/superbwarfare/guns/m_60.json b/src/main/resources/data/superbwarfare/guns/m_60.json index d81985660..65d67d8e2 100644 --- a/src/main/resources/data/superbwarfare/guns/m_60.json +++ b/src/main/resources/data/superbwarfare/guns/m_60.json @@ -1,5 +1,5 @@ { - "spread": 5, + "Spread": 5, "recoil_x": 0.004, "recoil_y": 0.014, "damage": 9, diff --git a/src/main/resources/data/superbwarfare/guns/m_79.json b/src/main/resources/data/superbwarfare/guns/m_79.json index 864f72d58..b9ede7e17 100644 --- a/src/main/resources/data/superbwarfare/guns/m_79.json +++ b/src/main/resources/data/superbwarfare/guns/m_79.json @@ -1,5 +1,5 @@ { - "spread": 1.5, + "Spread": 1.5, "recoil_x": 0.004, "recoil_y": 0.023, "damage": 40, diff --git a/src/main/resources/data/superbwarfare/guns/m_870.json b/src/main/resources/data/superbwarfare/guns/m_870.json index 5771ab3ed..1d37ddfed 100644 --- a/src/main/resources/data/superbwarfare/guns/m_870.json +++ b/src/main/resources/data/superbwarfare/guns/m_870.json @@ -1,5 +1,5 @@ { - "spread": 3, + "Spread": 3, "recoil_x": 0.009, "recoil_y": 0.04, "damage": 3, diff --git a/src/main/resources/data/superbwarfare/guns/m_98b.json b/src/main/resources/data/superbwarfare/guns/m_98b.json index d60bec3a5..650c4f3d7 100644 --- a/src/main/resources/data/superbwarfare/guns/m_98b.json +++ b/src/main/resources/data/superbwarfare/guns/m_98b.json @@ -2,7 +2,7 @@ "CustomZoom": 4.75, "min_zoom": 4, "max_zoom": 8, - "spread": 6, + "Spread": 6, "recoil_x": 0.007, "recoil_y": 0.013, "damage": 38, diff --git a/src/main/resources/data/superbwarfare/guns/marlin.json b/src/main/resources/data/superbwarfare/guns/marlin.json index 39e1df3b1..3b28a03b3 100644 --- a/src/main/resources/data/superbwarfare/guns/marlin.json +++ b/src/main/resources/data/superbwarfare/guns/marlin.json @@ -1,5 +1,5 @@ { - "spread": 2, + "Spread": 2, "recoil_x": 0.004, "recoil_y": 0.031, "damage": 16, diff --git a/src/main/resources/data/superbwarfare/guns/minigun.json b/src/main/resources/data/superbwarfare/guns/minigun.json index 1927bb919..036a87479 100644 --- a/src/main/resources/data/superbwarfare/guns/minigun.json +++ b/src/main/resources/data/superbwarfare/guns/minigun.json @@ -1,5 +1,5 @@ { - "spread": 1.5, + "Spread": 1.5, "recoil_x": 0.003, "recoil_y": 0.02, "damage": 8, diff --git a/src/main/resources/data/superbwarfare/guns/mk_14.json b/src/main/resources/data/superbwarfare/guns/mk_14.json index a4eefeb72..f28c14cf1 100644 --- a/src/main/resources/data/superbwarfare/guns/mk_14.json +++ b/src/main/resources/data/superbwarfare/guns/mk_14.json @@ -1,7 +1,7 @@ { "MinZoom": 1.25, "MaxZoom": 6, - "spread": 5, + "Spread": 5, "recoil_x": 0.006, "recoil_y": 0.014, "damage": 12, diff --git a/src/main/resources/data/superbwarfare/guns/mosin_nagant.json b/src/main/resources/data/superbwarfare/guns/mosin_nagant.json index ba30203ad..875c7d613 100644 --- a/src/main/resources/data/superbwarfare/guns/mosin_nagant.json +++ b/src/main/resources/data/superbwarfare/guns/mosin_nagant.json @@ -1,6 +1,6 @@ { "CustomZoom": 2.25, - "spread": 4.8, + "Spread": 4.8, "recoil_x": 0.002, "recoil_y": 0.063, "damage": 33, diff --git a/src/main/resources/data/superbwarfare/guns/ntw_20.json b/src/main/resources/data/superbwarfare/guns/ntw_20.json index baecf11d9..a46ee4141 100644 --- a/src/main/resources/data/superbwarfare/guns/ntw_20.json +++ b/src/main/resources/data/superbwarfare/guns/ntw_20.json @@ -1,6 +1,6 @@ { "CustomZoom": 3.75, - "spread": 8, + "Spread": 8, "recoil_x": 0.01, "recoil_y": 0.038, "damage": 140, diff --git a/src/main/resources/data/superbwarfare/guns/qbz_95.json b/src/main/resources/data/superbwarfare/guns/qbz_95.json index 3c68bfaa3..3d56f6505 100644 --- a/src/main/resources/data/superbwarfare/guns/qbz_95.json +++ b/src/main/resources/data/superbwarfare/guns/qbz_95.json @@ -1,7 +1,7 @@ { "MinZoom": 4, "MaxZoom": 8, - "spread": 3.7, + "Spread": 3.7, "recoil_x": 0.0013, "recoil_y": 0.009, "damage": 8.25, diff --git a/src/main/resources/data/superbwarfare/guns/rpg.json b/src/main/resources/data/superbwarfare/guns/rpg.json index f6f1cca2d..8d213e485 100644 --- a/src/main/resources/data/superbwarfare/guns/rpg.json +++ b/src/main/resources/data/superbwarfare/guns/rpg.json @@ -1,5 +1,5 @@ { - "spread": 5, + "Spread": 5, "recoil_x": 0.008, "recoil_y": 0.018, "damage": 200, diff --git a/src/main/resources/data/superbwarfare/guns/rpk.json b/src/main/resources/data/superbwarfare/guns/rpk.json index 03a408508..b4fec18a8 100644 --- a/src/main/resources/data/superbwarfare/guns/rpk.json +++ b/src/main/resources/data/superbwarfare/guns/rpk.json @@ -1,5 +1,5 @@ { - "spread": 5.5, + "Spread": 5.5, "recoil_x": 0.0018, "recoil_y": 0.012, "damage": 8.75, diff --git a/src/main/resources/data/superbwarfare/guns/sentinel.json b/src/main/resources/data/superbwarfare/guns/sentinel.json index 538c495c6..4381c9704 100644 --- a/src/main/resources/data/superbwarfare/guns/sentinel.json +++ b/src/main/resources/data/superbwarfare/guns/sentinel.json @@ -1,6 +1,6 @@ { "CustomZoom": 1.75, - "spread": 6, + "Spread": 6, "recoil_x": 0.007, "recoil_y": 0.018, "damage": 35, diff --git a/src/main/resources/data/superbwarfare/guns/sks.json b/src/main/resources/data/superbwarfare/guns/sks.json index d1765fbdd..fe88162ee 100644 --- a/src/main/resources/data/superbwarfare/guns/sks.json +++ b/src/main/resources/data/superbwarfare/guns/sks.json @@ -1,5 +1,5 @@ { - "spread": 4.5, + "Spread": 4.5, "recoil_x": 0.004, "recoil_y": 0.015, "damage": 9.5, diff --git a/src/main/resources/data/superbwarfare/guns/svd.json b/src/main/resources/data/superbwarfare/guns/svd.json index 20c3fee72..0d6e3b923 100644 --- a/src/main/resources/data/superbwarfare/guns/svd.json +++ b/src/main/resources/data/superbwarfare/guns/svd.json @@ -1,6 +1,6 @@ { "CustomZoom": 2.75, - "spread": 5.5, + "Spread": 5.5, "recoil_x": 0.004, "recoil_y": 0.009, "damage": 18, diff --git a/src/main/resources/data/superbwarfare/guns/taser.json b/src/main/resources/data/superbwarfare/guns/taser.json index 31974a5ac..8d4afe899 100644 --- a/src/main/resources/data/superbwarfare/guns/taser.json +++ b/src/main/resources/data/superbwarfare/guns/taser.json @@ -1,5 +1,5 @@ { - "spread": 2, + "Spread": 2, "recoil_x": 0.0001, "recoil_y": 0.002, "damage": 5, diff --git a/src/main/resources/data/superbwarfare/guns/trachelium.json b/src/main/resources/data/superbwarfare/guns/trachelium.json index 55bd90b8b..e9e7d0892 100644 --- a/src/main/resources/data/superbwarfare/guns/trachelium.json +++ b/src/main/resources/data/superbwarfare/guns/trachelium.json @@ -1,5 +1,5 @@ { - "spread": 3, + "Spread": 3, "recoil_x": 0.005, "recoil_y": 0.032, "damage": 19, diff --git a/src/main/resources/data/superbwarfare/guns/vector.json b/src/main/resources/data/superbwarfare/guns/vector.json index 05d635059..1796dc731 100644 --- a/src/main/resources/data/superbwarfare/guns/vector.json +++ b/src/main/resources/data/superbwarfare/guns/vector.json @@ -1,5 +1,5 @@ { - "spread": 2.3, + "Spread": 2.3, "recoil_x": 0.002, "recoil_y": 0.007, "damage": 6,