This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
Herobrine-Rewoven/src/main/java/com/thebrokenrail/herobrine/client/entity/HerobrineEntityRenderer.java

67 lines
2.6 KiB
Java

package com.thebrokenrail.herobrine.client.entity;
import com.thebrokenrail.herobrine.HerobrineRewoven;
import com.thebrokenrail.herobrine.entity.HerobrineEntity;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.EntityRenderDispatcher;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.feature.HeldItemFeatureRenderer;
import net.minecraft.client.render.entity.feature.StuckArrowsFeatureRenderer;
import net.minecraft.client.render.entity.model.PlayerEntityModel;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
@Environment(EnvType.CLIENT)
public class HerobrineEntityRenderer extends LivingEntityRenderer<HerobrineEntity, HerobrineEntityRenderer.Model> {
protected static class Model extends PlayerEntityModel<HerobrineEntity> {
public Model(float scale, boolean thinArms) {
super(scale, thinArms);
}
@Override
public void setAngles(HerobrineEntity livingEntity, float f, float g, float h, float i, float j) {
super.setAngles(livingEntity, f, g, h, i, j);
switch (livingEntity.getDataTracker().get(HerobrineEntity.POSE)) {
case FIREBALL: {
leftArm.pitch = -45;
leftArm.yaw = -6;
rightArm.pitch = -45;
rightArm.yaw = 6;
break;
}
case LIGHTNING: {
leftArm.roll = -65;
rightArm.roll = 65;
break;
}
}
}
}
public HerobrineEntityRenderer(EntityRenderDispatcher dispatcher) {
super(dispatcher, new Model(0.0f, false), 0.5f);
addFeature(new HeldItemFeatureRenderer<>(this));
addFeature(new StuckArrowsFeatureRenderer<>(this));
}
@Override
public Identifier getTexture(HerobrineEntity entity) {
return new Identifier(HerobrineRewoven.NAMESPACE, "textures/entity/herobrine.png");
}
@Override
protected void renderLabelIfPresent(HerobrineEntity herobrineEntity, Text text, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i) {
matrixStack.push();
super.renderLabelIfPresent(herobrineEntity, text, matrixStack, vertexConsumerProvider, i);
matrixStack.pop();
}
@Override
protected boolean hasLabel(HerobrineEntity livingEntity) {
return true;
}
}