34 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| 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<Block, SpecialModelRenderer<?>> renderers;
 | |
| 
 | |
| 	public SpecialBlockModelRenderer(Map<Block, SpecialModelRenderer<?>> 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);
 | |
| 		}
 | |
| 	}
 | |
| }
 |