Volver al índice

src/main/java/ar/com/companeros/horror/client/ParasiteRenderer.java

package ar.com.companeros.horror.client;

import ar.com.companeros.Companeros;
import ar.com.companeros.horror.ParasiteEntity;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.resources.ResourceLocation;

/** La apariencia se decide por observador; el cuerpo del servidor sigue siendo el mismo. */
public final class ParasiteRenderer extends MobRenderer<ParasiteEntity, ParasiteModel> {
    private static final ResourceLocation FRIENDLY = new ResourceLocation(Companeros.ID, "textures/entity/parasite_friendly.png");
    private final ParasiteModel original;
    private final ParasiteModel friendly;

    public ParasiteRenderer(EntityRendererProvider.Context context) {
        super(context, new ParasiteModel(context.bakeLayer(ParasiteModel.LAYER), false), .45F);
        original = model;
        friendly = new ParasiteModel(context.bakeLayer(ParasiteModel.FRIENDLY_LAYER), true);
    }
    @Override public ResourceLocation getTextureLocation(ParasiteEntity entity) {
        return HorrorClientSafety.isEnabled() ? FRIENDLY : ParasiteHostSkin.texture(entity);
    }
    @Override public void render(ParasiteEntity entity, float yaw, float partialTick, PoseStack pose,
            MultiBufferSource buffers, int light) {
        model = HorrorClientSafety.isEnabled() ? friendly : original;
        super.render(entity, yaw, partialTick, pose, buffers, light);
    }
}