|  | package forestry.api.genetics; | 
|  |  | 
|  | import net.minecraft.item.ItemStack; | 
|  | import net.minecraft.world.World; | 
|  |  | 
|  | public interface IFlowerProvider { | 
|  | /** | 
|  | * @param world | 
|  | * @param individual | 
|  | * @param x | 
|  | * @param y | 
|  | * @param z | 
|  | * @return True if the block at the passed coordinates is a valid flower for the species. | 
|  | */ | 
|  | boolean isAcceptedFlower(World world, IIndividual individual, int x, int y, int z); | 
|  |  | 
|  | boolean isAcceptedPollinatable(World world, IPollinatable pollinatable); | 
|  |  | 
|  | /** | 
|  | * @param world | 
|  | * @param individual | 
|  | * @param x | 
|  | * @param y | 
|  | * @param z | 
|  | * @return True if a flower was planted. | 
|  | */ | 
|  | boolean growFlower(World world, IIndividual individual, int x, int y, int z); | 
|  |  | 
|  | /** | 
|  | * @return Short, human-readable identifier used in the beealyzer. | 
|  | */ | 
|  | String getDescription(); | 
|  |  | 
|  | /** | 
|  | * Allows the flower provider to affect the produce at the given location. | 
|  | * @param world | 
|  | * @param individual | 
|  | * @param x | 
|  | * @param y | 
|  | * @param z | 
|  | * @param products | 
|  | * @return Array of itemstacks being the (modified or unmodified) produce. | 
|  | */ | 
|  | ItemStack[] affectProducts(World world, IIndividual individual, int x, int y, int z, ItemStack[] products); | 
|  |  | 
|  | /** | 
|  | * @return Array of itemstacks representing valid flowers for the flower provider. The first in the array is for use as an icon Return null or an empty | 
|  | *         array if the flower does not have an itemstack | 
|  | */ | 
|  | ItemStack[] getItemStacks(); | 
|  | } |