/******************************************************************************* * Copyright 2011-2014 SirSengir * * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. ******************************************************************************/ 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. * @deprecated since Forestry 3.3. Use the IChromosomeType version. */ @Deprecated boolean isPureBred(int chromosomeOrdinal); boolean isPureBred(IChromosomeType chromosomeType); }