public ExtraTreeMutation(final IAlleleSpecies allele0, final IAlleleSpecies allele1, final IAlleleSpecies result, final int chance) { this(allele0, allele1, TreeManager.treeRoot.getTemplate(result), chance); }
private static ITree getTree(String speciesUID) { IAllele[] treeTemplate = TreeManager.treeRoot.getTemplate(speciesUID); Preconditions.checkArgument(treeTemplate != null, "There is no tree template for speciesUID %s", speciesUID); return TreeManager.treeRoot.templateAsIndividual(treeTemplate); }
IAllele[] template = TreeManager.treeRoot.getTemplate(species);
@Override public Collection<IAlleleSpecies> getTreesThatHaveWood(final ItemStack wood, 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) { IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; ITreeGenome genome = TreeManager.treeRoot.templateAsGenome(TreeManager.treeRoot.getTemplate(tSpecies)); IAlleleTreeSpecies treeSpecies = genome.getPrimary(); final ItemStack woodStack = treeSpecies.getWoodProvider().getWoodStack(); if (woodStack.isItemEqual(wood)) { found.add(species); } } return found; }
private static void generateBiomeCache(World world, Random rand) { for (IAlleleTreeSpecies species : getSpecies()) { IAllele[] template = TreeManager.treeRoot.getTemplate(species); ITreeGenome genome = TreeManager.treeRoot.templateAsGenome(template); ITree tree = TreeManager.treeRoot.getTree(world, genome); String treeUID = genome.getPrimary().getUID(); IGrowthProvider growthProvider = species.getGrowthProvider(); for (Biome biome : Biome.REGISTRY) { Set<ITree> trees = biomeCache.computeIfAbsent(biome.getRegistryName(), k -> new HashSet<>()); if (growthProvider.isBiomeValid(tree, biome) && TreeConfig.isValidBiome(treeUID, biome)) { trees.add(tree); } } } } }
IAllele[] template = TreeManager.treeRoot.getTemplate(chosenSpecies); IIndividual individual = TreeManager.treeRoot.templateAsIndividual(template);
private static Collection<IAlleleSpecies> getTreesThatMakePlanks(ItemStack fruit, boolean master, World world, GameProfile player) { if (fruit == null) { return new ArrayList<>(); } ITreeRoot treeRoot = TreeManager.treeRoot; IBreedingSystem system = Binnie.GENETICS.getSystem(treeRoot); final Collection<IAlleleSpecies> set = master ? system.getAllSpecies() : system.getDiscoveredSpecies(world, player); final List<IAlleleSpecies> found = new ArrayList<>(); for (final IAlleleSpecies species : set) { final IAlleleTreeSpecies tSpecies = (IAlleleTreeSpecies) species; ITreeGenome genome = treeRoot.templateAsGenome(treeRoot.getTemplate(tSpecies)); IAlleleTreeSpecies treeSpecies = genome.getPrimary(); final ItemStack woodStack = treeSpecies.getWoodProvider().getWoodStack(); ItemStack plankProduct = LumbermillRecipeManager.getPlankProduct(woodStack, world); if (!plankProduct.isEmpty() && fruit.isItemEqual(plankProduct)) { found.add(species); } } return found; } }
@Override public void readData(PacketBufferForestry data) { String speciesUID = data.readString(); // this is called instead of super.readData, be careful! byte leafState = data.readByte(); isFruitLeaf = (leafState & hasFruitFlag) > 0; isPollinatedState = (leafState & isPollinatedFlag) > 0; String fruitAlleleUID = null; if (isFruitLeaf) { fruitAlleleUID = data.readString(); colourFruits = data.readInt(); } IAllele[] treeTemplate = TreeManager.treeRoot.getTemplate(speciesUID); if (treeTemplate != null) { if (fruitAlleleUID != null) { IAllele fruitAllele = AlleleManager.alleleRegistry.getAllele(fruitAlleleUID); if (fruitAllele instanceof IAlleleFruit) { treeTemplate[EnumTreeChromosome.FRUITS.ordinal()] = fruitAllele; } } ITree tree = TreeManager.treeRoot.templateAsIndividual(treeTemplate); if (isPollinatedState) { tree.mate(tree); } setTree(tree); world.markBlockRangeForRenderUpdate(getPos(), getPos()); } }
@Override public void onValueChanged(final IAlleleSpecies species) { this.deleteAllChildren(); final IAllele[] template = TreeManager.treeRoot.getTemplate(species.getUID()); if (template == null) { return;