84 lines
2.5 KiB
Java
84 lines
2.5 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.ItemInHandRenderer;
|
|
import net.minecraft.client.renderer.block.BlockRenderDispatcher;
|
|
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 ItemRenderer itemRenderer;
|
|
private final BlockRenderDispatcher blockRenderDispatcher;
|
|
private final ItemInHandRenderer itemInHandRenderer;
|
|
private final ResourceManager resourceManager;
|
|
private final EntityModelSet modelSet;
|
|
private final Font font;
|
|
|
|
public Context(
|
|
EntityRenderDispatcher entityRenderDispatcher,
|
|
ItemRenderer itemRenderer,
|
|
BlockRenderDispatcher blockRenderDispatcher,
|
|
ItemInHandRenderer itemInHandRenderer,
|
|
ResourceManager resourceManager,
|
|
EntityModelSet modelSet,
|
|
Font font
|
|
) {
|
|
this.entityRenderDispatcher = entityRenderDispatcher;
|
|
this.itemRenderer = itemRenderer;
|
|
this.blockRenderDispatcher = blockRenderDispatcher;
|
|
this.itemInHandRenderer = itemInHandRenderer;
|
|
this.resourceManager = resourceManager;
|
|
this.modelSet = modelSet;
|
|
this.font = font;
|
|
}
|
|
|
|
public EntityRenderDispatcher getEntityRenderDispatcher() {
|
|
return this.entityRenderDispatcher;
|
|
}
|
|
|
|
public ItemRenderer getItemRenderer() {
|
|
return this.itemRenderer;
|
|
}
|
|
|
|
public BlockRenderDispatcher getBlockRenderDispatcher() {
|
|
return this.blockRenderDispatcher;
|
|
}
|
|
|
|
public ItemInHandRenderer getItemInHandRenderer() {
|
|
return this.itemInHandRenderer;
|
|
}
|
|
|
|
public ResourceManager getResourceManager() {
|
|
return this.resourceManager;
|
|
}
|
|
|
|
public EntityModelSet getModelSet() {
|
|
return this.modelSet;
|
|
}
|
|
|
|
public ModelManager getModelManager() {
|
|
return this.blockRenderDispatcher.getBlockModelShaper().getModelManager();
|
|
}
|
|
|
|
public ModelPart bakeLayer(ModelLayerLocation layer) {
|
|
return this.modelSet.bakeLayer(layer);
|
|
}
|
|
|
|
public Font getFont() {
|
|
return this.font;
|
|
}
|
|
}
|
|
}
|