Class PlacedFeatureIndexer
Placed features have the generation steps
, and they generate in that order. For example, if biome X registers
the placed feature A in the GenerationStep.Feature.UNDERGROUND_ORES
step and the
placed feature B and C in the GenerationStep.Feature.TOP_LAYER_MODIFICATION
step,
then B and C generate after A. If, then, biome Y registers B in the GenerationStep.Feature.LOCAL_MODIFICATIONS
, this will
cause a "feature order cycle", because B should generate after A
according to the biome X, but A should generate after B according to biome Y. This
is wrong and causes a crash.
In other words, "feature order cycle" occurs when placed features are registered in multiple generation steps, due to e.g. reusing vanilla features. To prevent this error, make sure to generate the feature in the same generation step as vanilla, and if that is not possible, create a new feature.
- Mappings:
Namespace Name named net/minecraft/world/gen/feature/util/PlacedFeatureIndexer
intermediary net/minecraft/class_7510
official ddj
-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> List
<PlacedFeatureIndexer.IndexedFeatures> collectIndexedFeatures
(List<T> biomes, Function<T, List<RegistryEntryList<PlacedFeature>>> biomesToPlacedFeaturesList, boolean listInvolvedBiomesOnFailure) Returns the indexed placed features collected after validating feature orders.
-
Constructor Details
-
PlacedFeatureIndexer
public PlacedFeatureIndexer()
-
-
Method Details
-
collectIndexedFeatures
public static <T> List<PlacedFeatureIndexer.IndexedFeatures> collectIndexedFeatures(List<T> biomes, Function<T, List<RegistryEntryList<PlacedFeature>>> biomesToPlacedFeaturesList, boolean listInvolvedBiomesOnFailure) Returns the indexed placed features collected after validating feature orders.- Parameters:
biomesToPlacedFeaturesList
- a function that, given a biome, returns a list of placed features grouped by their generation stepslistInvolvedBiomesOnFailure
- whether to include involved biomes in the thrown exception- Returns:
- the indexed placed features collected after validating feature orders
- Throws:
IllegalStateException
- when a feature order cycle is detected- API Note:
- Check the class documentation for what feature order cycle means.
- Mappings:
Namespace Name Mixin selector named collectIndexedFeatures
Lnet/minecraft/world/gen/feature/util/PlacedFeatureIndexer;collectIndexedFeatures(Ljava/util/List;Ljava/util/function/Function;Z)Ljava/util/List;
intermediary method_44210
Lnet/minecraft/class_7510;method_44210(Ljava/util/List;Ljava/util/function/Function;Z)Ljava/util/List;
official a
Lddj;a(Ljava/util/List;Ljava/util/function/Function;Z)Ljava/util/List;
-