Is your feature request related to a problem?
World generators currently have no way of interacting with Vanilla's "Configured Features", an essential part of world generation which defines "features" to generate in the world, based on "configurations."
Examples of things generated by features include:
World generators must currently re-implement all these on their own. There should be API to use the Vanilla features, and, ideally, to create and register custom features.
Describe the solution you'd like.
I will be using the Yarn names for the following Spigot-named classes:
WorldGenFeatureConfigured -> ConfiguredFeature
WorldGenFeatureConfiguration -> FeatureConfig
WorldGenerator -> Feature
Add interfaces which delegate to Feature, FeatureConfig, and ConfiguredFeature. Add a registry which is populated with the default configured features, with the option for plugins to register their own.
On its own, this API is only useful to "clean up" and standardize custom world generators. With just this API, plugins would still have to manually place their features.
This would be very powerful when paired with a custom biome API, however, since with a custom BiomeSource using custom biomes, plugins could simply register their features to their biomes to have them generated.
Ideally, there would also initially be API to add features to Vanilla biomes. This would make gross BlockPopulator hacks to add things to Vanilla worlds obsolete.
Describe alternatives you've considered.
Plugins currently must implement all features manually, with no standardized API to work from.
Agreements
Other
No response
Is your feature request related to a problem?
World generators currently have no way of interacting with Vanilla's "Configured Features", an essential part of world generation which defines "features" to generate in the world, based on "configurations."
Examples of things generated by features include:
World generators must currently re-implement all these on their own. There should be API to use the Vanilla features, and, ideally, to create and register custom features.
Describe the solution you'd like.
I will be using the Yarn names for the following Spigot-named classes:
WorldGenFeatureConfigured->ConfiguredFeatureWorldGenFeatureConfiguration->FeatureConfigWorldGenerator->FeatureAdd interfaces which delegate to
Feature,FeatureConfig, andConfiguredFeature. Add a registry which is populated with the default configured features, with the option for plugins to register their own.On its own, this API is only useful to "clean up" and standardize custom world generators. With just this API, plugins would still have to manually place their features.
This would be very powerful when paired with a custom biome API, however, since with a custom BiomeSource using custom biomes, plugins could simply register their features to their biomes to have them generated.
Ideally, there would also initially be API to add features to Vanilla biomes. This would make gross
BlockPopulatorhacks to add things to Vanilla worlds obsolete.Describe alternatives you've considered.
Plugins currently must implement all features manually, with no standardized API to work from.
Agreements
Other
No response