本文整理汇总了Java中forestry.api.genetics.IGenome.getChromosomes方法的典型用法代码示例。如果您正苦于以下问题:Java IGenome.getChromosomes方法的具体用法?Java IGenome.getChromosomes怎么用?Java IGenome.getChromosomes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类forestry.api.genetics.IGenome
的用法示例。
在下文中一共展示了IGenome.getChromosomes方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: isGeneticEqual
import forestry.api.genetics.IGenome; //导入方法依赖的package包/类
@Override
public boolean isGeneticEqual(IGenome other) {
IChromosome[] genetics = other.getChromosomes();
if(chromosomes.length != genetics.length)
return false;
for(int i = 0; i < chromosomes.length; i++) {
IChromosome chromosome = chromosomes[i];
if(chromosome == null && genetics[i] != null)
return false;
if(chromosome != null && genetics[i] == null)
return false;
if(chromosome == null && genetics[i] == null)
continue;
if(!chromosome.getPrimaryAllele().getUID().equals(genetics[i].getPrimaryAllele().getUID()))
return false;
if(!chromosome.getSecondaryAllele().getUID().equals(genetics[i].getSecondaryAllele().getUID()))
return false;
}
return true;
}
示例2: mutateSpecies
import forestry.api.genetics.IGenome; //导入方法依赖的package包/类
private IChromosome[] mutateSpecies(IBeeHousing housing, IGenome genomeOne, IGenome genomeTwo) {
World world = housing.getWorld();
IChromosome[] parent1 = genomeOne.getChromosomes();
IChromosome[] parent2 = genomeTwo.getChromosomes();
IGenome genome0;
IGenome genome1;
IAllele allele0;
IAllele allele1;
if (world.rand.nextBoolean()) {
allele0 = parent1[EnumBeeChromosome.SPECIES.ordinal()].getPrimaryAllele();
allele1 = parent2[EnumBeeChromosome.SPECIES.ordinal()].getSecondaryAllele();
genome0 = genomeOne;
genome1 = genomeTwo;
} else {
allele0 = parent2[EnumBeeChromosome.SPECIES.ordinal()].getPrimaryAllele();
allele1 = parent1[EnumBeeChromosome.SPECIES.ordinal()].getSecondaryAllele();
genome0 = genomeTwo;
genome1 = genomeOne;
}
for (IBeeMutation mutation : BeeManager.breedingManager.getMutations(true)) {
int chance = 0;
if ((chance = mutation.getChance(housing, allele0, allele1, genome0, genome1)) > 0)
if (world.rand.nextInt(100) < chance) {
IApiaristTracker breedingTracker = BeeManager.breedingManager.getApiaristTracker(world, housing.getOwnerName());
breedingTracker.registerMutation(mutation);
return BeeManager.beeInterface.templateAsChromosomes(mutation.getTemplate());
}
}
return null;
}
示例3: mutateSpecies
import forestry.api.genetics.IGenome; //导入方法依赖的package包/类
private IChromosome[] mutateSpecies(World world, int x, int y, int z, IGenome genomeOne, IGenome genomeTwo) {
IChromosome[] parent1 = genomeOne.getChromosomes();
IChromosome[] parent2 = genomeTwo.getChromosomes();
IGenome genome0;
IGenome genome1;
IAllele allele0;
IAllele allele1;
if (world.rand.nextBoolean()) {
allele0 = parent1[EnumTreeChromosome.SPECIES.ordinal()].getPrimaryAllele();
allele1 = parent2[EnumTreeChromosome.SPECIES.ordinal()].getSecondaryAllele();
genome0 = genomeOne;
genome1 = genomeTwo;
} else {
allele0 = parent2[EnumTreeChromosome.SPECIES.ordinal()].getPrimaryAllele();
allele1 = parent1[EnumTreeChromosome.SPECIES.ordinal()].getSecondaryAllele();
genome0 = genomeTwo;
genome1 = genomeOne;
}
Collections.shuffle(TreeManager.treeMutations);
for (ITreeMutation mutation : TreeManager.treeMutations) {
int chance = 0;
// Stop blacklisted species.
//if (BeeManager.breedingManager.isBlacklisted(mutation.getTemplate()[0].getUID())) {
// continue;
//}
if ((chance = mutation.getChance(world, x, y, z, allele0, allele1, genome0, genome1)) > 0)
if (world.rand.nextInt(100) < chance) {
//IApiaristTracker breedingTracker = BeeManager.breedingManager.getApiaristTracker(world);
//breedingTracker.registerMutation(mutation);
return TreeManager.treeInterface.templateAsChromosomes(mutation.getTemplate());
}
}
return null;
}