package net.minecraft.client.renderer.block.model.multipart; import com.google.common.collect.Streams; import java.util.function.Predicate; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.Util; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; @Environment(EnvType.CLIENT) public class OrCondition implements Condition { public static final String TOKEN = "OR"; private final Iterable conditions; public OrCondition(Iterable conditions) { this.conditions = conditions; } @Override public Predicate getPredicate(StateDefinition stateDefinition) { return Util.anyOf(Streams.stream(this.conditions).map(condition -> condition.getPredicate(stateDefinition)).toList()); } }