diff --git a/src/main/java/com/minelittlepony/unicopia/item/AmuletItem.java b/src/main/java/com/minelittlepony/unicopia/item/AmuletItem.java index 122815b3..1defd4d5 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/AmuletItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/AmuletItem.java @@ -8,20 +8,17 @@ import org.jetbrains.annotations.Nullable; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; -import com.minelittlepony.unicopia.particle.ParticleUtils; import com.minelittlepony.unicopia.trinkets.TrinketsDelegate; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.minecraft.client.MinecraftClient; import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.Entity; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.attribute.EntityAttribute; import net.minecraft.entity.attribute.EntityAttributeModifier; import net.minecraft.item.ArmorMaterials; import net.minecraft.item.ItemStack; -import net.minecraft.particle.ParticleTypes; import net.minecraft.sound.SoundEvent; import net.minecraft.text.MutableText; import net.minecraft.text.StringVisitable; @@ -46,17 +43,6 @@ public class AmuletItem extends WearableItem { this.modifiers = modifiers; } - @Override - public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, boolean selected) { - if (this == UItems.PEGASUS_AMULET - && entity.world.getTime() % 6 == 0 - && entity instanceof LivingEntity - && ((LivingEntity) entity).getEquippedStack(EquipmentSlot.CHEST) == stack - && isApplicable((LivingEntity)entity)) { - ParticleUtils.spawnParticles(entity.world.getDimension().ultrawarm() ? ParticleTypes.SOUL_FIRE_FLAME : ParticleTypes.COMPOSTER, entity, 1); - } - } - @Override public void appendTooltip(ItemStack stack, @Nullable World world, List list, TooltipContext tooltipContext) { diff --git a/src/main/java/com/minelittlepony/unicopia/item/PegasusAmuletItem.java b/src/main/java/com/minelittlepony/unicopia/item/PegasusAmuletItem.java new file mode 100644 index 00000000..266d10cb --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/item/PegasusAmuletItem.java @@ -0,0 +1,40 @@ +package com.minelittlepony.unicopia.item; + +import com.minelittlepony.unicopia.Affinity; +import com.minelittlepony.unicopia.entity.Living; +import com.minelittlepony.unicopia.entity.player.PlayerCharmTracker; +import com.minelittlepony.unicopia.particle.ParticleUtils; + +import net.fabricmc.fabric.api.item.v1.FabricItemSettings; +import net.minecraft.entity.*; +import net.minecraft.item.ItemStack; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.world.World; + +public class PegasusAmuletItem extends AmuletItem implements PlayerCharmTracker.Charm { + public PegasusAmuletItem(FabricItemSettings settings, int maxEnergy) { + super(settings, maxEnergy); + } + + @Override + public Affinity getAffinity() { + return Affinity.NEUTRAL; + } + + @Override + public void onRemoved(Living living, int timeWorn) { + + } + + @Override + public void onAdded(Living living) { + + } + + @Override + public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, boolean selected) { + if (entity.world.getTime() % 6 == 0 && entity instanceof LivingEntity living && isApplicable(living)) { + ParticleUtils.spawnParticles(entity.world.getDimension().ultrawarm() ? ParticleTypes.SOUL_FIRE_FLAME : ParticleTypes.COMPOSTER, entity, 1); + } + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/item/UItems.java b/src/main/java/com/minelittlepony/unicopia/item/UItems.java index 5a89c961..03be123c 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/UItems.java +++ b/src/main/java/com/minelittlepony/unicopia/item/UItems.java @@ -110,7 +110,7 @@ public interface UItems { Item SPELLBOOK = register("spellbook", new SpellbookItem(new Item.Settings().maxCount(1).rarity(Rarity.UNCOMMON).group(ItemGroup.TOOLS))); - AmuletItem PEGASUS_AMULET = register("pegasus_amulet", new AmuletItem(new FabricItemSettings() + AmuletItem PEGASUS_AMULET = register("pegasus_amulet", new PegasusAmuletItem(new FabricItemSettings() .maxCount(1) .maxDamage(890) .rarity(Rarity.UNCOMMON)