@Override public int compare(final IAllele o1, final IAllele o2) { if (o1 == null || o2 == null) { throw new NullPointerException("Allele is null!"); } if (o1 instanceof IAlleleFloat && o2 instanceof IAlleleFloat) { return Float.compare(((IAlleleFloat) o1).getValue(), ((IAlleleFloat) o2).getValue()); } if (o1.getClass().equals(IAlleleInteger.class) && o2.getClass().equals(IAlleleInteger.class)) { return Integer.compare(((IAlleleInteger) o1).getValue(), ((IAlleleInteger) o2).getValue()); } if (o1.getAlleleName() != null && o2.getAlleleName() != null) { return o1.getAlleleName().compareTo(o2.getAlleleName()); } return o1.getUID().compareTo(o2.getUID()); } }
public final void drawChromosomeRow(String chromosomeName, IIndividual individual, IChromosomeType chromosome) { IAllele active = individual.getGenome().getActiveAllele(chromosome); IAllele inactive = individual.getGenome().getInactiveAllele(chromosome); textLayout.drawRow(chromosomeName, active.getAlleleName(), inactive.getAlleleName(), ColourProperties.INSTANCE.get("gui.screen"), getColorCoding(active.isDominant()), getColorCoding(inactive.isDominant())); }
private static String[] getSpecies() { List<String> species = new ArrayList<>(); for (IAllele allele : AlleleManager.alleleRegistry.getRegisteredAlleles().values()) { if (allele instanceof IAlleleTreeSpecies) { species.add(allele.getAlleleName().replaceAll("\\s", "")); } } return species.toArray(new String[species.size()]); }
IAlleleTolerance humidToleranceAllele = (IAlleleTolerance) getGenome().getActiveAllele(EnumBeeChromosome.HUMIDITY_TOLERANCE); String unlocalizedCustomSpeed = "for.tooltip.worker." + speedAllele.getUnlocalizedName().replaceAll("(.*)\\.", ""); String speed; if (Translator.canTranslateToLocal(unlocalizedCustomSpeed)) { speed = Translator.translateToLocal(unlocalizedCustomSpeed); } else { speed = speedAllele.getAlleleName() + ' ' + Translator.translateToLocal("for.gui.worker"); String lifespan = genome.getActiveAllele(EnumBeeChromosome.LIFESPAN).getAlleleName() + ' ' + Translator.translateToLocal("for.gui.life"); String tempTolerance = TextFormatting.GREEN + "T: " + AlleleManager.climateHelper.toDisplay(genome.getPrimary().getTemperature()) + " / " + tempToleranceAllele.getAlleleName(); String humidTolerance = TextFormatting.GREEN + "H: " + AlleleManager.climateHelper.toDisplay(genome.getPrimary().getHumidity()) + " / " + humidToleranceAllele.getAlleleName();
@Override public IAllele getInactiveAllele() { if (!secondary.isDominant()) { return secondary; } if (!primary.isDominant()) { return primary; } // Leaves only the case of both being dominant return secondary; }
@SideOnly(Side.CLIENT) public void drawChromosome(GuiScreen gui, EnumFlowerChromosome chromosome, IFlower flower) { drawLine(gui, COLUMN_0, I18N.localise(String.format("%s.flowers.chromosome.%s.short", Botany.instance.getModId(), chromosome.getName())), 0xEEEEEE); drawLine(gui, COLUMN_1, I18N.localise(flower.getGenome().getActiveAllele(chromosome).getUnlocalizedName()), 0xEEEEEE); drawLine(gui, COLUMN_2, I18N.localise(flower.getGenome().getInactiveAllele(chromosome).getUnlocalizedName()), 0xEEEEEE); lastTopOffset += ROW_SIZE; }
/** * @return Localized short, human-readable identifier used in tooltips and beealyzer. * @apiNote This can't be named "getName" or it can conflict during obfuscation. https://github.com/md-5/SpecialSource/issues/12 * @since Forestry 5.3.4 */ default String getAlleleName() { return getName(); }
private static String[] getSpecies() { List<String> species = new ArrayList<>(); for (IAllele allele : AlleleManager.alleleRegistry.getRegisteredAlleles().values()) { if (allele instanceof IAlleleBeeSpecies) { species.add(allele.getAlleleName()); } } return species.toArray(new String[species.size()]); }
@Override public IAllele getActiveAllele() { if (primary.isDominant()) { return primary; } if (secondary.isDominant()) { return secondary; } // Leaves only the case of both being recessive return primary; }
data.put("id", allele.getUID()); data.put("displayName", allele.getAlleleName()); data.put("authority", species.getAuthority()); data.put("binomial", species.getBinomial()); return ((IAlleleTolerance) allele).getValue().toString().toLowerCase(Locale.ENGLISH); } else { return allele.getUID();
@Override public final void addLine(String chromosomeName, IChromosomeType chromosome) { addLine(chromosomeName, (allele, b) -> allele.getAlleleName(), chromosome); }
for (IAllele allele2 : new IAllele[]{primary2, secondary2}) { List<IAllele> alleles = new LinkedList<>(); if (allele1.isDominant() && !allele2.isDominant()) { alleles.add(allele1); } else if (allele2.isDominant() && !allele1.isDominant()) { alleles.add(allele2); } else { text.append(allele3.getAlleleName()).append(": ").append(25.0f / alleles.size()).append("%\n"); new ControlText(this, new Area(ControlPunnett.BOX_WIDTH, 0, ControlPunnett.BOX_WIDTH, ControlPunnett.BOX_HEIGHT), '\n' + primary1.getAlleleName(), TextJustification.TOP_CENTER).setColor(11184810); new ControlText(this, new Area(ControlPunnett.BOX_WIDTH * 2, 0, ControlPunnett.BOX_WIDTH, ControlPunnett.BOX_HEIGHT), '\n' + secondary1.getAlleleName(), TextJustification.TOP_CENTER).setColor(11184810); new ControlText(this, new Area(0, ControlPunnett.BOX_HEIGHT, ControlPunnett.BOX_WIDTH, ControlPunnett.BOX_HEIGHT), primary2.getAlleleName(), TextJustification.TOP_CENTER).setColor(11184810); new ControlText(this, new Area(0, ControlPunnett.BOX_HEIGHT * 2, ControlPunnett.BOX_WIDTH, ControlPunnett.BOX_HEIGHT), primary2.getAlleleName(), TextJustification.TOP_CENTER).setColor(11184810);
@Override public void addLine(String leftText, Function<Boolean, String> toText, IChromosomeType chromosome) { IGenome genome = getGenome(); IAllele activeAllele = genome.getActiveAllele(chromosome); IAllele inactiveAllele = genome.getInactiveAllele(chromosome); if (mode == DatabaseMode.BOTH) { addLine(leftText, toText.apply(true), toText.apply(false), activeAllele.isDominant(), inactiveAllele.isDominant()); } else { boolean active = mode == DatabaseMode.ACTIVE; IAllele allele = active ? activeAllele : inactiveAllele; addLine(leftText, toText.apply(active), allele.isDominant()); } }
@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 String getAlleleName(final IChromosomeType chromosome, final IAllele allele) { if (allele instanceof IAlleleBoolean) { IAlleleBoolean alleleBoolean = (IAlleleBoolean) allele; return alleleBoolean.getValue() ? I18N.localise("binniecore.allele.true") : I18N.localise("binniecore.allele.false"); } if (Objects.equals(allele.getAlleleName(), "for.gui.maximum")) { return I18N.localise("binniecore.allele.fertility.maximum"); } return allele.getAlleleName(); }
textLayout.newLine(); guiAlyzer.drawRow(Translator.translateToLocal("for.gui.size"), butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.SIZE).getAlleleName(), butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.SIZE).getAlleleName(), butterfly, EnumButterflyChromosome.SPEED); textLayout.newLine(); guiAlyzer.drawRow(Translator.translateToLocal("for.gui.lifespan"), butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.LIFESPAN).getAlleleName(), butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.LIFESPAN).getAlleleName(), butterfly, EnumButterflyChromosome.LIFESPAN); textLayout.newLine(); guiAlyzer.drawRow(Translator.translateToLocal("for.gui.speed"), butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.SPEED).getAlleleName(), butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.SPEED).getAlleleName(), butterfly, EnumButterflyChromosome.SPEED); textLayout.newLine(); .isDominant()), 8); guiAlyzer.drawFertilityInfo(((IAlleleInteger) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.FERTILITY)).getValue(), GuiAlyzer.COLUMN_2, guiAlyzer.getColorCoding(butterfly .getGenome().getInactiveAllele(EnumButterflyChromosome.FERTILITY).isDominant()), 8); butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.EFFECT).getAlleleName(), butterfly, EnumButterflyChromosome.EFFECT);
@SuppressWarnings("unchecked") private <A extends IAllele> void addAlleleRow(String chromosomeName, BiFunction<A, Boolean, String> toString, IChromosomeType chromosome, @Nullable Boolean dominant) { IGenome genome = getGenome(); A activeAllele = (A) genome.getActiveAllele(chromosome); A inactiveAllele = (A) genome.getInactiveAllele(chromosome); if (mode == DatabaseMode.BOTH) { addLine(chromosomeName, toString.apply(activeAllele, true), toString.apply(inactiveAllele, false), dominant != null ? dominant : activeAllele.isDominant(), dominant != null ? dominant : inactiveAllele.isDominant()); } else { boolean active = mode == DatabaseMode.ACTIVE; A allele = active ? activeAllele : inactiveAllele; addLine(chromosomeName, toString.apply(allele, active), dominant != null ? dominant : allele.isDominant()); } }
@Override public IAllele getPartner(final IAllele allele) { if (this.allele0.getUID().equals(allele.getUID())) { return this.allele1; } return this.allele0; }