package joshie.harvest.api.animals; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.item.ItemStack; import java.util.List; public interface IAnimalType { /** Return a simple name for this animal type **/ String getName(); /** Return a stack to represent this animal in the relationships panel **/ ItemStack getIcon(); /** @return an array of food type this animal can consume **/ AnimalFoodType[] getFoodTypes(); /** @return the minimum lifespan for this animal type **/ int getMinLifespan(); /** @return the maximum lifespan for this animal type **/ int getMaxLifespan(); /** @return the number of days between producing products **/ int getDaysBetweenProduction(); /** @return how many generic treats * this animal needs to up it's productivity **/ int getGenericTreatCount(); /** @return how many typed treats * this animal needs to up it's productivity **/ int getTypeTreatCount(); /** The relationship bonus based on the action * @param action the action * @return the points awarded**/ int getRelationshipBonus(AnimalAction action); /** @return the product that this animal produces * @param stats the animals stats **/ ItemStack getProduct(AnimalStats stats); /** @return a list of stacks to use for display purposes of what this animal can produce * @param stats the animals stats **/ List<ItemStack> getProductsForDisplay(AnimalStats stats); /** Called whenever an animal is reset to being able to produce again * @param stats the stats * @param entity the animal**/ void refreshProduct(AnimalStats stats, EntityAnimal entity); }