package net.minecraft.world.level.levelgen.feature.configurations; import com.mojang.serialization.Codec; import java.util.stream.Stream; import net.minecraft.core.HolderSet; import net.minecraft.util.ExtraCodecs; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.placement.PlacedFeature; public class SimpleRandomFeatureConfiguration implements FeatureConfiguration { public static final Codec CODEC = ExtraCodecs.nonEmptyHolderSet(PlacedFeature.LIST_CODEC) .fieldOf("features") .xmap(SimpleRandomFeatureConfiguration::new, simpleRandomFeatureConfiguration -> simpleRandomFeatureConfiguration.features) .codec(); public final HolderSet features; public SimpleRandomFeatureConfiguration(HolderSet features) { this.features = features; } @Override public Stream> getFeatures() { return this.features.stream().flatMap(holder -> ((PlacedFeature)holder.value()).getFeatures()); } }