public final String getUID() { return species.getUID(); }
@Nullable public String getSpeciesUID() { if (species == null) { return null; } return species.getUID(); }
@Override public String getName(IAlleleTreeSpecies value) { return value.getUID().replace(Constants.MOD_ID + ".tree", "").toLowerCase(Locale.ENGLISH); }
@Override public IAllele getPartner(final IAllele allele) { if (this.allele0.getUID().equals(allele.getUID())) { return this.allele1; } return this.allele0; }
@Override public float getChance(World world, BlockPos pos, IAlleleTreeSpecies allele0, IAlleleTreeSpecies allele1, ITreeGenome genome0, ITreeGenome genome1) { final int processedChance = this.chance; final Biome biome = world.getBiome(pos);//WorldChunkManager().getBiomeGenAt(x, z); if (biome.getDefaultTemperature() < this.minTemperature || biome.getDefaultTemperature() > this.maxTemperature) { return 0.0f; } if (biome.getRainfall() < this.minRainfall || biome.getRainfall() > this.maxRainfall) { return 0.0f; } if (this.height > 0.0f && pos.getY() < this.height) { return 0.0f; } if (this.allele0.getUID().equals(allele0.getUID()) && this.allele1.getUID().equals(allele1.getUID())) { return processedChance; } if (this.allele1.getUID().equals(allele0.getUID()) && this.allele0.getUID().equals(allele1.getUID())) { return processedChance; } return 0.0f; } }
private TreeAlyzerPlugin() { NonNullList<ItemStack> treeList = NonNullList.create(); ModuleArboriculture.getItems().sapling.addCreativeItems(treeList, false); for (ItemStack treeStack : treeList) { IAlleleTreeSpecies species = TreeGenome.getSpecies(treeStack); iconStacks.put(species.getUID(), treeStack); } }
public static void parse(LocalizedConfiguration config) { config.setCategoryComment(CONFIG_CATEGORY_TREE, CONFIG_COMMENT); config.setCategoryComment(CONFIG_CATEGORY_TREE + ".global", "All options defined in the global category are used for all trees."); GLOBAL.parseConfig(config); for (IAllele treeAllele : AlleleManager.alleleRegistry.getRegisteredAlleles(EnumTreeChromosome.SPECIES)) { if (!(treeAllele instanceof IAlleleTreeSpecies)) { continue; } IAlleleTreeSpecies treeSpecies = (IAlleleTreeSpecies) treeAllele; configs.put(treeSpecies.getUID(), new TreeConfig(treeSpecies.getUID(), treeSpecies.getRarity()).parseConfig(config)); } }
private static boolean isSapling(ITreeGenome genome, World world, BlockPos pos) { if (!world.isBlockLoaded(pos)) { return false; } if (world.isAirBlock(pos)) { return false; } TileSapling sapling = TileUtil.getTile(world, pos, TileSapling.class); if (sapling == null) { return false; } ITree tree = sapling.getTree(); return tree != null && tree.getGenome().getPrimary().getUID().equals(genome.getPrimary().getUID()); } }
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); } } } } }
Set<ITree> trees = biomeCache.computeIfAbsent(biome.getRegistryName(), k -> new HashSet<>()); for (ITree tree : trees) { String treeUID = tree.getGenome().getPrimary().getUID(); if (!TreeConfig.isValidDimension(treeUID, world.provider.getDimension())) { continue; if (TreeConfig.getSpawnRarity(species.getUID()) * globalRarity >= rand.nextFloat()) { pos = getValidPos(world, x, z, tree);
private TreePlugin() { super(new TreeDatabaseTab(DatabaseMode.ACTIVE), new TreeDatabaseTab(DatabaseMode.INACTIVE), new ProductsTab(ItemFruit.EnumFruit.CHERRY::getStack), new MutationsTab(() -> ModuleArboriculture.getItems().grafter.getItemStack())); NonNullList<ItemStack> treeList = NonNullList.create(); ModuleArboriculture.getItems().sapling.addCreativeItems(treeList, false); for (ItemStack treeStack : treeList) { IAlleleTreeSpecies species = TreeGenome.getSpecies(treeStack); iconStacks.put(species.getUID(), treeStack); } }
if (owner == null && genome.matchesTemplateGenome()) { IFruitProvider fruitProvider = genome.getFruitProvider(); String speciesUid = genome.getPrimary().getUID(); IBlockState defaultLeaves; if (fruitProvider.isFruitLeaf(genome, world, pos) && rand.nextFloat() <= fruitProvider.getFruitChance(genome, world, pos)) {
if (owner == null && genome.matchesTemplateGenome()) { IFruitProvider fruitProvider = genome.getFruitProvider(); String speciesUid = genome.getPrimary().getUID(); IBlockState defaultLeaves; if (fruitProvider.isFruitLeaf(genome, world, pos) && rand.nextFloat() <= fruitProvider.getFruitChance(genome, world, pos)) {
if (fruitSprite != null && !treeSpecies.getUID().equals("forestry.treeOak")) { TextureAtlasSprite fruit = map.getAtlasSprite(fruitSprite.toString()); int fruitColour = fruitProvider.getColour(genome, world, BlockPos.ORIGIN, 100);