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;
|
|
}
|
|
}
|
|
}
|