default ItemStack getMemberStack(IAlleleSpecies species, ISpeciesType type) { return getMemberStack(getTemplate(species), type); }
private static IAllele validateAllele(@Nullable String speciesUid, IChromosomeType chromosomeType, @Nullable IAllele allele) { if (!chromosomeType.getAlleleClass().isInstance(allele)) { ISpeciesRoot speciesRoot = chromosomeType.getSpeciesRoot(); IAllele[] template = null; if (speciesUid != null) { template = speciesRoot.getTemplate(speciesUid); } if (template == null) { template = speciesRoot.getDefaultTemplate(); } return template[chromosomeType.ordinal()]; } return allele; }
@Override @Nullable public IIndividual getIndividual(String uid) { IAllele[] template = this.getSpeciesRoot().getTemplate(uid); if (template == null) { return null; } return this.getSpeciesRoot().templateAsIndividual(template); }
@Override public float getChance(final IMutation mutation, final EntityPlayer player, final IAlleleSpecies firstSpecies, final IAlleleSpecies secondSpecies) { ISpeciesRoot speciesRoot = this.getSpeciesRoot(); final ITreeGenome genome0 = (ITreeGenome) speciesRoot.templateAsGenome(speciesRoot.getTemplate(firstSpecies)); final ITreeGenome genome2 = (ITreeGenome) speciesRoot.templateAsGenome(speciesRoot.getTemplate(secondSpecies)); return ((ITreeMutation) mutation).getChance(player.world, player.getPosition(), (IAlleleTreeSpecies) firstSpecies, (IAlleleTreeSpecies) secondSpecies, genome0, genome2); }
private static ImmutableMap<IAlleleSpecies, ItemStack> createEntries() { ImmutableMap.Builder<IAlleleSpecies, ItemStack> entries = ImmutableMap.builder(); for (ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) { for (IIndividual individual : root.getIndividualTemplates()) { IAlleleSpecies species = individual.getGenome().getPrimary(); ItemStack itemStack = root.getMemberStack(root.templateAsIndividual(root.getTemplate(species)), root.getIconType()); entries.put(species, itemStack); } } return entries.build(); } }
@Override public void calculateBranches(ISpeciesRoot speciesRoot) { Collection<IClassification> allRegBranches = AlleleManager.alleleRegistry.getRegisteredClassifications().values(); this.allBranches = new ArrayList<>(); for (IClassification branch : allRegBranches) { IAlleleSpecies[] species = branch.getMemberSpecies(); if (species.length <= 0) { continue; } IAlleleSpecies firstSpecies = species[0]; IAllele[] template = speciesRoot.getTemplate(firstSpecies.getUID()); if (template != null) { boolean possible = false; for (IAlleleSpecies species2 : branch.getMemberSpecies()) { if (allActiveSpecies.contains(species2)) { possible = true; } } if (!possible) { continue; } this.allBranches.add(branch); } } }
@Override public void calculateAlleles(ISpeciesRoot speciesRoot) { this.allSpecies = new ArrayList<>(); this.allActiveSpecies = new ArrayList<>(); this.resultantMutations.clear(); this.furtherMutations.clear(); this.allResultantMutations.clear(); this.allFurtherMutations.clear(); Collection<IAllele> allAlleles = AlleleManager.alleleRegistry.getRegisteredAlleles().values(); for (IAllele allele : allAlleles) { String uid = allele.getUID(); IAllele[] template = speciesRoot.getTemplate(uid); if (template != null) { IAlleleSpecies species = (IAlleleSpecies) allele; this.allSpecies.add(species); if (isBlacklisted(allele) || uid.contains("speciesBotAlfheim")) { continue; } this.allActiveSpecies.add((IAlleleSpecies) allele); } } }
@Override public float getChance(final IMutation mutation, final EntityPlayer player, final IAlleleSpecies firstSpecies, final IAlleleSpecies secondSpecies) { return ((IBeeMutation) mutation). getChance(new VirtualBeeHousing(player), (IAlleleBeeSpecies) firstSpecies, (IAlleleBeeSpecies) secondSpecies, (IBeeGenome) this.getSpeciesRoot(). templateAsGenome(this.getSpeciesRoot().getTemplate(firstSpecies)), (IBeeGenome) this.getSpeciesRoot().templateAsGenome(this.getSpeciesRoot().getTemplate(secondSpecies)) ); }
@Override public ItemStack apply(ItemStack stack, Random rand, LootContext context) { ISpeciesRoot speciesRoot = AlleleManager.alleleRegistry.getSpeciesRoot(stack); if (speciesRoot != null) { ISpeciesType speciesType = speciesRoot.getType(stack); if (speciesType != null) { IAllele[] template = speciesRoot.getTemplate(speciesUid); if (template != null) { IIndividual individual = speciesRoot.templateAsIndividual(template); return speciesRoot.getMemberStack(individual, speciesType); } } } return stack; }
@Override public Collection<IAlleleSpecies> getTreesThatBearFruit(final ItemStack fruit, final boolean master, final World world, final GameProfile player) { final Collection<IAlleleSpecies> set = master ? this.getAllSpecies() : this.getDiscoveredSpecies(world, player); final List<IAlleleSpecies> found = new ArrayList<>(); for (final IAlleleSpecies species : set) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; final ITreeGenome genome = (ITreeGenome) this.getSpeciesRoot().templateAsGenome(this.getSpeciesRoot().getTemplate(tSpecies)); for (final ItemStack fruit2 : genome.getFruitProvider().getProducts().keySet()) { if (fruit2.isItemEqual(fruit)) { found.add(species); } } } return found; }
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()); } }
@Override public Collection<IAlleleSpecies> getTreesThatCanBearFruit(final ItemStack fruit, final boolean master, final World world, final GameProfile player) { final Collection<IAlleleSpecies> set = master ? this.getAllSpecies() : this.getDiscoveredSpecies(world, player); final List<IAlleleSpecies> found = new ArrayList<>(); final Set<IFruitFamily> providers = new HashSet<>(); for (final IAlleleSpecies species : set) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; final ITreeGenome genome = (ITreeGenome) this.getSpeciesRoot().templateAsGenome(this.getSpeciesRoot().getTemplate(tSpecies)); for (final ItemStack fruit2 : genome.getFruitProvider().getProducts().keySet()) { if (fruit2.isItemEqual(fruit)) { providers.add(genome.getFruitProvider().getFamily()); } } } for (final IAlleleSpecies species : set) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; for (final IFruitFamily family : providers) { if (tSpecies.getSuitableFruit().contains(family)) { found.add(species); break; } } } return found; }
private boolean calculateMatchesTemplateGenome() { IAlleleTreeSpecies primary = getPrimary(); IAllele[] template = getSpeciesRoot().getTemplate(primary); IChromosome[] chromosomes = getChromosomes(); for (int i = 0; i < chromosomes.length; i++) { IChromosome chromosome = chromosomes[i]; String templateUid = template[i].getUID(); IAllele primaryAllele = chromosome.getPrimaryAllele(); if (!primaryAllele.getUID().equals(templateUid)) { return false; } IAllele secondaryAllele = chromosome.getSecondaryAllele(); if (!secondaryAllele.getUID().equals(templateUid)) { return false; } } return true; } }
@Override public final void calculateArrays() { super.calculateArrays(); for (final IAlleleSpecies species : this.allActiveSpecies) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; final ITreeGenome genome = (ITreeGenome) this.getSpeciesRoot().templateAsGenome(this.getSpeciesRoot().getTemplate(tSpecies)); IAlleleTreeSpecies treeSpecies = genome.getPrimary(); final ItemStack wood = treeSpecies.getWoodProvider().getWoodStack(); if (!wood.isEmpty()) { this.allWoods.add(wood); } /*for (final ItemStack wood : tSpecies.getRoot().templateAsIndividual(getSpeciesRoot().getTemplate(tSpecies.getUID())).getProduceList()) { this.allWoods.add(wood); }*/ this.allFruits.addAll(genome.getFruitProvider().getProducts().keySet()); } }
@Override public void onSyncBreedingTracker(final IBreedingTracker tracker) { this.discoveredFruits.clear(); this.discoveredWoods.clear(); for (final IAlleleSpecies species : this.getDiscoveredSpecies(tracker)) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; final ITreeGenome genome = (ITreeGenome) this.getSpeciesRoot().templateAsGenome(this.getSpeciesRoot().getTemplate(tSpecies)); IAlleleTreeSpecies treeSpecies = genome.getPrimary(); final ItemStack wood = treeSpecies.getWoodProvider().getWoodStack(); if (!wood.isEmpty()) { this.discoveredWoods.add(wood); } /*for (final ItemStack wood : tSpecies.getRoot().templateAsIndividual(getSpeciesRoot().getTemplate(tSpecies.getUID())).getProduceList()) { this.discoveredWoods.add(wood); }*/ this.discoveredFruits.addAll(genome.getFruitProvider().getProducts().keySet()); } }
public ItemScrollList(final AnalystPageDatabase analystPageDatabase, Collection<IAlleleSpecies> options, IBreedingSystem system) { super(analystPageDatabase.scroll, 0, 0, analystPageDatabase.scroll.getWidth(), analystPageDatabase.scroll.getHeight()); this.options = options; this.system = system; this.analystPageDatabase = analystPageDatabase; int maxBiomePerLine = (getWidth() - 4 + 2) / 18; int biomeListX = -6 + (getWidth() - (maxBiomePerLine * 18 - 2)) / 2; int dx = 0; int dy = 0; for (IAlleleSpecies species : options) { IIndividual ind = system.getSpeciesRoot().templateAsIndividual(system.getSpeciesRoot().getTemplate(species)); new SpeciesIndividualDisplay(this, biomeListX, dx, dy, ind, species); dx += 18; if (dx >= 18 * maxBiomePerLine) { dx = 0; dy += 18; } } setSize(new Point(getWidth(), 4 + dy + 18)); }
IAllele allele = gene.getAllele(); if (chromosomeType == speciesRoot.getSpeciesChromosomeType()) { template = speciesRoot.getTemplate(allele.getUID()); } else { template[chromosomeType.ordinal()] = allele;
public void setSpecies(final IAlleleSpecies species, EnumDiscoveryState state) { final ISpeciesRoot speciesRoot = Binnie.GENETICS.getSpeciesRoot(species); final IBreedingSystem system = Binnie.GENETICS.getSystem(speciesRoot); final IAllele[] template = system.getSpeciesRoot().getTemplate(species); final IIndividual ind = system.getSpeciesRoot().templateAsIndividual(template); super.setItemStack(system.getSpeciesRoot().getMemberStack(ind, system.getDefaultType())); this.species = species; final GameProfile username = Window.get(this).getUsername(); if (state == EnumDiscoveryState.UNDETERMINED) { state = (system.isSpeciesDiscovered(species, Window.get(this).getWorld(), username) ? EnumDiscoveryState.DISCOVERED : EnumDiscoveryState.UNDISCOVERED); } if (Window.get(this) instanceof WindowAbstractDatabase && ((WindowAbstractDatabase) Window.get(this)).isMaster()) { state = EnumDiscoveryState.SHOW; } this.discovered = state; this.addAttribute(Attribute.MOUSE_OVER); }