From d2a54113b2e76b6d3bc352160a5f360c8091e6e8 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 9 Sep 2024 01:19:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=91=E5=B0=84=E5=99=A8?= =?UTF-8?q?=E7=9A=84perk=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/gun/launcher/JavelinItem.java | 15 +++++++---- .../item/gun/launcher/M79Item.java | 25 ++++++++++--------- .../item/gun/launcher/RpgItem.java | 24 ++++++++++-------- .../superbwarfare/perk/PerkHelper.java | 3 +++ 4 files changed, 39 insertions(+), 28 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java index 91a810f83..b4974e438 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/JavelinItem.java @@ -9,6 +9,8 @@ import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.AnimatedItem; import net.mcreator.superbwarfare.item.gun.GunItem; +import net.mcreator.superbwarfare.perk.Perk; +import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.*; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; @@ -75,7 +77,7 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem { transformType = type; } - private PlayState idlePredicate(AnimationState event) { + private PlayState idlePredicate(AnimationState event) { LocalPlayer player = Minecraft.getInstance().player; if (player == null) return PlayState.STOP; ItemStack stack = player.getMainHandItem(); @@ -108,7 +110,7 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem { return PlayState.STOP; } - private PlayState procedurePredicate(AnimationState event) { + private PlayState procedurePredicate(AnimationState event) { if (transformType != null && transformType.firstPerson()) { if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure)); @@ -161,9 +163,7 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem { @Override public Set getReloadSound() { - return Set.of(ModSounds.JAVELIN_RELOAD_EMPTY.get(), - ModSounds.JAVELIN_LOCK.get(), - ModSounds.JAVELIN_LOCKON.get()); + return Set.of(ModSounds.JAVELIN_RELOAD_EMPTY.get(), ModSounds.JAVELIN_LOCK.get(), ModSounds.JAVELIN_LOCKON.get()); } @Override @@ -221,4 +221,9 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem { public String getGunDisplayName() { return "FGM-148"; } + + @Override + public boolean canApplyPerk(Perk perk) { + return PerkHelper.LAUNCHER_PERKS.test(perk); + } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java index c8e068eca..081d128e5 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/launcher/M79Item.java @@ -9,14 +9,14 @@ import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.AnimatedItem; import net.mcreator.superbwarfare.item.gun.GunItem; +import net.mcreator.superbwarfare.perk.Perk; +import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.PoseTool; -import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; -import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; @@ -28,7 +28,10 @@ import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.*; +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; @@ -40,7 +43,6 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; -import java.util.List; import java.util.Set; import java.util.UUID; import java.util.function.Consumer; @@ -81,14 +83,13 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem { transformType = type; } - private PlayState idlePredicate(AnimationState event) { + private PlayState idlePredicate(AnimationState event) { LocalPlayer player = Minecraft.getInstance().player; if (player == null) return PlayState.STOP; ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP; if (this.animationProcedure.equals("empty")) { - if (stack.getOrCreateTag().getInt("draw_time") < 16) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m79.draw")); } @@ -114,7 +115,7 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem { return PlayState.STOP; } - private PlayState procedurePredicate(AnimationState event) { + private PlayState procedurePredicate(AnimationState event) { if (transformType != null && transformType.firstPerson()) { if (!(this.animationProcedure.equals("empty")) && event.getController().getAnimationState() == AnimationController.State.STOPPED) { event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure)); @@ -152,11 +153,6 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem { return map; } - @Override - public void appendHoverText(ItemStack stack, Level world, List list, TooltipFlag flag) { - TooltipTool.addGunTips(list, stack); - } - public static int getAmmoCount(Player player) { int sum = 0; for (int i = 0; i < player.getInventory().getContainerSize(); ++i) { @@ -200,4 +196,9 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem { public String getGunDisplayName() { return "M79 LAUNCHER"; } + + @Override + public boolean canApplyPerk(Perk perk) { + return PerkHelper.LAUNCHER_PERKS.test(perk); + } } \ No newline at end of file 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 e2500b47c..e8336ba82 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 @@ -9,14 +9,14 @@ import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.AnimatedItem; import net.mcreator.superbwarfare.item.gun.GunItem; +import net.mcreator.superbwarfare.perk.Perk; +import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.PoseTool; -import net.mcreator.superbwarfare.tools.TooltipTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; -import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; @@ -28,7 +28,10 @@ import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.*; +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; @@ -40,7 +43,6 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; -import java.util.List; import java.util.Set; import java.util.UUID; import java.util.function.Consumer; @@ -76,7 +78,7 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem { transformType = type; } - private PlayState idlePredicate(AnimationState event) { + private PlayState idlePredicate(AnimationState event) { LocalPlayer player = Minecraft.getInstance().player; if (player == null) return PlayState.STOP; ItemStack stack = player.getMainHandItem(); @@ -109,7 +111,7 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem { return PlayState.STOP; } - private PlayState procedurePredicate(AnimationState event) { + private PlayState procedurePredicate(AnimationState event) { if (transformType != null && transformType.firstPerson()) { if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure)); @@ -149,11 +151,6 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem { return map; } - @Override - public void appendHoverText(ItemStack stack, Level world, List list, TooltipFlag flag) { - TooltipTool.addGunTips(list, stack); - } - public static int getAmmoCount(Player player) { int sum = 0; for (int i = 0; i < player.getInventory().getContainerSize(); ++i) { @@ -205,4 +202,9 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem { public String getGunDisplayName() { return " RPG-7"; } + + @Override + public boolean canApplyPerk(Perk perk) { + return PerkHelper.LAUNCHER_PERKS.test(perk); + } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java index 53ec87d34..cacf16ff1 100644 --- a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java +++ b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java @@ -11,6 +11,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraftforge.registries.RegistryObject; import javax.annotation.Nullable; +import java.util.Objects; import java.util.Optional; import java.util.function.Predicate; @@ -284,4 +285,6 @@ public class PerkHelper { } }; + public static final Predicate LAUNCHER_PERKS = perk -> perk == ModPerks.MONSTER_HUNTER.get(); + }