@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; }
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)); }
private void drawMutationIcon(IMutation combination, IAlleleSpecies species, int x) { GuiUtil.drawItemStack(this, iconStacks.get(combination.getPartner(species).getUID()), guiLeft + x, guiTop + textLayout.getLineY()); int line = 48; int column; EnumMutateChance chance = EnumMutateChance.rateChance(combination.getBaseChance()); if (chance == EnumMutateChance.HIGHEST) { line += 16; column = 228; } else if (chance == EnumMutateChance.HIGHER) { line += 16; column = 212; } else if (chance == EnumMutateChance.HIGH) { line += 16; column = 196; } else if (chance == EnumMutateChance.NORMAL) { line += 0; column = 228; } else if (chance == EnumMutateChance.LOW) { line += 0; column = 212; } else { line += 0; column = 196; } bindTexture(textureFile); drawTexturedModalRect(guiLeft + x, guiTop + textLayout.getLineY(), column, line, 16, 16); }
@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); }
y += 10; for (IMutation mutation : further) { IAllele speciesComb = mutation.getPartner(speciesCurrent); float specificChance = getSpecificChance(ind, mutation, system); if (!isMaster && !isKnown(system, mutation)) {