private static int getTokenCount(IGenome genome) { IAlleleSpecies species1 = genome.getPrimary(); IAlleleSpecies species2 = genome.getSecondary(); int tokenCount = species1.getComplexity() + species2.getComplexity(); if (tokenCount % 2 != 0) { tokenCount = Math.round((float) tokenCount / 2) * 2; } if (tokenCount > TOKEN_COUNT_MAX) { tokenCount = TOKEN_COUNT_MAX; } else if (tokenCount < TOKEN_COUNT_MIN) { tokenCount = TOKEN_COUNT_MIN; } return tokenCount; }
@Override public void registerBirth(IIndividual individual) { registerSpecies(individual.getGenome().getPrimary()); registerSpecies(individual.getGenome().getSecondary()); }
String secondarySpeciesUid = genome.getSecondary().getUID();
public final void drawSpeciesRow(String text0, IIndividual individual, IChromosomeType chromosome, @Nullable String customPrimaryName, @Nullable String customSecondaryName) { IAlleleSpecies primary = individual.getGenome().getPrimary(); IAlleleSpecies secondary = individual.getGenome().getSecondary(); textLayout.drawLine(text0, textLayout.column0); int columnwidth = textLayout.column2 - textLayout.column1 - 2; Map<String, ItemStack> iconStacks = chromosome.getSpeciesRoot().getAlyzerPlugin().getIconStacks(); GuiUtil.drawItemStack(this, iconStacks.get(primary.getUID()), guiLeft + textLayout.column1 + columnwidth - 20, guiTop + 10); GuiUtil.drawItemStack(this, iconStacks.get(secondary.getUID()), guiLeft + textLayout.column2 + columnwidth - 20, guiTop + 10); String primaryName = customPrimaryName == null ? primary.getAlleleName() : customPrimaryName; String secondaryName = customSecondaryName == null ? secondary.getAlleleName() : customSecondaryName; drawSplitLine(primaryName, textLayout.column1, columnwidth, individual, chromosome, false); drawSplitLine(secondaryName, textLayout.column2, columnwidth, individual, chromosome, true); textLayout.newLine(); }
@Nonnull private ItemStack setItem(int slot, @Nonnull ItemStack itemStack) { if (slot < 0 || slot >= items.size()) { return ItemStack.EMPTY; } ItemStack prevStack = items.get(slot); if (!prevStack.isEmpty()) { this.primarySpeciesUids[slot] = null; this.secondarySpeciesUids[slot] = null; } items.set(slot, itemStack); ISpeciesRoot speciesRoot = AlleleManager.alleleRegistry.getSpeciesRoot(itemStack); if (speciesRoot != null) { IIndividual member = speciesRoot.getMember(itemStack); if (member != null) { IGenome genome = member.getGenome(); primarySpeciesUids[slot] = genome.getPrimary().getUID(); secondarySpeciesUids[slot] = genome.getSecondary().getUID(); } } return prevStack; }
@Override protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { super.drawGuiContainerBackgroundLayer(f, i, j); String header = Translator.translateToLocal("for.gui.page") + " " + (pageCurrent + 1) + "/" + pageMax; fontRenderer.drawString(header, guiLeft + 95 + textLayout.getCenteredOffset(header, 98), guiTop + 10, ColourProperties.INSTANCE.get("gui.title")); IIndividual individual = getIndividualAtPosition(i, j); if (individual == null) { displayBreedingStatistics(10); } if (individual != null) { RenderHelper.enableGUIStandardItemLighting(); textLayout.startPage(); displaySpeciesInformation(true, individual.getGenome().getPrimary(), iconStacks.get(individual.getIdent()), 10); if (!individual.isPureBred(EnumTreeChromosome.SPECIES)) { displaySpeciesInformation(individual.isAnalyzed(), individual.getGenome().getSecondary(), iconStacks.get(individual.getGenome().getSecondary().getUID()), 10); } textLayout.endPage(); } }
@Override public void handleMouseClick(int mouseX, int mouseY, int mouseButton) { ItemStack stack = gui.mc.player.inventory.getItemStack(); if (!stack.isEmpty()) { IIndividual individual = AlleleManager.alleleRegistry.getIndividual(stack); if (individual != null) { IGenome genome = individual.getGenome(); onSelect(mouseButton == 0 ? genome.getPrimary() : genome.getSecondary()); return; } } if (mouseButton == 1) { onSelect(null); } else { SoundUtil.playButtonClick(); gui.onModuleClick(this); } }
public boolean isValid(EnumFacing facing, ItemStack itemStack, IFilterData filterData) { IFilterRuleType rule = getRule(facing); if (rule == DefaultFilterRuleType.CLOSED) { return false; } if (rule == DefaultFilterRuleType.ITEM && !filterData.isPresent()) { return true; } String requiredRoot = rule.getRootUID(); if (requiredRoot != null && (!filterData.isPresent() || !filterData.getRoot().getUID().equals(requiredRoot))) { return false; } if (rule == DefaultFilterRuleType.ANYTHING || rule.isValid(itemStack, filterData)) { if (filterData.isPresent()) { IIndividual ind = filterData.getIndividual(); IGenome genome = ind.getGenome(); IAllele active = genome.getPrimary(); IAllele inactive = genome.getSecondary(); return isValidAllelePair(facing, active.getUID(), inactive.getUID()); } return true; } return false; }
IBreedingTracker breedingTracker = speciesRoot.getBreedingTracker(player.world, player.getGameProfile()); breedingTracker.registerSpecies(individual.getGenome().getPrimary()); breedingTracker.registerSpecies(individual.getGenome().getSecondary());
IBreedingTracker breedingTracker = speciesRoot.getBreedingTracker(player.world, player.getGameProfile()); breedingTracker.registerSpecies(individual.getGenome().getPrimary()); breedingTracker.registerSpecies(individual.getGenome().getSecondary());