public ISpeciesRoot getSpeciesRoot(final IAlleleSpecies species) { return species.getRoot(); }
@Override public boolean addElements(IElementGroup page, IGuiElementFactory factory, @Nullable BookContent previous, @Nullable IGuiElement previousElement, int pageHeight) { IAllele allele = AlleleManager.alleleRegistry.getAllele(species); if (!(allele instanceof IAlleleSpecies)) { return false; } IAlleleSpecies s = (IAlleleSpecies) allele; ISpeciesRoot root = s.getRoot(); page.add(new MutationElement(0, 0, root.getResultantMutations(s).toArray(new IMutation[0]))); return true; } }
private static int getGeneticAdvancement(IAlleleSpecies species, Set<IAlleleSpecies> exclude, IChromosomeType speciesChromosome) { int highest = 0; exclude.add(species); for (IMutation mutation : species.getRoot().getPaths(species, speciesChromosome)) { highest = getHighestAdvancement(mutation.getAllele0(), highest, exclude, speciesChromosome); highest = getHighestAdvancement(mutation.getAllele1(), highest, exclude, speciesChromosome); } return 1 + highest; }
private void setTokenSpecies(String speciesUid) { IAllele allele = AlleleManager.alleleRegistry.getAllele(speciesUid); if (allele instanceof IAlleleSpecies) { IAlleleSpecies species = (IAlleleSpecies) allele; ISpeciesRoot root = species.getRoot(); IAllele[] template = root.getTemplate(species); this.tokenIndividual = root.templateAsIndividual(template); this.tokenStack = root.getMemberStack(this.tokenIndividual, root.getIconType()); } }
public boolean initialize(ItemStack specimen) { IIndividual individual = AlleleManager.alleleRegistry.getIndividual(specimen); if (individual == null) { return false; } IGenome genome = individual.getGenome(); ISpeciesRoot root = genome.getPrimary().getRoot(); tokenCount = getTokenCount(genome); for (int i = 0; i < tokenCount / 2; i++) { IAllele[] randomTemplate = root.getRandomTemplate(rand); String speciesUid = randomTemplate[root.getSpeciesChromosomeType().ordinal()].getUID(); gameTokens.add(new EscritoireGameToken(speciesUid)); gameTokens.add(new EscritoireGameToken(speciesUid)); } Collections.shuffle(gameTokens); return true; }
public static ResearchNote createSpeciesNote(GameProfile researcher, IAlleleSpecies species) { NBTTagCompound compound = new NBTTagCompound(); compound.setString("ROT", species.getRoot().getUID()); compound.setString("AL0", species.getUID()); return new ResearchNote(researcher, SPECIES, compound); }
@Override public void registerPickup(IIndividual individual) { ISpeciesRoot speciesRoot = individual.getGenome().getPrimary().getRoot(); if (!speciesRoot.getUID().equals(speciesRootUID())) { return; } if (!individual.isPureBred(EnumBeeChromosome.SPECIES)) { return; } if (!speciesRoot.getCombinations(individual.getGenome().getPrimary()).isEmpty()) { return; } registerSpecies(individual.getGenome().getPrimary()); }
@Override @SideOnly(Side.CLIENT) public void onRenderForeground(int guiWidth, int guiHeight) { TextureAtlasSprite icon = null; if (this.species == null) { return; } IBreedingSystem system = Binnie.GENETICS.getSystem(this.species.getRoot()); switch (this.discovered) { case SHOW: { super.onRenderForeground(guiWidth, guiHeight); return; } case DISCOVERED: { icon = system.getDiscoveredIcon(); break; } case UNDISCOVERED: { icon = system.getUndiscoveredIcon(); break; } } if (icon != null) { RenderUtil.drawGuiSprite(Point.ZERO, icon); } }