BloodMagic/BM_src/forestry/api/genetics/IIndividual.java
2014-01-25 20:36:28 -05:00

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);
}