@Override @Nullable public ITree getIndividual(ItemStack itemstack) { return TreeManager.treeRoot.getMember(itemstack); }
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); }
private void init() { template = branch.getTemplate(); AlleleHelper.getInstance().set(template, EnumTreeChromosome.SPECIES, species); setAlleles(template); genome = TreeManager.treeRoot.templateAsGenome(template); TreeManager.treeRoot.registerTemplate(template); }
@Override public boolean setMode(World world, String modeName) { ITreekeepingMode mode = TreeManager.treeRoot.getTreekeepingMode(modeName); if (mode != null) { TreeManager.treeRoot.setTreekeepingMode(world, mode); return true; } return false; }
@Override public boolean plantSaplingAt(EntityPlayer player, ItemStack germling, World world, BlockPos pos) { ITreeRoot treeRoot = TreeManager.treeRoot; ITree tree = treeRoot.getMember(germling); return tree != null && treeRoot.plantSapling(world, tree, player.getGameProfile(), pos); }
IAllele[] template = TreeManager.treeRoot.getTemplate(species); return TreeManager.treeRoot.templateAsGenome(template);
IChromosomeType treeSpeciesType = TreeManager.treeRoot.getSpeciesChromosomeType(); Collection<IAllele> registeredSpecies = AlleleManager.alleleRegistry.getRegisteredAlleles(treeSpeciesType); List<IAlleleSpecies> potentialSpecies = new ArrayList<>(); IAllele[] template = TreeManager.treeRoot.getTemplate(chosenSpecies); IIndividual individual = TreeManager.treeRoot.templateAsIndividual(template); ItemStack sellStack = TreeManager.treeRoot.getMemberStack(individual, type); sellStack.setCount(i);
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); } } } } }
@Override public final ItemStack getMemberStack(EnumGermlingType treeType) { ITree tree = getIndividual(); return TreeManager.treeRoot.getMemberStack(tree, treeType); }
@Override public Iterable<String> getDescription(String modeName) { ITreekeepingMode mode = TreeManager.treeRoot.getTreekeepingMode(modeName); if (mode == null) { return Collections.emptyList(); } return mode.getDescription(); }
public void addCreativeItems(NonNullList<ItemStack> subItems, boolean hideSecrets) { for (IIndividual individual : TreeManager.treeRoot.getIndividualTemplates()) { // Don't show secrets unless ordered to. if (hideSecrets && individual.isSecret() && !Config.isDebug) { continue; } subItems.add(TreeManager.treeRoot.getMemberStack(individual, type)); } }
public ExtraTreeMutation(final IAlleleSpecies allele0, final IAlleleSpecies allele1, final IAlleleSpecies result, final int chance) { this(allele0, allele1, TreeManager.treeRoot.getTemplate(result), chance); }
@Override public void registerTemplate(String identifier, IAllele[] template) { treeTemplates.add(new Tree(TreeManager.treeRoot.templateAsGenome(template))); speciesTemplates.put(identifier, template); }
for (ILeafTickHandler tickHandler : primary.getRoot().getLeafTickHandlers()) { if (tickHandler.onRandomLeafTick(tree, world, rand, getPos(), isDestroyed)) { return; ITreekeepingMode treekeepingMode = TreeManager.treeRoot.getTreekeepingMode(world); float sappinessModifier = treekeepingMode.getSappinessModifier(genome, 1f); float sappiness = genome.getSappiness() * sappinessModifier;
public ExtraTreeMutation(final IAllele allele0, final IAllele allele1, final IAllele[] template, final int chance) { this.isSecret = false; this.minTemperature = 0.0f; this.maxTemperature = 2.0f; this.minRainfall = 0.0f; this.maxRainfall = 2.0f; this.height = -1.0f; this.allele0 = (IAlleleTreeSpecies) allele0; this.allele1 = (IAlleleTreeSpecies) allele1; this.template = template; this.chance = chance; TreeManager.treeRoot.registerMutation(this); }
@Override public boolean trySpawnFruitBlock(ITreeGenome genome, World world, Random rand, BlockPos pos) { if (rand.nextFloat() > genome.getSappiness()) { return false; } IAlleleFruit activeAllele = (IAlleleFruit) genome.getActiveAllele(EnumTreeChromosome.FRUITS); return TreeManager.treeRoot.setFruitBlock(world, genome, activeAllele, genome.getYield(), pos); }
@Override public boolean canPlant(@Nonnull ItemStack stack) { return isValid() && stack.getItem() == ForestryItemStacks.FORESTRY_SAPLING.getItem() && getRoot().getType(stack) == EnumGermlingType.SAPLING; }
private static ActionResult<ItemStack> onItemRightClickSapling(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, BlockPos pos, ITree tree) { // x, y, z are the coordinates of the block "hit", can thus either be the soil or tall grass, etc. IBlockState hitBlock = worldIn.getBlockState(pos); if (!hitBlock.getBlock().isReplaceable(worldIn, pos)) { if (!worldIn.isAirBlock(pos.up())) { return new ActionResult<>(EnumActionResult.FAIL, itemStackIn); } pos = pos.up(); } if (tree.canStay(worldIn, pos)) { if (TreeManager.treeRoot.plantSapling(worldIn, tree, playerIn.getGameProfile(), pos)) { if (!playerIn.capabilities.isCreativeMode) { itemStackIn.shrink(1); } return new ActionResult<>(EnumActionResult.SUCCESS, itemStackIn); } } return new ActionResult<>(EnumActionResult.FAIL, itemStackIn); }
@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; }