package net.minecraft.client.renderer.feature.phase; import java.util.Collection; import net.minecraft.client.renderer.feature.FeatureRendererType; import net.minecraft.client.renderer.feature.submit.SubmitNode; public interface FeatureRenderPhase { void submit(Submit submit); void sortInto(FeatureRenderPhase.Output output); boolean isEmpty(); @FunctionalInterface public interface Output { void accept(SubmitNode submit, boolean strictlyOrdered); default void acceptFeatureGroup( final FeatureRendererType featureType, final Collection submits, final boolean strictlyOrdered ) { for (Submit submit : submits) { if (submit.featureType() != featureType) { throw new IllegalArgumentException(submit + " was not of feature type " + featureType); } this.accept(submit, strictlyOrdered); } } } }