diff --git a/src/main/java/org/betterx/betterend/registry/EndFeatures.java b/src/main/java/org/betterx/betterend/registry/EndFeatures.java index 9a487cce..259d99ee 100644 --- a/src/main/java/org/betterx/betterend/registry/EndFeatures.java +++ b/src/main/java/org/betterx/betterend/registry/EndFeatures.java @@ -7,6 +7,8 @@ import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI; import org.betterx.bclib.api.v3.levelgen.features.BCLConfigureFeature; import org.betterx.bclib.api.v3.levelgen.features.BCLFeature; import org.betterx.bclib.api.v3.levelgen.features.BCLFeatureBuilder; +import org.betterx.bclib.api.v3.levelgen.features.config.ConditionFeatureConfig; +import org.betterx.bclib.api.v3.levelgen.features.placement.InBiome; import org.betterx.bclib.util.JsonFactory; import org.betterx.betterend.BetterEnd; import org.betterx.betterend.complexmaterials.StoneMaterial; @@ -32,11 +34,10 @@ import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.GenerationStep.Decoration; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.OreFeature; -import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration; -import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration; -import net.minecraft.world.level.levelgen.feature.configurations.SimpleBlockConfiguration; +import net.minecraft.world.level.levelgen.feature.RandomPatchFeature; +import net.minecraft.world.level.levelgen.feature.configurations.*; import net.minecraft.world.level.levelgen.feature.stateproviders.SimpleStateProvider; +import net.minecraft.world.level.levelgen.placement.PlacedFeature; import com.google.common.collect.Lists; import com.google.gson.JsonArray; @@ -1047,6 +1048,129 @@ public class EndFeatures { .buildAndRegister(); + private static final Holder BONEMEAL_END_MOSS_NOT_GLOWING_GRASSLANDS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_end_moss_not_glowing_grasslands")) + .add(EndBlocks.CREEPING_MOSS, 10) + .add(EndBlocks.UMBRELLA_MOSS, 10) + .inlinePlace().build(); + + private static final Holder BONEMEAL_END_MOSS_GLOWING_GRASSLANDS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_end_moss_glowing_grasslands")) + .add(EndBlocks.CREEPING_MOSS, 10) + .add(EndBlocks.UMBRELLA_MOSS, 10) + .add(EndBlocks.BLOOMING_COOKSONIA, 100) + .add(EndBlocks.VAIOLUSH_FERN, 100) + .add(EndBlocks.FRACTURN, 100) + .add(EndBlocks.SALTEAGO, 100) + .add(EndBlocks.TWISTED_UMBRELLA_MOSS, 10) + .inlinePlace().build(); + + public static final BCLConfigureFeature, ConditionFeatureConfig> BONEMEAL_END_MOSS = BCLFeatureBuilder + .start( + BetterEnd.makeID("bonemeal_end_moss"), + BCLFeature.CONDITION + ) + .configuration(new ConditionFeatureConfig( + InBiome.matchingID(EndBiomes.GLOWING_GRASSLANDS.getID()), + BONEMEAL_END_MOSS_GLOWING_GRASSLANDS, + BONEMEAL_END_MOSS_NOT_GLOWING_GRASSLANDS + )) + .buildAndRegister(); + + private static final Holder BONEMEAL_RUTISCUS_NOT_LANTERN_WOODS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_rutiscus_not_lantern_woods")) + .add(EndBlocks.ORANGO, 100) + .add(EndBlocks.AERIDIUM, 20) + .add(EndBlocks.LUTEBUS, 20) + .add(EndBlocks.LAMELLARIUM, 100) + .inlinePlace() + .build(); + + private static final Holder BONEMEAL_RUTISCUS_LANTERN_WOODS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_rutiscus_lantern_woods")) + .add(EndBlocks.AERIDIUM, 20) + .add(EndBlocks.BOLUX_MUSHROOM, 5) + .add(EndBlocks.LAMELLARIUM, 100) + .inlinePlace() + .build(); + + public static final BCLConfigureFeature, ConditionFeatureConfig> BONEMEAL_RUTISCUS = BCLFeatureBuilder + .start( + BetterEnd.makeID("bonemeal_rutiscus"), + BCLFeature.CONDITION + ) + .configuration(new ConditionFeatureConfig( + InBiome.matchingID(EndBiomes.LANTERN_WOODS.getID()), + BONEMEAL_RUTISCUS_LANTERN_WOODS, + BONEMEAL_RUTISCUS_NOT_LANTERN_WOODS + )) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_END_MYCELIUM = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_end_mycelium")) + .add(EndBlocks.CREEPING_MOSS, 100) + .add(EndBlocks.UMBRELLA_MOSS, 100) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_JUNGLE_MOSS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_jungle_moss")) + .add(EndBlocks.JUNGLE_GRASS, 100) + .add(EndBlocks.TWISTED_UMBRELLA_MOSS, 100) + .add(EndBlocks.SMALL_JELLYSHROOM, 10) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_SANGNUM = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_sangnum")) + .add(EndBlocks.CLAWFERN, 100) + .add(EndBlocks.GLOBULAGUS, 100) + .add(EndBlocks.SMALL_AMARANITA_MUSHROOM, 10) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_MOSSY_DRAGON_BONE = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_mossy_dragon_bone")) + .add(EndBlocks.CLAWFERN, 100) + .add(EndBlocks.GLOBULAGUS, 100) + .add(EndBlocks.SMALL_AMARANITA_MUSHROOM, 10) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_MOSSY_OBSIDIAN = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_mossy_obsidian")) + .add(EndBlocks.CLAWFERN, 100) + .add(EndBlocks.GLOBULAGUS, 100) + .add(EndBlocks.SMALL_AMARANITA_MUSHROOM, 10) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_CAVE_MOSS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_cave_moss")) + .add(EndBlocks.CAVE_GRASS, 100) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_CHORUS_NYLIUM = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_chorus_nylium")) + .add(EndBlocks.CHORUS_GRASS, 100) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_CRYSTAL_MOSS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_crystal_moss")) + .add(EndBlocks.CRYSTAL_GRASS, 100) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_SHADOW_GRASS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_shadow_grass")) + .add(EndBlocks.SHADOW_PLANT, 100) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_PINK_MOSS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_pink_moss")) + .add(EndBlocks.BUSHY_GRASS, 100) + .buildAndRegister(); + + public static final BCLConfigureFeature BONEMEAL_AMBER_MOSS = BCLFeatureBuilder + .startBonemealPatch(BetterEnd.makeID("bonemeal_amber_moss")) + .add(EndBlocks.AMBER_GRASS, 100) + .buildAndRegister(); + + public static , FC extends FeatureConfiguration> F inlineBuild(String name, F feature) { ResourceLocation l = BetterEnd.makeID(name); if (Registry.FEATURE.containsKey(l)) { diff --git a/src/main/java/org/betterx/betterend/registry/EndTags.java b/src/main/java/org/betterx/betterend/registry/EndTags.java index 9c6f0c28..3ba41b69 100644 --- a/src/main/java/org/betterx/betterend/registry/EndTags.java +++ b/src/main/java/org/betterx/betterend/registry/EndTags.java @@ -1,6 +1,5 @@ package org.betterx.betterend.registry; -import org.betterx.bclib.api.v2.BonemealAPI; import org.betterx.bclib.api.v2.ComposterAPI; import org.betterx.bclib.blocks.BaseVineBlock; import org.betterx.bclib.blocks.SimpleLeavesBlock; @@ -21,7 +20,6 @@ import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.block.state.BlockBehaviour.Properties; import net.minecraft.world.level.material.Material; @@ -45,6 +43,13 @@ public class EndTags { public static final TagKey ALLOYING_GOLD = TagManager.ITEMS.makeTag(BetterEnd.MOD_ID, "alloying_gold"); public static final TagKey ALLOYING_COPPER = TagManager.ITEMS.makeTag(BetterEnd.MOD_ID, "alloying_copper"); + public static final TagKey BONEMEAL_SOURCE_DRAGON_BONE = TagManager.BLOCKS.makeTogetherTag( + "bonemeal/source/dragon_bone" + ); + public static final TagKey BONEMEAL_TARGET_DRAGON_BONE = TagManager.BLOCKS.makeTogetherTag( + "bonemeal/target/dragon_bone" + ); + public static void register() { addEndGround(EndBlocks.THALLASIUM.ore); addEndGround(EndBlocks.ENDSTONE_DUST); @@ -68,8 +73,6 @@ public class EndTags { if (block instanceof EndTerrainBlock) { addEndGround(block); - TagManager.BLOCKS.add(BlockTags.NYLIUM, block); - BonemealAPI.addSpreadableBlock(block, Blocks.END_STONE); } else if (block instanceof LeavesBlock || block instanceof SimpleLeavesBlock) { TagManager.BLOCKS.add(BlockTags.LEAVES, block); ComposterAPI.allowCompost(0.3f, item); @@ -85,10 +88,6 @@ public class EndTags { } }); addEndGround(EndBlocks.CAVE_MOSS); - TagManager.BLOCKS.add(BlockTags.NYLIUM, EndBlocks.CAVE_MOSS); - BonemealAPI.addSpreadableBlock(EndBlocks.CAVE_MOSS, Blocks.END_STONE); - BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_OBSIDIAN, Blocks.OBSIDIAN); - BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_DRAGON_BONE, EndBlocks.DRAGON_BONE_BLOCK); List ITEM_HAMMERS = Lists.newArrayList(); EndItems.getModItems().forEach(item -> { diff --git a/src/main/java/org/betterx/betterend/util/BonemealPlants.java b/src/main/java/org/betterx/betterend/util/BonemealPlants.java index 24e6655e..e2645fa5 100644 --- a/src/main/java/org/betterx/betterend/util/BonemealPlants.java +++ b/src/main/java/org/betterx/betterend/util/BonemealPlants.java @@ -2,8 +2,8 @@ package org.betterx.betterend.util; import org.betterx.bclib.api.v2.BonemealAPI; import org.betterx.betterend.blocks.basis.EndTerrainBlock; -import org.betterx.betterend.registry.EndBiomes; import org.betterx.betterend.registry.EndBlocks; +import org.betterx.betterend.registry.EndFeatures; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; @@ -14,82 +14,155 @@ import java.util.List; public class BonemealPlants { public static void init() { - BonemealAPI.addLandGrass(EndBlocks.CREEPING_MOSS, EndBlocks.END_MOSS); - BonemealAPI.addLandGrass(EndBlocks.UMBRELLA_MOSS, EndBlocks.END_MOSS); - BonemealAPI.addLandGrass(EndBlocks.CREEPING_MOSS, EndBlocks.END_MYCELIUM); - BonemealAPI.addLandGrass(EndBlocks.UMBRELLA_MOSS, EndBlocks.END_MYCELIUM); - - BonemealAPI.addLandGrass(EndBlocks.CAVE_GRASS, EndBlocks.CAVE_MOSS); - BonemealAPI.addLandGrass(EndBlocks.CHORUS_GRASS, EndBlocks.CHORUS_NYLIUM); - BonemealAPI.addLandGrass(EndBlocks.CRYSTAL_GRASS, EndBlocks.CRYSTAL_MOSS); - BonemealAPI.addLandGrass(EndBlocks.SHADOW_PLANT, EndBlocks.SHADOW_GRASS); - BonemealAPI.addLandGrass(EndBlocks.BUSHY_GRASS, EndBlocks.PINK_MOSS); - BonemealAPI.addLandGrass(EndBlocks.AMBER_GRASS, EndBlocks.AMBER_MOSS); - - BonemealAPI.addLandGrass(EndBlocks.JUNGLE_GRASS, EndBlocks.JUNGLE_MOSS); - BonemealAPI.addLandGrass(EndBlocks.TWISTED_UMBRELLA_MOSS, EndBlocks.JUNGLE_MOSS); - BonemealAPI.addLandGrass(EndBlocks.SMALL_JELLYSHROOM, EndBlocks.JUNGLE_MOSS, 0.1F); - - BonemealAPI.addLandGrass( - EndBiomes.GLOWING_GRASSLANDS.getID(), - EndBlocks.BLOOMING_COOKSONIA, - EndBlocks.END_MOSS - ); - BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.VAIOLUSH_FERN, EndBlocks.END_MOSS); - BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.FRACTURN, EndBlocks.END_MOSS); - BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.SALTEAGO, EndBlocks.END_MOSS); - - BonemealAPI.addLandGrass( - EndBiomes.GLOWING_GRASSLANDS.getID(), - EndBlocks.CREEPING_MOSS, + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( EndBlocks.END_MOSS, - 0.1F - ); - BonemealAPI.addLandGrass( - EndBiomes.GLOWING_GRASSLANDS.getID(), - EndBlocks.UMBRELLA_MOSS, - EndBlocks.END_MOSS, - 0.1F - ); - BonemealAPI.addLandGrass( - EndBiomes.GLOWING_GRASSLANDS.getID(), - EndBlocks.TWISTED_UMBRELLA_MOSS, - EndBlocks.END_MOSS, - 0.1F + EndFeatures.BONEMEAL_END_MOSS ); - BonemealAPI.addLandGrass(EndBlocks.ORANGO, EndBlocks.RUTISCUS); - BonemealAPI.addLandGrass(EndBlocks.AERIDIUM, EndBlocks.RUTISCUS, 0.2F); - BonemealAPI.addLandGrass(EndBlocks.LUTEBUS, EndBlocks.RUTISCUS, 0.2F); - BonemealAPI.addLandGrass(EndBlocks.LAMELLARIUM, EndBlocks.RUTISCUS); + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.RUTISCUS, + EndFeatures.BONEMEAL_RUTISCUS + ); - BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS.getID(), EndBlocks.AERIDIUM, EndBlocks.RUTISCUS, 0.2F); - BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS.getID(), EndBlocks.LAMELLARIUM, EndBlocks.RUTISCUS); - BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS.getID(), EndBlocks.BOLUX_MUSHROOM, EndBlocks.RUTISCUS, 0.05F); + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.END_MYCELIUM, + EndFeatures.BONEMEAL_END_MYCELIUM + ); - BonemealAPI.addLandGrass( - EndBlocks.GLOBULAGUS, + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.JUNGLE_MOSS, + EndFeatures.BONEMEAL_JUNGLE_MOSS + ); + + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( EndBlocks.SANGNUM, - EndBlocks.MOSSY_OBSIDIAN, - EndBlocks.MOSSY_DRAGON_BONE + EndFeatures.BONEMEAL_SANGNUM ); - BonemealAPI.addLandGrass( - EndBlocks.CLAWFERN, - EndBlocks.SANGNUM, + + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( EndBlocks.MOSSY_OBSIDIAN, - EndBlocks.MOSSY_DRAGON_BONE + EndFeatures.BONEMEAL_MOSSY_OBSIDIAN ); - BonemealAPI.addLandGrass(EndBlocks.SANGNUM, EndBlocks.SMALL_AMARANITA_MUSHROOM, 0.1F); - BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.MOSSY_OBSIDIAN, 0.1F); - BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.MOSSY_DRAGON_BONE, 0.1F); - BonemealAPI.addLandGrass(EndBlocks.GLOBULAGUS, EndBlocks.MOSSY_DRAGON_BONE); - BonemealAPI.addLandGrass(EndBlocks.CLAWFERN, EndBlocks.MOSSY_DRAGON_BONE); - BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.MOSSY_DRAGON_BONE, 0.1F); + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.MOSSY_DRAGON_BONE, + EndFeatures.BONEMEAL_MOSSY_DRAGON_BONE + ); - BonemealAPI.addLandGrass(EndBlocks.GLOBULAGUS, EndBlocks.MOSSY_OBSIDIAN); - BonemealAPI.addLandGrass(EndBlocks.CLAWFERN, EndBlocks.MOSSY_OBSIDIAN); - BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.MOSSY_OBSIDIAN, 0.1F); + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.CAVE_MOSS, + EndFeatures.BONEMEAL_CAVE_MOSS + ); + + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.CHORUS_NYLIUM, + EndFeatures.BONEMEAL_CHORUS_NYLIUM + ); + + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.CRYSTAL_MOSS, + EndFeatures.BONEMEAL_CRYSTAL_MOSS + ); + + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.SHADOW_GRASS, + EndFeatures.BONEMEAL_SHADOW_GRASS + ); + + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.PINK_MOSS, + EndFeatures.BONEMEAL_PINK_MOSS + ); + + org.betterx.bclib.api.v3.bonemeal.BonemealAPI.INSTANCE.addSpreadableFeatures( + EndBlocks.AMBER_MOSS, + EndFeatures.BONEMEAL_AMBER_MOSS + ); + + +// BonemealAPI.addLandGrass(EndBlocks.CAVE_GRASS, EndBlocks.CAVE_MOSS); +// +// BonemealAPI.addLandGrass(EndBlocks.CHORUS_GRASS, EndBlocks.CHORUS_NYLIUM); +// +// BonemealAPI.addLandGrass(EndBlocks.CRYSTAL_GRASS, EndBlocks.CRYSTAL_MOSS); +// +// BonemealAPI.addLandGrass(EndBlocks.SHADOW_PLANT, EndBlocks.SHADOW_GRASS); +// +// BonemealAPI.addLandGrass(EndBlocks.BUSHY_GRASS, EndBlocks.PINK_MOSS); +// +// BonemealAPI.addLandGrass(EndBlocks.AMBER_GRASS, EndBlocks.AMBER_MOSS); + +// BonemealAPI.addLandGrass(EndBlocks.CREEPING_MOSS, EndBlocks.END_MOSS); +// BonemealAPI.addLandGrass(EndBlocks.UMBRELLA_MOSS, EndBlocks.END_MOSS); +// +// BonemealAPI.addLandGrass( +// EndBiomes.GLOWING_GRASSLANDS.getID(), +// EndBlocks.BLOOMING_COOKSONIA, +// EndBlocks.END_MOSS +// ); +// BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.VAIOLUSH_FERN, EndBlocks.END_MOSS); +// BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.FRACTURN, EndBlocks.END_MOSS); +// BonemealAPI.addLandGrass(EndBiomes.GLOWING_GRASSLANDS.getID(), EndBlocks.SALTEAGO, EndBlocks.END_MOSS); +// BonemealAPI.addLandGrass( +// EndBiomes.GLOWING_GRASSLANDS.getID(), +// EndBlocks.CREEPING_MOSS, +// EndBlocks.END_MOSS, +// 0.1F +// ); +// BonemealAPI.addLandGrass( +// EndBiomes.GLOWING_GRASSLANDS.getID(), +// EndBlocks.UMBRELLA_MOSS, +// EndBlocks.END_MOSS, +// 0.1F +// ); +// BonemealAPI.addLandGrass( +// EndBiomes.GLOWING_GRASSLANDS.getID(), +// EndBlocks.TWISTED_UMBRELLA_MOSS, +// EndBlocks.END_MOSS, +// 0.1F +// ); + +// BonemealAPI.addLandGrass(EndBlocks.CREEPING_MOSS, EndBlocks.END_MYCELIUM); +// BonemealAPI.addLandGrass(EndBlocks.UMBRELLA_MOSS, EndBlocks.END_MYCELIUM); + + +// BonemealAPI.addLandGrass(EndBlocks.JUNGLE_GRASS, EndBlocks.JUNGLE_MOSS); +// BonemealAPI.addLandGrass(EndBlocks.TWISTED_UMBRELLA_MOSS, EndBlocks.JUNGLE_MOSS); +// BonemealAPI.addLandGrass(EndBlocks.SMALL_JELLYSHROOM, EndBlocks.JUNGLE_MOSS, 0.1F); + +// BonemealAPI.addLandGrass(EndBlocks.ORANGO, EndBlocks.RUTISCUS); +// BonemealAPI.addLandGrass(EndBlocks.AERIDIUM, EndBlocks.RUTISCUS, 0.2F); +// BonemealAPI.addLandGrass(EndBlocks.LUTEBUS, EndBlocks.RUTISCUS, 0.2F); +// BonemealAPI.addLandGrass(EndBlocks.LAMELLARIUM, EndBlocks.RUTISCUS); +// +// BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS.getID(), EndBlocks.AERIDIUM, EndBlocks.RUTISCUS, 0.2F); +// BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS.getID(), EndBlocks.LAMELLARIUM, EndBlocks.RUTISCUS); +// BonemealAPI.addLandGrass(EndBiomes.LANTERN_WOODS.getID(), EndBlocks.BOLUX_MUSHROOM, EndBlocks.RUTISCUS, 0.05F); + +// BonemealAPI.addLandGrass( +// EndBlocks.GLOBULAGUS, +// EndBlocks.SANGNUM, +// EndBlocks.MOSSY_OBSIDIAN, +// EndBlocks.MOSSY_DRAGON_BONE +// ); +// BonemealAPI.addLandGrass( +// EndBlocks.CLAWFERN, +// EndBlocks.SANGNUM, +// EndBlocks.MOSSY_OBSIDIAN, +// EndBlocks.MOSSY_DRAGON_BONE +// ); +// BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.SANGNUM, 0.1F); + + +// BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.MOSSY_DRAGON_BONE, 0.1F); +// BonemealAPI.addLandGrass(EndBlocks.GLOBULAGUS, EndBlocks.MOSSY_DRAGON_BONE); +// BonemealAPI.addLandGrass(EndBlocks.CLAWFERN, EndBlocks.MOSSY_DRAGON_BONE); +// BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.MOSSY_DRAGON_BONE, 0.1F); + +// BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.MOSSY_OBSIDIAN, 0.1F); +// BonemealAPI.addLandGrass(EndBlocks.GLOBULAGUS, EndBlocks.MOSSY_OBSIDIAN); +// BonemealAPI.addLandGrass(EndBlocks.CLAWFERN, EndBlocks.MOSSY_OBSIDIAN); +// BonemealAPI.addLandGrass(EndBlocks.SMALL_AMARANITA_MUSHROOM, EndBlocks.MOSSY_OBSIDIAN, 0.1F); Block[] charnias = new Block[]{ EndBlocks.CHARNIA_CYAN,