|  | package forestry.api.genetics; | 
|  |  | 
|  | import java.util.List; | 
|  |  | 
|  | import forestry.api.core.INBTTagable; | 
|  |  | 
|  | /** | 
|  | * An actual individual with genetic information. | 
|  | * | 
|  | * Only the default implementation is supported. | 
|  | */ | 
|  | public interface IIndividual extends INBTTagable { | 
|  |  | 
|  | String getIdent(); | 
|  |  | 
|  | String getDisplayName(); | 
|  |  | 
|  | void addTooltip(List<String> list); | 
|  |  | 
|  | /** | 
|  | * Call to mark the IIndividual as analyzed. | 
|  | * @return true if the IIndividual has not been analyzed previously. | 
|  | */ | 
|  | boolean analyze(); | 
|  |  | 
|  | boolean isAnalyzed(); | 
|  |  | 
|  | boolean hasEffect(); | 
|  |  | 
|  | boolean isSecret(); | 
|  |  | 
|  | IGenome getGenome(); | 
|  |  | 
|  | /** | 
|  | * Check whether the genetic makeup of two IIndividuals is identical. Ignores additional data like generations, irregular mating, etc.. | 
|  | * @param other | 
|  | * @return true if the given other IIndividual has the amount of chromosomes and their alleles are identical. | 
|  | */ | 
|  | boolean isGeneticEqual(IIndividual other); | 
|  |  | 
|  | /** | 
|  | * @return A deep copy of this individual. | 
|  | */ | 
|  | IIndividual copy(); | 
|  |  | 
|  | /** | 
|  | * @param chromosomeOrdinal Ordinal of the chromosome to check. | 
|  | * @return true if both primary and secondary allele on the given chromosome match. | 
|  | */ | 
|  | boolean isPureBred(int chromosomeOrdinal); | 
|  |  | 
|  | } |