@Override public boolean canBearFruit() { return genome.getPrimary().getSuitableFruit().contains(genome.getFruitProvider().getFamily()); }
@Override public boolean allowsFruitBlocks() { IFruitProvider provider = getGenome().getFruitProvider(); if (!provider.requiresFruitBlocks()) { return false; } Collection<IFruitFamily> suitable = genome.getPrimary().getSuitableFruit(); return suitable.contains(provider.getFamily()); }
public static void init() { for (AlleleETFruitDefinition definition : values()) { definition.addProducts(); } AlleleManager.alleleRegistry.registerFruitFamily(BERRY); AlleleManager.alleleRegistry.registerFruitFamily(CITRUS); if (ConfigurationMain.alterLemon) { try { final IAlleleFruit lemon = (IAlleleFruit) AlleleManager.alleleRegistry.getAllele("forestry.fruitLemon"); final FruitProviderNone prov = (FruitProviderNone) lemon.getProvider(); final Field familyField = FruitProviderNone.class.getDeclaredField("family"); final Field modifiersField = Field.class.getDeclaredField("modifiers"); familyField.setAccessible(true); modifiersField.setAccessible(true); modifiersField.setInt(familyField, familyField.getModifiers() & 0xFFFFFFEF); familyField.set(prov, CITRUS); } catch (IllegalAccessException | NoSuchFieldException e) { throw new RuntimeException(e); } } IBreedingSystem treeSystem = Binnie.GENETICS.getSystem(TreeManager.treeRoot); for (IAlleleSpecies tree : treeSystem.getAllSpecies()) { if (tree instanceof AlleleTreeSpecies && ((IAlleleTreeSpecies) tree).getSuitableFruit().contains(PRUNES)) { ((AlleleTreeSpecies) tree).addFruitFamily(CITRUS); } } }
@Override public boolean trySpawnFruitBlock(World world, Random rand, BlockPos pos) { IFruitProvider provider = getGenome().getFruitProvider(); Collection<IFruitFamily> suitable = genome.getPrimary().getSuitableFruit(); return suitable.contains(provider.getFamily()) && provider.trySpawnFruitBlock(getGenome(), world, rand, pos); }
@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; }
y += 12; Collection<IAllele> fruitAlleles = Binnie.GENETICS.getChromosomeMap(TreeManager.treeRoot).get(EnumTreeChromosome.FRUITS); for (IFruitFamily fam : ind.getGenome().getPrimary().getSuitableFruit()) { Collection<ItemStack> stacks = new UniqueItemStackSet(); for (IAllele a : fruitAlleles) {
List<IFruitFamily> families0 = new ArrayList<>(tree.getGenome().getPrimary().getSuitableFruit()); List<IFruitFamily> families1 = new ArrayList<>(tree.getGenome().getSecondary().getSuitableFruit()); if (!tree.getGenome().getSecondary().getSuitableFruit().contains(fruit1.getProvider().getFamily()) && fruit1 != AlleleFruits.fruitNone) { strike = TextFormatting.STRIKETHROUGH.toString();
List<IFruitFamily> families = new ArrayList<>(tree.getGenome().getPrimary().getSuitableFruit()); if (!species.getSuitableFruit().contains(fruit.getProvider().getFamily()) && fruit != AlleleFruits.fruitNone) { strike = TextFormatting.STRIKETHROUGH.toString();