80 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.client.renderer.blockentity;
 | |
| 
 | |
| import net.fabricmc.api.EnvType;
 | |
| import net.fabricmc.api.Environment;
 | |
| import net.minecraft.client.gui.Font;
 | |
| import net.minecraft.client.model.geom.EntityModelSet;
 | |
| import net.minecraft.client.model.geom.ModelLayerLocation;
 | |
| import net.minecraft.client.model.geom.ModelPart;
 | |
| import net.minecraft.client.renderer.block.BlockRenderDispatcher;
 | |
| import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
 | |
| import net.minecraft.client.renderer.entity.ItemRenderer;
 | |
| import net.minecraft.client.renderer.item.ItemModelResolver;
 | |
| import net.minecraft.world.level.block.entity.BlockEntity;
 | |
| 
 | |
| @FunctionalInterface
 | |
| @Environment(EnvType.CLIENT)
 | |
| public interface BlockEntityRendererProvider<T extends BlockEntity> {
 | |
| 	BlockEntityRenderer<T> create(BlockEntityRendererProvider.Context context);
 | |
| 
 | |
| 	@Environment(EnvType.CLIENT)
 | |
| 	public static class Context {
 | |
| 		private final BlockEntityRenderDispatcher blockEntityRenderDispatcher;
 | |
| 		private final BlockRenderDispatcher blockRenderDispatcher;
 | |
| 		private final ItemModelResolver itemModelResolver;
 | |
| 		private final ItemRenderer itemRenderer;
 | |
| 		private final EntityRenderDispatcher entityRenderer;
 | |
| 		private final EntityModelSet modelSet;
 | |
| 		private final Font font;
 | |
| 
 | |
| 		public Context(
 | |
| 			BlockEntityRenderDispatcher blockEntityRenderDispatcher,
 | |
| 			BlockRenderDispatcher blockRenderDispatcher,
 | |
| 			ItemModelResolver itemModelResolver,
 | |
| 			ItemRenderer itemRenderer,
 | |
| 			EntityRenderDispatcher entityRenderer,
 | |
| 			EntityModelSet modelSet,
 | |
| 			Font font
 | |
| 		) {
 | |
| 			this.blockEntityRenderDispatcher = blockEntityRenderDispatcher;
 | |
| 			this.blockRenderDispatcher = blockRenderDispatcher;
 | |
| 			this.itemModelResolver = itemModelResolver;
 | |
| 			this.itemRenderer = itemRenderer;
 | |
| 			this.entityRenderer = entityRenderer;
 | |
| 			this.modelSet = modelSet;
 | |
| 			this.font = font;
 | |
| 		}
 | |
| 
 | |
| 		public BlockEntityRenderDispatcher getBlockEntityRenderDispatcher() {
 | |
| 			return this.blockEntityRenderDispatcher;
 | |
| 		}
 | |
| 
 | |
| 		public BlockRenderDispatcher getBlockRenderDispatcher() {
 | |
| 			return this.blockRenderDispatcher;
 | |
| 		}
 | |
| 
 | |
| 		public EntityRenderDispatcher getEntityRenderer() {
 | |
| 			return this.entityRenderer;
 | |
| 		}
 | |
| 
 | |
| 		public ItemModelResolver getItemModelResolver() {
 | |
| 			return this.itemModelResolver;
 | |
| 		}
 | |
| 
 | |
| 		public ItemRenderer getItemRenderer() {
 | |
| 			return this.itemRenderer;
 | |
| 		}
 | |
| 
 | |
| 		public EntityModelSet getModelSet() {
 | |
| 			return this.modelSet;
 | |
| 		}
 | |
| 
 | |
| 		public ModelPart bakeLayer(ModelLayerLocation layerLocation) {
 | |
| 			return this.modelSet.bakeLayer(layerLocation);
 | |
| 		}
 | |
| 
 | |
| 		public Font getFont() {
 | |
| 			return this.font;
 | |
| 		}
 | |
| 	}
 | |
| }
 |