From 1c0dd5f9387e6bc2946ce908db44e4744ce77ade Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Sun, 29 Sep 2024 01:26:02 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=8D=A2=E5=BC=B9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2e07f3c482445536d45c00e6abf223465c01c841 | 3 +- .../fccefbc98890e89f31af48c3878f78fdede0afb2 | 6 +-- .../tags/damage_type/projectile.json | 4 ++ .../tags/damage_type/projectile_absolute.json | 4 ++ .../tags/items/cannot_reload.json | 6 +++ .../superbwarfare/client/ClickHandler.java | 7 ++- .../datagen/ModItemTagProvider.java | 5 +- .../event/PlayerEventHandler.java | 49 ------------------- .../mcreator/superbwarfare/init/ModTags.java | 1 + .../network/message/ReloadMessage.java | 1 - 10 files changed, 29 insertions(+), 57 deletions(-) create mode 100644 src/generated/resources/data/superbwarfare/tags/items/cannot_reload.json diff --git a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 index 3cd65e01a..073eda66b 100644 --- a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 +++ b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 @@ -1,4 +1,4 @@ -// 1.20.1 2024-09-26T10:52:55.796428 Tags for minecraft:item mod id superbwarfare +// 1.20.1 2024-09-29T01:21:56.4028996 Tags for minecraft:item mod id superbwarfare cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json 0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json 295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json @@ -26,6 +26,7 @@ af6fd64b4a685c353f243763db268f7b2304c009 data/forge/tags/items/storage_blocks/le 30d1daa7590f7364b5bc2dc777a00caf2f5eecb0 data/forge/tags/items/storage_blocks/silver.json 3743c2790deca7e779d3e4b82f092de39b446988 data/forge/tags/items/storage_blocks/steel.json 144e54d908121dee498b2ebba3b24b09fd6f18d9 data/forge/tags/items/storage_blocks/tungsten.json +4d4dfd25a2a749e000e1bb742c2f984d4e094e5d data/superbwarfare/tags/items/cannot_reload.json 99a5a3a4bb6b5fb641dcd449937365ea174f3797 data/superbwarfare/tags/items/gun.json 62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json 68ec25b0ccd68abbbe2f33ab7097572c2140c9da data/superbwarfare/tags/items/launcher.json diff --git a/src/generated/resources/.cache/fccefbc98890e89f31af48c3878f78fdede0afb2 b/src/generated/resources/.cache/fccefbc98890e89f31af48c3878f78fdede0afb2 index a0e2e7bf9..a6337d0c6 100644 --- a/src/generated/resources/.cache/fccefbc98890e89f31af48c3878f78fdede0afb2 +++ b/src/generated/resources/.cache/fccefbc98890e89f31af48c3878f78fdede0afb2 @@ -1,3 +1,3 @@ -// 1.20.1 2024-09-26T10:48:01.0937773 Tags for minecraft:damage_type mod id superbwarfare -839ee2020032c8add1d2d30708b6fa32fd8ae734 data/superbwarfare/tags/damage_type/projectile.json -85cb0739f1ef55bd7187621db3e912c923ac9269 data/superbwarfare/tags/damage_type/projectile_absolute.json +// 1.20.1 2024-09-29T01:21:56.4071846 Tags for minecraft:damage_type mod id superbwarfare +ef5293b64057e0650bbb5976246839665f10a0fb data/superbwarfare/tags/damage_type/projectile.json +91f6543d0bd595a1d2b5a74872daed295650ab32 data/superbwarfare/tags/damage_type/projectile_absolute.json diff --git a/src/generated/resources/data/superbwarfare/tags/damage_type/projectile.json b/src/generated/resources/data/superbwarfare/tags/damage_type/projectile.json index 9e4ccd87b..1b1f77d13 100644 --- a/src/generated/resources/data/superbwarfare/tags/damage_type/projectile.json +++ b/src/generated/resources/data/superbwarfare/tags/damage_type/projectile.json @@ -8,6 +8,10 @@ { "id": "tacz:bullet", "required": false + }, + { + "id": "tacz:bullet_void", + "required": false } ] } \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/damage_type/projectile_absolute.json b/src/generated/resources/data/superbwarfare/tags/damage_type/projectile_absolute.json index 1a35acf07..372c25fb9 100644 --- a/src/generated/resources/data/superbwarfare/tags/damage_type/projectile_absolute.json +++ b/src/generated/resources/data/superbwarfare/tags/damage_type/projectile_absolute.json @@ -5,6 +5,10 @@ { "id": "tacz:bullet_ignore_armor", "required": false + }, + { + "id": "tacz:bullet_void_ignore_armor", + "required": false } ] } \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/items/cannot_reload.json b/src/generated/resources/data/superbwarfare/tags/items/cannot_reload.json new file mode 100644 index 000000000..17e57ef75 --- /dev/null +++ b/src/generated/resources/data/superbwarfare/tags/items/cannot_reload.json @@ -0,0 +1,6 @@ +{ + "values": [ + "superbwarfare:minigun", + "superbwarfare:bocek" + ] +} \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java b/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java index d5d32dabe..e0f4bf3ec 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java @@ -86,7 +86,12 @@ public class ClickHandler { } if (player.getMainHandItem().is(ModTags.Items.GUN)) { event.setCanceled(true); - ModUtils.PACKET_HANDLER.sendToServer(new FireMessage(0)); + + if (stack.is(ModTags.Items.GUN) && !stack.is(ModTags.Items.CANNOT_RELOAD) && stack.getOrCreateTag().getInt("ammo") <= 0) { + ModUtils.PACKET_HANDLER.sendToServer(new ReloadMessage(0)); + } else { + ModUtils.PACKET_HANDLER.sendToServer(new FireMessage(0)); + } } } diff --git a/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java b/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java index 6bfc28c1e..5d8dd1058 100644 --- a/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java +++ b/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java @@ -78,14 +78,15 @@ public class ModItemTagProvider extends ItemTagsProvider { ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get()); this.tag(ModTags.Items.OPEN_BOLT).add(ModItems.ABEKIRI.get(), ModItems.AK_47.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.NTW_20.get(), - ModItems.M_98B.get(), ModItems.SENTINEL.get(),ModItems.GLOCK_17.get(),ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get()); + ModItems.M_98B.get(), ModItems.SENTINEL.get(), ModItems.GLOCK_17.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get()); this.tag(ModTags.Items.USE_HANDGUN_AMMO).add(ModItems.TRACHELIUM.get(), ModItems.GLOCK_17.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.VECTOR.get()); - this.tag(ModTags.Items.USE_RIFLE_AMMO).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(),ModItems.MINIGUN.get(),ModItems.DEVOTION.get(),ModItems.M_60.get(), + this.tag(ModTags.Items.USE_RIFLE_AMMO).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(), ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.M_60.get(), ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.QBZ_95.get(), ModItems.RPK.get()); this.tag(ModTags.Items.USE_SHOTGUN_AMMO).add(ModItems.ABEKIRI.get(), ModItems.M_870.get(), ModItems.AA_12.get()); this.tag(ModTags.Items.USE_SNIPER_AMMO).add(ModItems.HUNTING_RIFLE.get(), ModItems.NTW_20.get(), ModItems.SENTINEL.get(), ModItems.SVD.get(), ModItems.M_98B.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get()); this.tag(ModTags.Items.LAUNCHER).add(ModItems.M_79.get(), ModItems.RPG.get(), ModItems.JAVELIN.get()); + this.tag(ModTags.Items.CANNOT_RELOAD).add(ModItems.MINIGUN.get(), ModItems.BOCEK.get()); } private static TagKey forgeTag(String name) { diff --git a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java index 5f6bef063..8882430e3 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java @@ -88,7 +88,6 @@ public class PlayerEventHandler { if (event.phase == TickEvent.Phase.END) { if (stack.is(ModTags.Items.GUN)) { - handleWeaponAutoReload(player); handleWeaponSway(player); handlePlayerSprint(player); handleWeaponLevel(player); @@ -116,54 +115,6 @@ public class PlayerEventHandler { && !level.getBlockState(BlockPos.containing(player.getX() + 0.7 * player.getLookAngle().x, player.getY() + 1.5, player.getZ() + 0.7 * player.getLookAngle().z)).canOcclude(); } - private static void handleWeaponAutoReload(Player player) { - if (player.level().isClientSide) { - ItemStack stack = player.getMainHandItem(); - var capability = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()); - if (!player.isSpectator() - && stack.is(ModTags.Items.GUN) - && !stack.getOrCreateTag().getBoolean("sentinel_is_charging") - && !(player.getCooldowns().isOnCooldown(stack.getItem())) - && stack.getOrCreateTag().getInt("draw_time") > 35 - && stack.getOrCreateTag().getInt("gun_reloading_time") == 0 - && stack.getOrCreateTag().getInt("ammo") == 0 - ) { - CompoundTag tag = stack.getOrCreateTag(); - - // 检查备弹 - - int count = 0; - for (var inv : player.getInventory().items) { - if (inv.is(ModItems.CREATIVE_AMMO_BOX.get())) { - count++; - } - } - - if (count == 0) { - if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && capability.shotgunAmmo == 0) { - return; - } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO) && capability.sniperAmmo == 0) { - return; - } else if ((stack.is(ModTags.Items.USE_HANDGUN_AMMO) || stack.is(ModTags.Items.SMG)) && capability.handgunAmmo == 0) { - return; - } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) { - return; - } else if (stack.getItem() == ModItems.TASER.get() && tag.getInt("max_ammo") == 0) { - return; - } else if (stack.getItem() == ModItems.M_79.get() && tag.getInt("max_ammo") == 0) { - return; - } else if (stack.getItem() == ModItems.RPG.get() && tag.getInt("max_ammo") == 0) { - return; - } else if (stack.getItem() == ModItems.JAVELIN.get() && tag.getInt("max_ammo") == 0) { - return; - } - } - - ModUtils.PACKET_HANDLER.sendToServer(new ReloadMessage(0)); - } - } - } - private static void handleWeaponSway(Player player) { if (player.getMainHandItem().is(ModTags.Items.GUN)) { float pose; diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModTags.java b/src/main/java/net/mcreator/superbwarfare/init/ModTags.java index d61d4b15e..a6a1f1fd5 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModTags.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModTags.java @@ -28,6 +28,7 @@ public class ModTags { public static final TagKey NORMAL_GUN = tag("normal_gun"); public static final TagKey OPEN_BOLT = tag("open_bolt"); + public static final TagKey CANNOT_RELOAD = tag("cannot_reload"); private static TagKey tag(String name) { return ItemTags.create(new ResourceLocation(ModUtils.MODID, name)); diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java index 512b4b4fe..e66475af6 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java @@ -61,7 +61,6 @@ public class ReloadMessage { boolean clipLoad = tag.getInt("ammo") == 0 && tag.getDouble("clipLoad") == 1; // 检查备弹 - int count = 0; for (var inv : player.getInventory().items) { if (inv.is(ModItems.CREATIVE_AMMO_BOX.get())) {