From f552437d2417705a9a38a8834c051ec4306a8297 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 21 Oct 2024 02:56:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96gunitem=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/item/gun/GunItem.java | 13 +------------ .../item/gun/launcher/RpgItem.java | 11 +++++++++-- .../item/gun/machinegun/M60Item.java | 18 +++++++++++++++--- .../superbwarfare/item/gun/rifle/SksItem.java | 14 ++++++++++++++ 4 files changed, 39 insertions(+), 17 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java index 3207f500b..b0e1cf25a 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java @@ -3,7 +3,6 @@ package net.mcreator.superbwarfare.item.gun; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.network.ModVariables; @@ -64,16 +63,6 @@ public abstract class GunItem extends Item { if (itemstack.getOrCreateTag().getBoolean("draw")) { itemstack.getOrCreateTag().putBoolean("draw", false); - - if (itemstack.getItem() == ModItems.RPG.get() && itemstack.getOrCreateTag().getInt("ammo") == 0) { - itemstack.getOrCreateTag().putDouble("empty", 1); - } - if (itemstack.getItem() == ModItems.SKS.get() && itemstack.getOrCreateTag().getInt("ammo") == 0) { - itemstack.getOrCreateTag().putBoolean("HoldOpen", true); - } - if (itemstack.getItem() == ModItems.M_60.get() && itemstack.getOrCreateTag().getInt("ammo") <= 5) { - itemstack.getOrCreateTag().putBoolean("bullet_chain", true); - } } if (itemstack.getOrCreateTag().getInt("fire_animation") > 0) { @@ -144,7 +133,7 @@ public abstract class GunItem extends Item { } public ResourceLocation getGunIcon() { - return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/default_icon.png"); + return ModUtils.loc("textures/gun_icon/default_icon.png"); } public String getGunDisplayName() { diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java index b16a34515..b98d42845 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/RpgItem.java @@ -137,13 +137,20 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem { @Override public void inventoryTick(ItemStack itemStack, Level world, Entity entity, int slot, boolean selected) { - super.inventoryTick(itemStack, world, entity, slot, selected); + if (itemStack.getOrCreateTag().getBoolean("draw")) { + itemStack.getOrCreateTag().putBoolean("draw", false); + + if (itemStack.getOrCreateTag().getInt("ammo") == 0) { + itemStack.getOrCreateTag().putDouble("empty", 1); + } + } if (entity instanceof Player player) { var tag = itemStack.getOrCreateTag(); tag.putInt("max_ammo", getAmmoCount(player)); - } + + super.inventoryTick(itemStack, world, entity, slot, selected); } protected static boolean check(ItemStack stack) { diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java index 5cb64d770..081250662 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java @@ -21,11 +21,13 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Rarity; +import net.minecraft.world.level.Level; import net.minecraftforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; @@ -88,8 +90,6 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; - - if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m60.reload")); } @@ -133,13 +133,25 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem { return stack; } + @Override + public void inventoryTick(ItemStack itemstack, Level level, Entity entity, int slot, boolean selected) { + if (itemstack.getOrCreateTag().getBoolean("draw")) { + itemstack.getOrCreateTag().putBoolean("draw", false); + + if (itemstack.getOrCreateTag().getInt("ammo") <= 5) { + itemstack.getOrCreateTag().putBoolean("bullet_chain", true); + } + } + super.inventoryTick(itemstack, level, entity, slot, selected); + } + @Override public void setAnimationProcedure(String procedure) { } @Override public ResourceLocation getGunIcon() { - return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/m60_icon.png"); + return ModUtils.loc("textures/gun_icon/m60_icon.png"); } @Override diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/SksItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/SksItem.java index 84d14ef34..c2bd3560b 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/SksItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/SksItem.java @@ -20,11 +20,13 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Rarity; +import net.minecraft.world.level.Level; import net.minecraftforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; @@ -115,6 +117,18 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem { return stack; } + @Override + public void inventoryTick(ItemStack itemstack, Level level, Entity entity, int slot, boolean selected) { + if (itemstack.getOrCreateTag().getBoolean("draw")) { + itemstack.getOrCreateTag().putBoolean("draw", false); + + if (itemstack.getOrCreateTag().getInt("ammo") == 0) { + itemstack.getOrCreateTag().putBoolean("HoldOpen", true); + } + } + super.inventoryTick(itemstack, level, entity, slot, selected); + } + @Override public void setAnimationProcedure(String procedure) { }