@Override public String getDisplayName() { return getGenome().getPrimary().getAlleleName(); }
@Override public String getIdent() { return getGenome().getPrimary().getUID(); }
@Override public boolean hasEffect() { return getGenome().getPrimary().hasEffect(); }
@Override public boolean isSecret() { return getGenome().getPrimary().isSecret(); }
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 registerPickup(IIndividual individual) { ISpeciesRoot speciesRoot = individual.getGenome().getPrimary().getRoot(); if (!speciesRoot.getUID().equals(speciesRootUID())) { return; } if (!individual.isPureBred(EnumBeeChromosome.SPECIES)) { return; } if (!speciesRoot.getCombinations(individual.getGenome().getPrimary()).isEmpty()) { return; } registerSpecies(individual.getGenome().getPrimary()); }
private static ImmutableMap<IAlleleSpecies, ItemStack> createEntries() { ImmutableMap.Builder<IAlleleSpecies, ItemStack> entries = ImmutableMap.builder(); for (ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) { for (IIndividual individual : root.getIndividualTemplates()) { IAlleleSpecies species = individual.getGenome().getPrimary(); ItemStack itemStack = root.getMemberStack(root.templateAsIndividual(root.getTemplate(species)), root.getIconType()); entries.put(species, itemStack); } } return entries.build(); } }
@Nullable @Override public String getCreatorModId(ItemStack itemStack) { IIndividual individual = getIndividual(itemStack); if (individual != null) { IAlleleSpecies species = individual.getGenome().getPrimary(); return species.getModID(); } return super.getCreatorModId(itemStack); }
public SpeciesDisplayHelper(ISpeciesRoot root) { this.root = root; ISpeciesType type = root.getIconType(); for (IIndividual individual : root.getIndividualTemplates()) { ItemStack itemStack = root.getMemberStack(individual, type); iconStacks.put(type, individual.getGenome().getPrimary().getUID(), itemStack); } }
@Override public int getColorFromItemstack(ItemStack stack, int tintIndex) { if (stack.getTagCompound() != null) { IIndividual individual = AlleleManager.alleleRegistry.getIndividual(stack); if (individual != null) { IAlleleSpecies species = individual.getGenome().getPrimary(); return species.getSpriteColour(tintIndex); } } return 0xffffff; }
public int getTokenColour() { if (tokenIndividual == null || !isVisible()) { return 0xffffff; } int iconColor = tokenIndividual.getGenome().getPrimary().getSpriteColour(0); if (state == State.MATCHED) { return ColourUtil.multiplyRGBComponents(iconColor, 0.7f); } else { return iconColor; } }
@Override public void registerBirth(IIndividual individual) { registerSpecies(individual.getGenome().getPrimary()); registerSpecies(individual.getGenome().getSecondary()); }
@Override public NBTTagCompound writeToNBT(NBTTagCompound nbttagcompound) { nbttagcompound.setInteger("state", state.ordinal()); if (tokenIndividual != null) { nbttagcompound.setString("tokenSpecies", tokenIndividual.getGenome().getPrimary().getUID()); } return nbttagcompound; }
@Override public void mateWith(IIndividual individual) { if (getFlower() == null || !(individual instanceof IFlower)) { return; } IAlleleFlowerSpecies primary = (IAlleleFlowerSpecies) individual.getGenome().getPrimary(); IAlleleFlowerSpecies primary2 = getFlower().getGenome().getPrimary(); if (primary == primary2 || world.rand.nextInt(4) == 0) { getFlower().mate((IFlower) individual); world.markBlockRangeForRenderUpdate(pos, pos); } }
@Override public void writeData(PacketBufferForestry data) { data.writeEnum(state, State.VALUES); if (tokenIndividual != null) { data.writeBoolean(true); data.writeString(tokenIndividual.getGenome().getPrimary().getUID()); } else { data.writeBoolean(false); } }
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(); }
@Override public void getTooltip(Tooltip tooltip, ITooltipFlag tooltipFlag) { ItemStack stack = getItemStack(); if (stack.isEmpty()) { return; } IIndividual ind = AlleleManager.alleleRegistry.getIndividual(stack); if (ind == null) { return; } tooltip.add(ind.getGenome().getPrimary().getAlleleName()); } }
@Override public boolean canSlotAccept(int slotIndex, ItemStack itemStack) { if (slotIndex >= SLOT_INPUT_1 && slotIndex < SLOT_INPUT_1 + tile.getGame().getSampleSize(SLOTS_INPUT_COUNT)) { ItemStack specimen = getStackInSlot(SLOT_ANALYZE); if (specimen.isEmpty()) { return false; } IIndividual individual = AlleleManager.alleleRegistry.getIndividual(specimen); return individual != null && individual.getGenome().getPrimary().getResearchSuitability(itemStack) > 0; } return slotIndex == SLOT_ANALYZE && (AlleleManager.alleleRegistry.isIndividual(itemStack) || GeneticsUtil.getGeneticEquivalent(itemStack) != null); }
private void processTurnResult(GameProfile gameProfile) { if (getGame().getStatus() != EscritoireGame.Status.SUCCESS) { return; } IIndividual individual = AlleleManager.alleleRegistry.getIndividual(getStackInSlot(InventoryEscritoire.SLOT_ANALYZE)); if (individual == null) { return; } IAlleleSpecies species = individual.getGenome().getPrimary(); for (ItemStack itemstack : species.getResearchBounty(world, gameProfile, individual, game.getBountyLevel())) { InventoryUtil.addStack(getInternalInventory(), itemstack, InventoryEscritoire.SLOT_RESULTS_1, InventoryEscritoire.SLOTS_RESULTS_COUNT, true); } }
@Override @SideOnly(Side.CLIENT) public void onRenderBackground(int guiWidth, int guiHeight) { WindowAnalyst window = (WindowAnalyst) itemScrollList.analystPageDatabase.getTopParent(); if (window.getIndividual() != null && window.getIndividual().getGenome().getPrimary() == species) { RenderUtil.setColour(15658734); CraftGUI.RENDER.texture(CraftGUITexture.TAB_SOLID, getArea().outset(1)); RenderUtil.setColour(itemScrollList.analystPageDatabase.getColor()); CraftGUI.RENDER.texture(CraftGUITexture.TAB_OUTLINE, getArea().outset(1)); } else if (calculateIsMouseOver()) { RenderUtil.setColour(15658734); CraftGUI.RENDER.texture(CraftGUITexture.TAB_SOLID, getArea().outset(1)); } super.onRenderBackground(guiWidth, guiHeight); } }