package net.minecraft.client.renderer.blockentity; 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; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @FunctionalInterface @OnlyIn(Dist.CLIENT) public interface BlockEntityRendererProvider { BlockEntityRenderer create(BlockEntityRendererProvider.Context p_173571_); @OnlyIn(Dist.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 p_234440_, BlockRenderDispatcher p_234441_, ItemModelResolver p_375761_, ItemRenderer p_234442_, EntityRenderDispatcher p_234443_, EntityModelSet p_234444_, Font p_234445_ ) { this.blockEntityRenderDispatcher = p_234440_; this.blockRenderDispatcher = p_234441_; this.itemModelResolver = p_375761_; this.itemRenderer = p_234442_; this.entityRenderer = p_234443_; this.modelSet = p_234444_; this.font = p_234445_; } 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 p_173583_) { return this.modelSet.bakeLayer(p_173583_); } public Font getFont() { return this.font; } } }