package net.minecraft.client.renderer.entity;

import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.Mob;
import net.minecraft.client.renderer.entity.layers.RenderLayer;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.ZombieModel;
import net.minecraft.world.entity.monster.Zombie;

public abstract class AbstractZombieRenderer<T extends Zombie, M extends ZombieModel<T>> extends HumanoidMobRenderer<T, M> {
    private static final ResourceLocation ZOMBIE_LOCATION;
    
    protected AbstractZombieRenderer(final EntityRenderDispatcher egm, final M dyc2, final M dyc3, final M dyc4) {
        super(egm, dyc2, 0.5f);
        this.addLayer((RenderLayer<T, M>)new HumanoidArmorLayer((RenderLayerParent<LivingEntity, HumanoidModel>)this, dyc3, dyc4));
    }
    
    @Override
    public ResourceLocation getTextureLocation(final Zombie bcu) {
        return AbstractZombieRenderer.ZOMBIE_LOCATION;
    }
    
    @Override
    protected boolean isShaking(final T bcu) {
        return bcu.isUnderWaterConverting();
    }
    
    static {
        ZOMBIE_LOCATION = new ResourceLocation("textures/entity/zombie/zombie.png");
    }
}
