53 lines
1.2 KiB
Java
53 lines
1.2 KiB
Java
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);
|
|
|
|
}
|