From 6f37245c3ebfe19b37f418496bc3d40d683553a4 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Tue, 1 Oct 2024 14:59:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8F=92=E6=9D=BF=E4=B8=8A?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datagen/ModItemTagProvider.java | 2 ++ .../event/ClientEventHandler.java | 2 +- .../mcreator/superbwarfare/init/ModTags.java | 2 ++ .../superbwarfare/item/ArmorPlate.java | 20 ++++++++++++++----- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java b/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java index 81d9d2b60..c482edda8 100644 --- a/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java +++ b/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java @@ -90,6 +90,8 @@ public class ModItemTagProvider extends ItemTagsProvider { this.tag(ModTags.Items.IS_AUTO_WEAPON).add(ModItems.AA_12.get(), ModItems.AK_47.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.QBZ_95.get(), ModItems.MK_14.get(), ModItems.AA_12.get(), ModItems.GLOCK_18.get(), ModItems.VECTOR.get(), ModItems.AA_12.get(), ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.M_60.get(), ModItems.RPK.get()); + + this.tag(ModTags.Items.MILITARY_ARMOR).add(ModItems.RU_CHEST_6B43.get(), ModItems.US_CHEST_IOTV.get()); } private static TagKey forgeTag(String name) { diff --git a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java index a71f9d372..cd0aacd51 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java @@ -419,7 +419,7 @@ public class ClientEventHandler { private static void handleWeaponZoom() { float times = 5 * Minecraft.getInstance().getDeltaFrameTime(); - if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) { + if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS && !notInGame()) { zoomTime = Mth.clamp(zoomTime + 0.03 * times, 0, 1); } else { zoomTime = Mth.clamp(zoomTime - 0.04 * times, 0, 1); diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModTags.java b/src/main/java/net/mcreator/superbwarfare/init/ModTags.java index 667c886b6..c021a9249 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModTags.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModTags.java @@ -31,6 +31,8 @@ public class ModTags { public static final TagKey CANNOT_RELOAD = tag("cannot_reload"); public static final TagKey IS_AUTO_WEAPON = tag("is_auto_weapon"); + public static final TagKey MILITARY_ARMOR = tag("military_armor"); + private static TagKey tag(String name) { return ItemTags.create(new ResourceLocation(ModUtils.MODID, name)); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/ArmorPlate.java b/src/main/java/net/mcreator/superbwarfare/item/ArmorPlate.java index e665430c7..f8a180e60 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/ArmorPlate.java +++ b/src/main/java/net/mcreator/superbwarfare/item/ArmorPlate.java @@ -1,9 +1,11 @@ package net.mcreator.superbwarfare.item; +import net.mcreator.superbwarfare.init.ModTags; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; +import net.minecraft.util.Mth; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; import net.minecraft.world.entity.EquipmentSlot; @@ -23,12 +25,17 @@ public class ArmorPlate extends Item { @Override public @NotNull InteractionResultHolder use(Level worldIn, Player playerIn, InteractionHand handIn) { ItemStack stack = playerIn.getItemInHand(handIn); - ItemStack armor = playerIn.getItemBySlot(EquipmentSlot.CHEST); - if (armor.getItem() != ItemStack.EMPTY.getItem() && armor.getOrCreateTag().getDouble("armorPlate") < 50) { + if (armor.getItem() == ItemStack.EMPTY.getItem()) return InteractionResultHolder.fail(stack); + + int armorLevel = 1; + if (armor.is(ModTags.Items.MILITARY_ARMOR)) { + armorLevel = 2; + } + + if (armor.getOrCreateTag().getDouble("armorPlate") < armorLevel * 30) { playerIn.startUsingItem(handIn); - return InteractionResultHolder.consume(stack); } return InteractionResultHolder.fail(stack); @@ -45,10 +52,13 @@ public class ArmorPlate extends Item { ItemStack armor = pLivingEntity.getItemBySlot(EquipmentSlot.CHEST); - if (armor.getItem() != ItemStack.EMPTY.getItem()) { - armor.getOrCreateTag().putDouble("ArmorPlate", armor.getOrCreateTag().getDouble("ArmorPlate") + 50); + int armorLevel = 1; + if (armor.is(ModTags.Items.MILITARY_ARMOR)) { + armorLevel = 2; } + armor.getOrCreateTag().putDouble("ArmorPlate", Mth.clamp(armor.getOrCreateTag().getDouble("ArmorPlate") + 30, 0, armorLevel * 30)); + if (pLivingEntity instanceof ServerPlayer serverPlayer) { serverPlayer.level().playSound(null, serverPlayer.getOnPos(), SoundEvents.ARMOR_EQUIP_IRON, SoundSource.PLAYERS, 0.5f, 1); }