37 lines
1.8 KiB
Java
37 lines
1.8 KiB
Java
package net.minecraft.client.renderer.entity.layers;
|
|
|
|
import com.mojang.blaze3d.vertex.PoseStack;
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.client.model.HappyGhastModel;
|
|
import net.minecraft.client.model.geom.EntityModelSet;
|
|
import net.minecraft.client.model.geom.ModelLayers;
|
|
import net.minecraft.client.renderer.MultiBufferSource;
|
|
import net.minecraft.client.renderer.RenderType;
|
|
import net.minecraft.client.renderer.entity.RenderLayerParent;
|
|
import net.minecraft.client.renderer.entity.state.HappyGhastRenderState;
|
|
import net.minecraft.client.renderer.texture.OverlayTexture;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import net.minecraft.tags.ItemTags;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class RopesLayer<M extends HappyGhastModel> extends RenderLayer<HappyGhastRenderState, M> {
|
|
private final RenderType ropes;
|
|
private final HappyGhastModel adultModel;
|
|
private final HappyGhastModel babyModel;
|
|
|
|
public RopesLayer(RenderLayerParent<HappyGhastRenderState, M> renderer, EntityModelSet entityModels, ResourceLocation texture) {
|
|
super(renderer);
|
|
this.ropes = RenderType.entityCutoutNoCull(texture);
|
|
this.adultModel = new HappyGhastModel(entityModels.bakeLayer(ModelLayers.HAPPY_GHAST_ROPES));
|
|
this.babyModel = new HappyGhastModel(entityModels.bakeLayer(ModelLayers.HAPPY_GHAST_BABY_ROPES));
|
|
}
|
|
|
|
public void render(PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, HappyGhastRenderState renderState, float yRot, float xRot) {
|
|
if (renderState.isLeashHolder && renderState.bodyItem.is(ItemTags.HARNESSES)) {
|
|
HappyGhastModel happyGhastModel = renderState.isBaby ? this.babyModel : this.adultModel;
|
|
happyGhastModel.setupAnim(renderState);
|
|
happyGhastModel.renderToBuffer(poseStack, bufferSource.getBuffer(this.ropes), packedLight, OverlayTexture.NO_OVERLAY);
|
|
}
|
|
}
|
|
}
|