package net.minecraft.world.level.levelgen.feature.configurations; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import java.util.stream.Stream; import net.minecraft.core.Holder; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.placement.PlacedFeature; public class RandomBooleanFeatureConfiguration implements FeatureConfiguration { public static final Codec CODEC = RecordCodecBuilder.create( instance -> instance.group( PlacedFeature.CODEC.fieldOf("feature_true").forGetter(randomBooleanFeatureConfiguration -> randomBooleanFeatureConfiguration.featureTrue), PlacedFeature.CODEC.fieldOf("feature_false").forGetter(randomBooleanFeatureConfiguration -> randomBooleanFeatureConfiguration.featureFalse) ) .apply(instance, RandomBooleanFeatureConfiguration::new) ); public final Holder featureTrue; public final Holder featureFalse; public RandomBooleanFeatureConfiguration(Holder featureTrue, Holder featureFalse) { this.featureTrue = featureTrue; this.featureFalse = featureFalse; } @Override public Stream> getFeatures() { return Stream.concat(this.featureTrue.value().getFeatures(), this.featureFalse.value().getFeatures()); } }