package net.minecraft.client.renderer; import com.mojang.blaze3d.vertex.PoseStack; import java.util.Map; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.model.geom.EntityModelSet; import net.minecraft.client.renderer.special.SpecialModelRenderer; import net.minecraft.client.renderer.special.SpecialModelRenderers; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.level.block.Block; @Environment(EnvType.CLIENT) public class SpecialBlockModelRenderer { public static final SpecialBlockModelRenderer EMPTY = new SpecialBlockModelRenderer(Map.of()); private final Map> renderers; public SpecialBlockModelRenderer(Map> renderers) { this.renderers = renderers; } public static SpecialBlockModelRenderer vanilla(EntityModelSet modelSet) { return new SpecialBlockModelRenderer(SpecialModelRenderers.createBlockRenderers(modelSet)); } public void renderByBlock( Block block, ItemDisplayContext displayContext, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, int packedOverlay ) { SpecialModelRenderer specialModelRenderer = (SpecialModelRenderer)this.renderers.get(block); if (specialModelRenderer != null) { specialModelRenderer.render(null, displayContext, poseStack, bufferSource, packedLight, packedOverlay, false); } } }