package net.minecraft.world.level.levelgen.blockpredicates; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import java.util.List; import java.util.function.Function; abstract class CombiningPredicate implements BlockPredicate { protected final List predicates; protected CombiningPredicate(List predicates) { this.predicates = predicates; } public static MapCodec codec(Function, T> factory) { return RecordCodecBuilder.mapCodec( instance -> instance.group(BlockPredicate.CODEC.listOf().fieldOf("predicates").forGetter(combiningPredicate -> combiningPredicate.predicates)) .apply(instance, factory) ); } }