It is now done with datagen, you will need to add a `DatapackBuiltinEntriesProvider` to your data generator. The `RegistrySetBuilder` argument should look something like this:
private static final RegistrySetBuilder BUILDER = new RegistrySetBuilder()
.add(Registries.CONFIGURED_FEATURE, ModConfiguredFeatures::bootstrap)
.add(Registries.PLACED_FEATURE, ModPlacedFeatures::bootstrap);
with your `ModConfiguredFeatures` class based on this rough template:
public static final ResourceKey<ConfiguredFeature<?, ?>> EXAMPLE = createKey("example");
// Add more keys here
public static void bootstrap(BootstapContext<ConfiguredFeature<?, ?>> context) {
HolderGetter<ConfiguredFeature<?, ?>> configured = context.lookup(Registries.CONFIGURED_FEATURE);
HolderGetter<PlacedFeature> placed = context.lookup(Registries.PLACED_FEATURE);
register(context, EXAMPLE, Feature.EXAMPLE_FEATURE, new ExampleConfiguration(args));
// Register more features here
}
private static ResourceKey<ConfiguredFeature<?, ?>> createKey(String name) {
return ResourceKey.create(Registries.CONFIGURED_FEATURE, new ResourceLocation("modid", name));
}
private static <FC extends FeatureConfiguration, F extends Feature<FC>> void register(BootstapContext<ConfiguredFeature<?, ?>> context, ResourceKey<ConfiguredFeature<?, ?>> key, F feature, FC config) {
context.register(key, new ConfiguredFeature<>(feature, config));
}
Hope this helps get you started