Hi, I have a custom bush block that I made, and I am able to get it to generate normally in the overworld. I have since made another similar bush block, but I want this one to be able to gen only on soul soil in the soul sand valley biomes. Here is my code, I am not sure why it is not working, it isn't generating in the soul sand valley.
//In class BlockInit
public static final RegistryObject<BushBlock> SOULBERRY_BUSH = BLOCKS.register("soulberry_bush",
() -> new CustomBush(PropertyInit.SOULBERRY_BUSH_PROPERTY));
//In Class PropertyInit
public class PropertyInit {
private PropertyInit() {
}
public final static BlockBehaviour.Properties CUSTOM_BUSH_PROPERTY = BlockBehaviour.Properties
.of(Material.PLANT, MaterialColor.COLOR_GREEN).randomTicks().noCollission().instabreak()
.sound(SoundType.SWEET_BERRY_BUSH);
public final static BlockBehaviour.Properties SOULBERRY_BUSH_PROPERTY = BlockBehaviour.Properties
.of(Material.REPLACEABLE_FIREPROOF_PLANT, MaterialColor.NETHER).randomTicks().noCollission().instabreak()
.sound(SoundType.SOUL_SAND);
}
//In class PlacedFeatureInit
public class PlacedFeatureInit {
public static final PlacedFeature CUSTOM_BUSH_PLACED = PlacementUtils.register("custom_bush_placed",
ConfigFeatureInit.BERRY_BUSH_CONFIG.placed());
public static final PlacedFeature SOULBERRY_BUSH_PLACED = PlacementUtils.register("soulberry_bush_placed",
ConfigFeatureInit.SOULBERRY_BUSH_CONFIG.placed());
}
//In class ConfigFeatureInit
public static final ConfiguredFeature<RandomPatchConfiguration, ?> SOULBERRY_BUSH_CONFIG = FeatureUtils
.register("soulberry_bush_config", Feature.FLOWER.configured(new RandomPatchConfiguration(1, 20, 20, () -> {
return Feature.SIMPLE_BLOCK
.configured(new SimpleBlockConfiguration(BlockStateProvider.simple(
BlockInit.SOULBERRY_BUSH.get().defaultBlockState().setValue(SoulBerryBush.AGE, 3))))
.placed(InSquarePlacement.spread(), PlacementUtils.RANGE_BOTTOM_TO_MAX_TERRAIN_HEIGHT,
RarityFilter.onAverageOnceEvery(1),
BlockPredicateFilter.forPredicate(BlockPredicate.matchesBlocks(
Arrays.asList(Blocks.SOUL_SAND, Blocks.SOUL_SOIL, Blocks.NETHERRACK))));
})));
//In class Bush Generation:
public class BushGeneration {
public static void generateBushes(final BiomeLoadingEvent event) {
@SuppressWarnings("unused")
ResourceKey<Biome> key = ResourceKey.create(Registry.BIOME_REGISTRY, event.getName());
ResourceLocation biome = event.getName();
List<Supplier<PlacedFeature>> base = event.getGeneration()
.getFeatures(GenerationStep.Decoration.VEGETAL_DECORATION);
if (biome.toString().contains("plains")) {
base.add(() -> PlacedFeatureInit.CUSTOM_BUSH_PLACED);
} else if (biome.toString().contains("soul")) {
base.add(() -> PlacedFeatureInit.SOULBERRY_BUSH_PLACED);
}
}
public static void onBiomeLoad(BiomeLoadingEvent event) {
generateBushes(event);
}
}