@Override public Collection<? extends IMutation> getPaths(IAllele result, IChromosomeType chromosomeType) { ArrayList<IMutation> paths = new ArrayList<>(); for (IMutation mutation : getMutations(false)) { if (mutation.getTemplate()[chromosomeType.ordinal()] == result) { paths.add(mutation); } } return paths; }
@Override public List<? extends IMutation> getResultantMutations(IAllele other) { List<IMutation> mutations = new ArrayList<>(); int speciesIndex = getSpeciesChromosomeType().ordinal(); for (IMutation mutation : getMutations(false)) { IAllele[] template = mutation.getTemplate(); if (template == null || template.length <= speciesIndex) { continue; } IAllele speciesAllele = template[speciesIndex]; if (speciesAllele == other) { mutations.add(mutation); } } return mutations; }
@Override public void calculateMutations(ISpeciesRoot speciesRoot) { this.allMutations = new ArrayList<>(); List<? extends IMutation> speciesMutations = speciesRoot.getMutations(false); if (!speciesMutations.isEmpty()) { final Set<IMutation> mutations = new LinkedHashSet<>(speciesMutations); for (final IMutation mutation : mutations) { this.allMutations.add(mutation); final Set<IAlleleSpecies> participatingSpecies = new LinkedHashSet<>(); participatingSpecies.add(mutation.getAllele0()); participatingSpecies.add(mutation.getAllele1()); for (final IAlleleSpecies species : participatingSpecies) { this.allFurtherMutations.put(species, mutation); if (this.allActiveSpecies.contains(species)) { this.furtherMutations.put(species, mutation); } } IAllele[] template = mutation.getTemplate(); IAlleleSpecies speciesAllele = (IAlleleSpecies) template[0]; this.allResultantMutations.put(speciesAllele, mutation); this.resultantMutations.put(speciesAllele, mutation); } } }
private static String getMutationString(IMutation mutation) { String species0 = mutation.getAllele0().getUID(); String species1 = mutation.getAllele1().getUID(); String resultSpecies = mutation.getTemplate()[0].getUID(); return String.format(MUTATION_FORMAT, species0, species1, resultSpecies); }
for (IAllele allele : mutation.getTemplate()) { if (chromosome.getAlleleClass().isInstance(allele)) { results.put(chromosome.getName(), MetaGenome.getAlleleMeta(allele));
@Override public void registerMutation(IMutation mutation) { if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getTemplate()[0].getUID())) { return; } if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getAllele0().getUID())) { return; } if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getAllele1().getUID())) { return; } butterflyMutations.add((IButterflyMutation) mutation); }
@Override public void registerMutation(IMutation mutation) { if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getTemplate()[0].getUID())) { return; } if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getAllele0().getUID())) { return; } if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getAllele1().getUID())) { return; } beeMutations.add((IBeeMutation) mutation); }
@Override public void registerMutation(IMutation mutation) { if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getTemplate()[0].getUID())) { return; } if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getAllele0().getUID())) { return; } if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getAllele1().getUID())) { return; } treeMutations.add((ITreeMutation) mutation); }
@Override public void registerMutation(IMutation mutation) { if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getTemplate()[0].getUID())) { return; } if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getAllele0().getUID())) { return; } if (AlleleManager.alleleRegistry.isBlacklisted(mutation.getAllele1().getUID())) { return; } FlowerRoot.flowerMutations.add((IFlowerMutation) mutation); }
public void setSpecies(@Nullable final IAlleleSpecies species) { if (species != this.species) { this.species = species; this.movePercentage(-100.0f); final IBreedingSystem system = ((WindowAbstractDatabase) this.getTopParent()).getBreedingSystem(); final List<IMutation> discovered = system.getDiscoveredMutations(Window.get(this).getWorld(), Window.get(this).getUsername()); if (species != null) { if (this.type == Type.Resultant) { this.setOptions(system.getResultantMutations(species)); } else { final List<IMutation> mutations = system.getFurtherMutations(species); int i = 0; while (i < mutations.size()) { final IMutation mutation = mutations.get(i); if (!discovered.contains(mutation) && !((IAlleleSpecies) mutation.getTemplate()[0]).isCounted()) { mutations.remove(i); } else { ++i; } } this.setOptions(mutations); } } } }
public void drawMutationInfo(IMutation combination, IAllele species, int x, IBreedingTracker breedingTracker) { Map<String, ItemStack> iconStacks = combination.getRoot().getAlyzerPlugin().getIconStacks(); ItemStack partnerBee = iconStacks.get(combination.getPartner(species).getUID()); widgetManager.add(new ItemStackWidget(widgetManager, x, textLayout.getLineY(), partnerBee)); drawProbabilityArrow(combination, guiLeft + x + 18, guiTop + textLayout.getLineY() + 4, breedingTracker); IAllele result = combination.getTemplate()[EnumBeeChromosome.SPECIES.ordinal()]; ItemStack resultBee = iconStacks.get(result.getUID()); widgetManager.add(new ItemStackWidget(widgetManager, x + 33, textLayout.getLineY(), resultBee)); }
String mutationChanceKey = EnumMutateChance.rateChance(encoded.getBaseChance()).toString().toLowerCase(Locale.ENGLISH); String mutationChance = Translator.translateToLocal("for.researchNote.chance." + mutationChanceKey); String speciesResult = encoded.getTemplate()[root.getSpeciesChromosomeType().ordinal()].getAlleleName();
@Nullable private static IMutation getEncodedMutation(ISpeciesRoot root, NBTTagCompound compound) { IAllele allele0 = AlleleManager.alleleRegistry.getAllele(compound.getString("AL0")); IAllele allele1 = AlleleManager.alleleRegistry.getAllele(compound.getString("AL1")); if (allele0 == null || allele1 == null) { return null; } IAllele result = null; if (compound.hasKey("RST")) { result = AlleleManager.alleleRegistry.getAllele(compound.getString("RST")); } IMutation encoded = null; for (IMutation mutation : root.getCombinations(allele0)) { if (mutation.isPartner(allele1)) { if (result == null || mutation.getTemplate()[0].getUID().equals(result.getUID())) { encoded = mutation; break; } } } return encoded; }
@Override protected void onIndexUpdate(int index, IMutation mutation) { ISpeciesRoot root = mutation.getRoot(); // Collection<String> conditions = mutation.getSpecialConditions(); String conditionText; if (!conditions.isEmpty()) { conditionText = String.format("[%.0f%%]", mutation.getBaseChance()); } else { conditionText = String.format("%.0f%%", mutation.getBaseChance()); } selectedElement.label(conditionText, 58, 0, -1, 12, GuiElementAlignment.TOP_LEFT, GuiConstants.BLACK_STYLE).addTooltip(conditions); selectedElement.drawable(62, 6, MUTATION_ARROW).addTooltip(conditions); // selectedElement.item(1, 1, root.getMemberStack(mutation.getAllele0(), root.getTypeForMutation(0))); selectedElement.item(40, 1, root.getMemberStack(mutation.getAllele1(), root.getTypeForMutation(1))); selectedElement.item(85, 1, root.getMemberStack(mutation.getTemplate(), root.getTypeForMutation(2))); } }
@Nullable public IElementGroup createMutation(int x, int y, int width, int height, IMutation mutation, IAllele species, IBreedingTracker breedingTracker) { if (breedingTracker.isDiscovered(mutation)) { PaneLayout element = new PaneLayout(x, y, width, height); ISpeciesRoot speciesRoot = mutation.getRoot(); int speciesIndex = speciesRoot.getSpeciesChromosomeType().ordinal(); IDatabasePlugin plugin = mutation.getRoot().getSpeciesPlugin(); Map<String, ItemStack> iconStacks = plugin.getIndividualStacks(); ItemStack partner = iconStacks.get(mutation.getPartner(species).getUID()); IAllele resultAllele = mutation.getTemplate()[speciesIndex]; ItemStack result = iconStacks.get(resultAllele.getUID()); element.add(new ItemElement(0, 0, partner), new ItemElement(33, 0, result)); createProbabilityArrow(element, mutation, 18, 4, breedingTracker); return element; } // Do not display secret undiscovered mutations. if (mutation.isSecret()) { return null; } return createUnknownMutationGroup(x, y, width, height, mutation, breedingTracker); }
return BeeManager.beeRoot.templateAsChromosomes(mutation.getTemplate());
public static ResearchNote createMutationNote(GameProfile researcher, IMutation mutation) { NBTTagCompound compound = new NBTTagCompound(); compound.setString("ROT", mutation.getRoot().getUID()); compound.setString("AL0", mutation.getAllele0().getUID()); compound.setString("AL1", mutation.getAllele1().getUID()); compound.setString("RST", mutation.getTemplate()[0].getUID()); return new ResearchNote(researcher, MUTATION, compound); }
public ControlMutationItem(final ControlList<IMutation> controlList, final IMutation option, @Nullable final IAlleleSpecies species, final int y) { super(controlList, option, y); ControlIndividualDisplay firstIndividual = new ControlIndividualDisplay(this, 4, 4); ControlIndividualDisplay secondIndividual = new ControlIndividualDisplay(this, 44, 4); ControlIndividualDisplay resultIndividual = new ControlIndividualDisplay(this, 104, 4); ControlMutationSymbol addSymbol = new ControlMutationSymbol(this, 24, 4, 0); ControlMutationSymbol arrowSymbol = new ControlMutationSymbol(this, 64, 4, 1); final boolean isMaster = ((WindowAbstractDatabase) this.getTopParent()).isMaster(); final IBreedingSystem system = ((WindowAbstractDatabase) this.getTopParent()).getBreedingSystem(); if (this.getValue() != null) { final boolean isMutationDiscovered = system.isMutationDiscovered(this.getValue(), Window.get(this).getWorld(), Window.get(this).getUsername()); IAlleleSpecies allele = this.getValue().getAllele0(); EnumDiscoveryState state = ((isMaster || isMutationDiscovered) ? EnumDiscoveryState.SHOW : ((species.equals(allele)) ? EnumDiscoveryState.SHOW : EnumDiscoveryState.UNDETERMINED)); firstIndividual.setSpecies(allele, state); allele = this.getValue().getAllele1(); state = ((isMaster || isMutationDiscovered) ? EnumDiscoveryState.SHOW : ((species.equals(allele)) ? EnumDiscoveryState.SHOW : EnumDiscoveryState.UNDETERMINED)); secondIndividual.setSpecies(allele, state); allele = (IAlleleSpecies) this.getValue().getTemplate()[0]; state = ((isMaster || isMutationDiscovered) ? EnumDiscoveryState.SHOW : ((species.equals(allele)) ? EnumDiscoveryState.SHOW : EnumDiscoveryState.UNDETERMINED)); resultIndividual.setSpecies(allele, state); addSymbol.setValue(this.getValue()); arrowSymbol.setValue(this.getValue()); } } }
new ControlUnknownMutation(this, ox + dx, y, 44, 16); } else { new ControlFurtherMutation(this, ox + dx, y, mutation, specificChance, system, speciesCurrent, (IAlleleSpecies) speciesComb, (IAlleleSpecies) mutation.getTemplate()[0]);
IAlleleSpecies speciesResult = (IAlleleSpecies) encoded.getTemplate()[root.getSpeciesChromosomeType().ordinal()];