添加发射器的perk条件
This commit is contained in:
parent
10421b98f5
commit
d2a54113b2
4 changed files with 39 additions and 28 deletions
|
@ -9,6 +9,8 @@ import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
import net.mcreator.superbwarfare.init.ModTags;
|
import net.mcreator.superbwarfare.init.ModTags;
|
||||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
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.mcreator.superbwarfare.tools.*;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.model.HumanoidModel;
|
import net.minecraft.client.model.HumanoidModel;
|
||||||
|
@ -75,7 +77,7 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
transformType = type;
|
transformType = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlayState idlePredicate(AnimationState event) {
|
private PlayState idlePredicate(AnimationState<JavelinItem> event) {
|
||||||
LocalPlayer player = Minecraft.getInstance().player;
|
LocalPlayer player = Minecraft.getInstance().player;
|
||||||
if (player == null) return PlayState.STOP;
|
if (player == null) return PlayState.STOP;
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
@ -108,7 +110,7 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
return PlayState.STOP;
|
return PlayState.STOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlayState procedurePredicate(AnimationState event) {
|
private PlayState procedurePredicate(AnimationState<JavelinItem> event) {
|
||||||
if (transformType != null && transformType.firstPerson()) {
|
if (transformType != null && transformType.firstPerson()) {
|
||||||
if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
||||||
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));
|
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));
|
||||||
|
@ -161,9 +163,7 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<SoundEvent> getReloadSound() {
|
public Set<SoundEvent> getReloadSound() {
|
||||||
return Set.of(ModSounds.JAVELIN_RELOAD_EMPTY.get(),
|
return Set.of(ModSounds.JAVELIN_RELOAD_EMPTY.get(), ModSounds.JAVELIN_LOCK.get(), ModSounds.JAVELIN_LOCKON.get());
|
||||||
ModSounds.JAVELIN_LOCK.get(),
|
|
||||||
ModSounds.JAVELIN_LOCKON.get());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -221,4 +221,9 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public String getGunDisplayName() {
|
public String getGunDisplayName() {
|
||||||
return "FGM-148";
|
return "FGM-148";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canApplyPerk(Perk perk) {
|
||||||
|
return PerkHelper.LAUNCHER_PERKS.test(perk);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -9,14 +9,14 @@ import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
import net.mcreator.superbwarfare.init.ModTags;
|
import net.mcreator.superbwarfare.init.ModTags;
|
||||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
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.GunsTool;
|
||||||
import net.mcreator.superbwarfare.tools.PoseTool;
|
import net.mcreator.superbwarfare.tools.PoseTool;
|
||||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.model.HumanoidModel;
|
import net.minecraft.client.model.HumanoidModel;
|
||||||
import net.minecraft.client.player.LocalPlayer;
|
import net.minecraft.client.player.LocalPlayer;
|
||||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||||
import net.minecraft.network.chat.Component;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
import net.minecraft.sounds.SoundEvent;
|
||||||
import net.minecraft.world.InteractionHand;
|
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.AttributeModifier;
|
||||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||||
import net.minecraft.world.entity.player.Player;
|
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.minecraft.world.level.Level;
|
||||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||||
import software.bernie.geckolib.animatable.GeoItem;
|
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.core.object.PlayState;
|
||||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
@ -81,14 +83,13 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
transformType = type;
|
transformType = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlayState idlePredicate(AnimationState event) {
|
private PlayState idlePredicate(AnimationState<M79Item> event) {
|
||||||
LocalPlayer player = Minecraft.getInstance().player;
|
LocalPlayer player = Minecraft.getInstance().player;
|
||||||
if (player == null) return PlayState.STOP;
|
if (player == null) return PlayState.STOP;
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||||
|
|
||||||
if (this.animationProcedure.equals("empty")) {
|
if (this.animationProcedure.equals("empty")) {
|
||||||
|
|
||||||
if (stack.getOrCreateTag().getInt("draw_time") < 16) {
|
if (stack.getOrCreateTag().getInt("draw_time") < 16) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m79.draw"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m79.draw"));
|
||||||
}
|
}
|
||||||
|
@ -114,7 +115,7 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
return PlayState.STOP;
|
return PlayState.STOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlayState procedurePredicate(AnimationState event) {
|
private PlayState procedurePredicate(AnimationState<M79Item> event) {
|
||||||
if (transformType != null && transformType.firstPerson()) {
|
if (transformType != null && transformType.firstPerson()) {
|
||||||
if (!(this.animationProcedure.equals("empty")) && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
if (!(this.animationProcedure.equals("empty")) && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
||||||
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));
|
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));
|
||||||
|
@ -152,11 +153,6 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
|
|
||||||
TooltipTool.addGunTips(list, stack);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getAmmoCount(Player player) {
|
public static int getAmmoCount(Player player) {
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
for (int i = 0; i < player.getInventory().getContainerSize(); ++i) {
|
for (int i = 0; i < player.getInventory().getContainerSize(); ++i) {
|
||||||
|
@ -200,4 +196,9 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public String getGunDisplayName() {
|
public String getGunDisplayName() {
|
||||||
return "M79 LAUNCHER";
|
return "M79 LAUNCHER";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canApplyPerk(Perk perk) {
|
||||||
|
return PerkHelper.LAUNCHER_PERKS.test(perk);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -9,14 +9,14 @@ import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
import net.mcreator.superbwarfare.init.ModTags;
|
import net.mcreator.superbwarfare.init.ModTags;
|
||||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
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.GunsTool;
|
||||||
import net.mcreator.superbwarfare.tools.PoseTool;
|
import net.mcreator.superbwarfare.tools.PoseTool;
|
||||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.model.HumanoidModel;
|
import net.minecraft.client.model.HumanoidModel;
|
||||||
import net.minecraft.client.player.LocalPlayer;
|
import net.minecraft.client.player.LocalPlayer;
|
||||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||||
import net.minecraft.network.chat.Component;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
import net.minecraft.sounds.SoundEvent;
|
||||||
import net.minecraft.world.InteractionHand;
|
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.AttributeModifier;
|
||||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||||
import net.minecraft.world.entity.player.Player;
|
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.minecraft.world.level.Level;
|
||||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||||
import software.bernie.geckolib.animatable.GeoItem;
|
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.core.object.PlayState;
|
||||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
@ -76,7 +78,7 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
transformType = type;
|
transformType = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlayState idlePredicate(AnimationState event) {
|
private PlayState idlePredicate(AnimationState<RpgItem> event) {
|
||||||
LocalPlayer player = Minecraft.getInstance().player;
|
LocalPlayer player = Minecraft.getInstance().player;
|
||||||
if (player == null) return PlayState.STOP;
|
if (player == null) return PlayState.STOP;
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
@ -109,7 +111,7 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
return PlayState.STOP;
|
return PlayState.STOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlayState procedurePredicate(AnimationState event) {
|
private PlayState procedurePredicate(AnimationState<RpgItem> event) {
|
||||||
if (transformType != null && transformType.firstPerson()) {
|
if (transformType != null && transformType.firstPerson()) {
|
||||||
if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
||||||
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));
|
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));
|
||||||
|
@ -149,11 +151,6 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
|
|
||||||
TooltipTool.addGunTips(list, stack);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getAmmoCount(Player player) {
|
public static int getAmmoCount(Player player) {
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
for (int i = 0; i < player.getInventory().getContainerSize(); ++i) {
|
for (int i = 0; i < player.getInventory().getContainerSize(); ++i) {
|
||||||
|
@ -205,4 +202,9 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public String getGunDisplayName() {
|
public String getGunDisplayName() {
|
||||||
return " RPG-7";
|
return " RPG-7";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canApplyPerk(Perk perk) {
|
||||||
|
return PerkHelper.LAUNCHER_PERKS.test(perk);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -11,6 +11,7 @@ import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraftforge.registries.RegistryObject;
|
import net.minecraftforge.registries.RegistryObject;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
|
@ -284,4 +285,6 @@ public class PerkHelper {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static final Predicate<Perk> LAUNCHER_PERKS = perk -> perk == ModPerks.MONSTER_HUNTER.get();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue