@Override public IAllele getPartner(IAllele allele) { if (species0.getUID().equals(allele.getUID())) { return species1; } else if (species1.getUID().equals(allele.getUID())) { return species0; } else { throw new IllegalArgumentException("Tried to get partner for allele that is not part of this mutation."); } }
@Override public IAllele getPartner(final IAllele allele) { if (this.allele0.getUID().equals(allele.getUID())) { return this.allele1; } return this.allele0; }
@Override public void registerTemplate(IAllele[] template) { Preconditions.checkNotNull(template, "Tried to register null template"); Preconditions.checkArgument(template.length > 0, "Tried to register empty template"); registerTemplate(template[0].getUID(), template); }
@Override public final boolean isBlacklisted(final IAllele allele) { return AlleleManager.alleleRegistry.isBlacklisted(allele.getUID()); }
@Override public void registerTemplate(IAllele[] template) { registerTemplate(template[0].getUID(), template); }
@Override public List<IMutation> getCombinations(IAlleleSpecies parentSpecies0, IAlleleSpecies parentSpecies1, boolean shuffle) { List<IMutation> combinations = new ArrayList<>(); String parentSpecies1UID = parentSpecies1.getUID(); for (IMutation mutation : getMutations(shuffle)) { if (mutation.isPartner(parentSpecies0)) { IAllele partner = mutation.getPartner(parentSpecies0); if (partner.getUID().equals(parentSpecies1UID)) { combinations.add(mutation); } } } return combinations; }
@Override public void registerAllele(IAllele allele, IChromosomeType... chromosomeTypes) { addValidAlleleTypes(allele, chromosomeTypes); alleleMap.put(allele.getUID(), allele); if (allele instanceof IAlleleSpecies) { IClassification branch = ((IAlleleSpecies) allele).getBranch(); branch.addMemberSpecies((IAlleleSpecies) allele); } for (IAlleleHandler handler : this.alleleHandlers) { handler.onRegisterAllele(allele); } }
@Override public String getAlleleName(final IChromosomeType chromosome, final IAllele allele) { if (chromosome == EnumTreeChromosome.GIRTH) { final IAlleleInteger alleleInteger = (IAlleleInteger) allele; return alleleInteger.getValue() + "x" + alleleInteger.getValue(); } if (chromosome == EnumTreeChromosome.FRUITS && allele.getUID().contains(".")) { final IFruitProvider provider = ((IAlleleFruit) allele).getProvider(); return (provider.getProducts().isEmpty()) ? I18N.localise("binniecore.allele.none") : provider.getProducts().keySet().iterator().next().getDisplayName(); } return super.getAlleleName(chromosome, allele); }
@Override public ItemStack getDecorativeLeaves() { IAllele species; if (treeSpecies == null) { species = TreeDefinition.Oak.getTemplate()[EnumTreeChromosome.SPECIES.ordinal()]; } else { species = treeSpecies; } return ModuleWood.getDecorativeLeaves(species.getUID()); } }
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); }
@Override public ItemStack getDecorativeLeaves() { IAllele allele = treeSpecies; if (allele == null) { allele = TreeDefinition.Oak.getTemplate()[EnumTreeChromosome.SPECIES.ordinal()]; } return ModuleArboriculture.getBlocks().getDecorativeLeaves(allele.getUID()); }
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)); }
@Override public NBTTagCompound writeToNBT(final NBTTagCompound nbt) { nbt.setString("allele", this.allele.getUID()); nbt.setString("root", this.root.getUID()); nbt.setByte("chromo", (byte) this.chromosome.ordinal()); return nbt; }
@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 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); }