|  | package forestry.api.genetics; | 
|  |  | 
|  | import java.util.EnumSet; | 
|  |  | 
|  | import net.minecraftforge.common.EnumPlantType; | 
|  |  | 
|  | /** | 
|  | * Can be implemented by tile entities, if they wish to be pollinatable. | 
|  | * | 
|  | * @author SirSengir | 
|  | */ | 
|  | public interface IPollinatable { | 
|  |  | 
|  | /** | 
|  | * @return plant types this pollinatable is classified as. (Can be used by bees to determine whether to interact or not. | 
|  | */ | 
|  | EnumSet<EnumPlantType> getPlantType(); | 
|  |  | 
|  | /** | 
|  | * @return IIndividual containing the genetic information of this IPollinatable | 
|  | */ | 
|  | IIndividual getPollen(); | 
|  |  | 
|  | /** | 
|  | * Checks whether this {@link IPollinatable} can mate with the given pollen. | 
|  | * | 
|  | * Must be the one to check genetic equivalency. | 
|  | * | 
|  | * @param pollen | 
|  | *            IIndividual representing the pollen. | 
|  | * @return true if mating is possible, false otherwise. | 
|  | */ | 
|  | boolean canMateWith(IIndividual pollen); | 
|  |  | 
|  | /** | 
|  | * Pollinates this entity. | 
|  | * | 
|  | * @param pollen | 
|  | *            IIndividual representing the pollen. | 
|  | */ | 
|  | void mateWith(IIndividual pollen); | 
|  |  | 
|  | } |