    001package net.minecraft.client.renderer.entity;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import net.minecraft.client.model.ModelSilverfish;
    006import net.minecraft.entity.Entity;
    007import net.minecraft.entity.EntityLiving;
    008import net.minecraft.entity.monster.EntitySilverfish;
    009
    010@SideOnly(Side.CLIENT)
    011public class RenderSilverfish extends RenderLiving
    012{
    013    public RenderSilverfish()
    014    {
    015        super(new ModelSilverfish(), 0.3F);
    016    }
    017
    018    /**
    019     * Return the silverfish's maximum death rotation.
    020     */
    021    protected float getSilverfishDeathRotation(EntitySilverfish par1EntitySilverfish)
    022    {
    023        return 180.0F;
    024    }
    025
    026    /**
    027     * Renders the silverfish.
    028     */
    029    public void renderSilverfish(EntitySilverfish par1EntitySilverfish, double par2, double par4, double par6, float par8, float par9)
    030    {
    031        super.doRenderLiving(par1EntitySilverfish, par2, par4, par6, par8, par9);
    032    }
    033
    034    /**
    035     * Disallows the silverfish to render the renderPassModel.
    036     */
    037    protected int shouldSilverfishRenderPass(EntitySilverfish par1EntitySilverfish, int par2, float par3)
    038    {
    039        return -1;
    040    }
    041
    042    protected float getDeathMaxRotation(EntityLiving par1EntityLiving)
    043    {
    044        return this.getSilverfishDeathRotation((EntitySilverfish)par1EntityLiving);
    045    }
    046
    047    /**
    048     * Queries whether should render the specified pass or not.
    049     */
    050    protected int shouldRenderPass(EntityLiving par1EntityLiving, int par2, float par3)
    051    {
    052        return this.shouldSilverfishRenderPass((EntitySilverfish)par1EntityLiving, par2, par3);
    053    }
    054
    055    public void doRenderLiving(EntityLiving par1EntityLiving, double par2, double par4, double par6, float par8, float par9)
    056    {
    057        this.renderSilverfish((EntitySilverfish)par1EntityLiving, par2, par4, par6, par8, par9);
    058    }
    059
    060    /**
    061     * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then
    062     * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic
    063     * (Render<T extends Entity) and this method has signature public void doRender(T entity, double d, double d1,
    064     * double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that.
    065     */
    066    public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9)
    067    {
    068        this.renderSilverfish((EntitySilverfish)par1Entity, par2, par4, par6, par8, par9);
    069    }
    070}