package net.minecraft.client.model; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import java.util.function.Function; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.RenderType; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; @Environment(EnvType.CLIENT) public abstract class ListModel extends EntityModel { public ListModel() { this(RenderType::entityCutoutNoCull); } public ListModel(Function function) { super(function); } @Override public void renderToBuffer(PoseStack poseStack, VertexConsumer buffer, int packedLight, int packedOverlay, int color) { this.parts().forEach(modelPart -> modelPart.render(poseStack, buffer, packedLight, packedOverlay, color)); } public abstract Iterable parts(); }