@Override public Map<ItemStack, Float> getProducts() { return genome.getFruitProvider().getProducts(); }
public ItemStack getPickBlock() { Map<ItemStack, Float> products = allele.getProvider().getProducts(); ItemStack pickBlock = ItemStack.EMPTY; Float maxChance = 0.0f; for (Map.Entry<ItemStack, Float> product : products.entrySet()) { if (maxChance < product.getValue()) { maxChance = product.getValue(); pickBlock = product.getKey().copy(); } } pickBlock.setCount(1); return pickBlock; }
@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 Collection<IAlleleSpecies> getTreesThatBearFruit(final ItemStack fruit, final boolean master, final World world, final GameProfile player) { final Collection<IAlleleSpecies> set = master ? this.getAllSpecies() : this.getDiscoveredSpecies(world, player); final List<IAlleleSpecies> found = new ArrayList<>(); for (final IAlleleSpecies species : set) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; final ITreeGenome genome = (ITreeGenome) this.getSpeciesRoot().templateAsGenome(this.getSpeciesRoot().getTemplate(tSpecies)); for (final ItemStack fruit2 : genome.getFruitProvider().getProducts().keySet()) { if (fruit2.isItemEqual(fruit)) { found.add(species); } } } return found; }
@Override public Collection<IAlleleSpecies> getTreesThatCanBearFruit(final ItemStack fruit, final boolean master, final World world, final GameProfile player) { final Collection<IAlleleSpecies> set = master ? this.getAllSpecies() : this.getDiscoveredSpecies(world, player); final List<IAlleleSpecies> found = new ArrayList<>(); final Set<IFruitFamily> providers = new HashSet<>(); for (final IAlleleSpecies species : set) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; final ITreeGenome genome = (ITreeGenome) this.getSpeciesRoot().templateAsGenome(this.getSpeciesRoot().getTemplate(tSpecies)); for (final ItemStack fruit2 : genome.getFruitProvider().getProducts().keySet()) { if (fruit2.isItemEqual(fruit)) { providers.add(genome.getFruitProvider().getFamily()); } } } for (final IAlleleSpecies species : set) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; for (final IFruitFamily family : providers) { if (tSpecies.getSuitableFruit().contains(family)) { found.add(species); break; } } } return found; }
@Override public float getResearchSuitability(ItemStack itemstack) { if (itemstack.isEmpty()) { return 0f; } List<IFruitFamily> suitableFruit = getSuitableFruit(); for (IFruitFamily fruitFamily : suitableFruit) { Collection<IFruitProvider> fruitProviders = TreeManager.treeRoot.getFruitProvidersForFruitFamily(fruitFamily); for (IFruitProvider fruitProvider : fruitProviders) { Map<ItemStack, Float> products = fruitProvider.getProducts(); for (ItemStack stack : products.keySet()) { if (stack.isItemEqual(itemstack)) { return 1.0f; } } Map<ItemStack, Float> specialtyChances = fruitProvider.getSpecialty(); for (ItemStack stack : specialtyChances.keySet()) { if (stack.isItemEqual(itemstack)) { return 1.0f; } } } } return super.getResearchSuitability(itemstack); }
@Override public void postInit() { IFarmProperties orchardFarm = FarmRegistry.getInstance().getProperties(ForestryFarmIdentifier.ORCHARD); if (orchardFarm != null && ModuleHelper.isEnabled(ForestryModuleUids.ARBORICULTURE)) { ITreeRoot treeRoot = TreeManager.treeRoot; if (treeRoot != null) { for (ITree tree : treeRoot.getIndividualTemplates()) { IFruitProvider fruitProvider = tree.getGenome().getFruitProvider(); if (fruitProvider != AlleleFruits.fruitNone.getProvider()) { orchardFarm.addGermlings(treeRoot.getMemberStack(tree, EnumGermlingType.SAPLING)); orchardFarm.addProducts(fruitProvider.getProducts().keySet()); orchardFarm.addProducts(fruitProvider.getSpecialty().keySet()); } } } } }
@Override public final void calculateArrays() { super.calculateArrays(); for (final IAlleleSpecies species : this.allActiveSpecies) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; final ITreeGenome genome = (ITreeGenome) this.getSpeciesRoot().templateAsGenome(this.getSpeciesRoot().getTemplate(tSpecies)); IAlleleTreeSpecies treeSpecies = genome.getPrimary(); final ItemStack wood = treeSpecies.getWoodProvider().getWoodStack(); if (!wood.isEmpty()) { this.allWoods.add(wood); } /*for (final ItemStack wood : tSpecies.getRoot().templateAsIndividual(getSpeciesRoot().getTemplate(tSpecies.getUID())).getProduceList()) { this.allWoods.add(wood); }*/ this.allFruits.addAll(genome.getFruitProvider().getProducts().keySet()); } }
for (IAllele a : fruitAlleles) { if (((IAlleleFruit) a).getProvider().getFamily() == fam) { stacks.addAll(((IAlleleFruit) a).getProvider().getProducts().keySet()); stacks.addAll(((IAlleleFruit) a).getProvider().getSpecialty().keySet()); try {
@Override public void onSyncBreedingTracker(final IBreedingTracker tracker) { this.discoveredFruits.clear(); this.discoveredWoods.clear(); for (final IAlleleSpecies species : this.getDiscoveredSpecies(tracker)) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; final ITreeGenome genome = (ITreeGenome) this.getSpeciesRoot().templateAsGenome(this.getSpeciesRoot().getTemplate(tSpecies)); IAlleleTreeSpecies treeSpecies = genome.getPrimary(); final ItemStack wood = treeSpecies.getWoodProvider().getWoodStack(); if (!wood.isEmpty()) { this.discoveredWoods.add(wood); } /*for (final ItemStack wood : tSpecies.getRoot().templateAsIndividual(getSpeciesRoot().getTemplate(tSpecies.getUID())).getProduceList()) { this.discoveredWoods.add(wood); }*/ this.discoveredFruits.addAll(genome.getFruitProvider().getProducts().keySet()); } }
Map<ItemStack, Float> products = fruitProvider.getProducts(); ItemStack log = treeSpecies.getWoodProvider().getWoodStack(); if (log.isEmpty()) {