package net.minecraft.client.renderer.entity; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.model.SkeletonModel; import net.minecraft.client.model.geom.ModelLayerLocation; import net.minecraft.client.model.geom.ModelLayers; import net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.monster.AbstractSkeleton; @Environment(EnvType.CLIENT) public class SkeletonRenderer extends HumanoidMobRenderer> { private static final ResourceLocation SKELETON_LOCATION = ResourceLocation.withDefaultNamespace("textures/entity/skeleton/skeleton.png"); public SkeletonRenderer(EntityRendererProvider.Context context) { this(context, ModelLayers.SKELETON, ModelLayers.SKELETON_INNER_ARMOR, ModelLayers.SKELETON_OUTER_ARMOR); } public SkeletonRenderer( EntityRendererProvider.Context context, ModelLayerLocation skeletonLayer, ModelLayerLocation innerModelLayer, ModelLayerLocation outerModelLayer ) { this(context, innerModelLayer, outerModelLayer, new SkeletonModel<>(context.bakeLayer(skeletonLayer))); } public SkeletonRenderer(EntityRendererProvider.Context context, ModelLayerLocation skeletonLayer, ModelLayerLocation innerModelLayer, SkeletonModel model) { super(context, model, 0.5F); this.addLayer( new HumanoidArmorLayer<>( this, new SkeletonModel(context.bakeLayer(skeletonLayer)), new SkeletonModel(context.bakeLayer(innerModelLayer)), context.getModelManager() ) ); } /** * Returns the location of an entity's texture. */ public ResourceLocation getTextureLocation(T entity) { return SKELETON_LOCATION; } protected boolean isShaking(T entity) { return entity.isShaking(); } }