101 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.client.renderer.entity;
 | |
| 
 | |
| 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.MapRenderer;
 | |
| import net.minecraft.client.renderer.Sheets;
 | |
| import net.minecraft.client.renderer.block.BlockRenderDispatcher;
 | |
| import net.minecraft.client.renderer.entity.layers.EquipmentLayerRenderer;
 | |
| import net.minecraft.client.renderer.item.ItemModelResolver;
 | |
| import net.minecraft.client.resources.model.EquipmentAssetManager;
 | |
| import net.minecraft.client.resources.model.ModelManager;
 | |
| import net.minecraft.server.packs.resources.ResourceManager;
 | |
| import net.minecraft.world.entity.Entity;
 | |
| 
 | |
| @FunctionalInterface
 | |
| @Environment(EnvType.CLIENT)
 | |
| public interface EntityRendererProvider<T extends Entity> {
 | |
| 	EntityRenderer<T, ?> create(EntityRendererProvider.Context context);
 | |
| 
 | |
| 	@Environment(EnvType.CLIENT)
 | |
| 	public static class Context {
 | |
| 		private final EntityRenderDispatcher entityRenderDispatcher;
 | |
| 		private final ItemModelResolver itemModelResolver;
 | |
| 		private final MapRenderer mapRenderer;
 | |
| 		private final BlockRenderDispatcher blockRenderDispatcher;
 | |
| 		private final ResourceManager resourceManager;
 | |
| 		private final EntityModelSet modelSet;
 | |
| 		private final EquipmentAssetManager equipmentAssets;
 | |
| 		private final Font font;
 | |
| 		private final EquipmentLayerRenderer equipmentRenderer;
 | |
| 
 | |
| 		public Context(
 | |
| 			EntityRenderDispatcher entityRenderDispatcher,
 | |
| 			ItemModelResolver itemModelResolver,
 | |
| 			MapRenderer mapRenderer,
 | |
| 			BlockRenderDispatcher blockRenderDispatcher,
 | |
| 			ResourceManager resourceManager,
 | |
| 			EntityModelSet modelSet,
 | |
| 			EquipmentAssetManager equipmentAssets,
 | |
| 			Font font
 | |
| 		) {
 | |
| 			this.entityRenderDispatcher = entityRenderDispatcher;
 | |
| 			this.itemModelResolver = itemModelResolver;
 | |
| 			this.mapRenderer = mapRenderer;
 | |
| 			this.blockRenderDispatcher = blockRenderDispatcher;
 | |
| 			this.resourceManager = resourceManager;
 | |
| 			this.modelSet = modelSet;
 | |
| 			this.equipmentAssets = equipmentAssets;
 | |
| 			this.font = font;
 | |
| 			this.equipmentRenderer = new EquipmentLayerRenderer(equipmentAssets, this.getModelManager().getAtlas(Sheets.ARMOR_TRIMS_SHEET));
 | |
| 		}
 | |
| 
 | |
| 		public EntityRenderDispatcher getEntityRenderDispatcher() {
 | |
| 			return this.entityRenderDispatcher;
 | |
| 		}
 | |
| 
 | |
| 		public ItemModelResolver getItemModelResolver() {
 | |
| 			return this.itemModelResolver;
 | |
| 		}
 | |
| 
 | |
| 		public MapRenderer getMapRenderer() {
 | |
| 			return this.mapRenderer;
 | |
| 		}
 | |
| 
 | |
| 		public BlockRenderDispatcher getBlockRenderDispatcher() {
 | |
| 			return this.blockRenderDispatcher;
 | |
| 		}
 | |
| 
 | |
| 		public ResourceManager getResourceManager() {
 | |
| 			return this.resourceManager;
 | |
| 		}
 | |
| 
 | |
| 		public EntityModelSet getModelSet() {
 | |
| 			return this.modelSet;
 | |
| 		}
 | |
| 
 | |
| 		public EquipmentAssetManager getEquipmentAssets() {
 | |
| 			return this.equipmentAssets;
 | |
| 		}
 | |
| 
 | |
| 		public EquipmentLayerRenderer getEquipmentRenderer() {
 | |
| 			return this.equipmentRenderer;
 | |
| 		}
 | |
| 
 | |
| 		public ModelManager getModelManager() {
 | |
| 			return this.blockRenderDispatcher.getBlockModelShaper().getModelManager();
 | |
| 		}
 | |
| 
 | |
| 		public ModelPart bakeLayer(ModelLayerLocation layer) {
 | |
| 			return this.modelSet.bakeLayer(layer);
 | |
| 		}
 | |
| 
 | |
| 		public Font getFont() {
 | |
| 			return this.font;
 | |
| 		}
 | |
| 	}
 | |
| }
 |