package joshie.harvest.animals.item; import joshie.harvest.animals.HFAnimals; import joshie.harvest.animals.item.ItemAnimalTreat.Treat; import joshie.harvest.api.animals.AnimalAction; import joshie.harvest.api.animals.AnimalStats; import joshie.harvest.api.animals.IAnimalType; import joshie.harvest.core.base.item.ItemHFEnum; import joshie.harvest.core.helpers.EntityHelper; import joshie.harvest.core.lib.CreativeSort; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumHand; import net.minecraft.util.IStringSerializable; import java.util.Locale; public class ItemAnimalTreat extends ItemHFEnum<ItemAnimalTreat, Treat> { public enum Treat implements IStringSerializable { COW(HFAnimals.COWS), SHEEP(HFAnimals.SHEEP), CHICKEN(HFAnimals.CHICKENS), GENERIC(null); private final IAnimalType type; Treat(IAnimalType type) { this.type = type; } public IAnimalType getType() { return type; } @Override public String getName() { return name().toLowerCase(Locale.ENGLISH); } } public ItemAnimalTreat() { super(Treat.class); } @Override @SuppressWarnings("ConstantConditions") public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer player, EntityLivingBase target, EnumHand hand) { AnimalStats stats = EntityHelper.getStats(target); AnimalAction action = getEnumFromStack(stack).getType() != null ? AnimalAction.TREAT_SPECIAL : AnimalAction.TREAT_GENERIC; if (stats != null && stats.performAction(player.worldObj, stack, action)) { stack.splitStack(1); return true; } else return false; } @Override public int getSortValue(ItemStack stack) { return CreativeSort.ANIMAL_TREAT; } }