    001    package net.minecraft.client.renderer.entity;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.SideOnly;
    005    import net.minecraft.client.model.ModelSilverfish;
    006    import net.minecraft.entity.Entity;
    007    import net.minecraft.entity.EntityLiving;
    008    import net.minecraft.entity.monster.EntitySilverfish;
    009
    010    @SideOnly(Side.CLIENT)
    011    public 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    }