001    package net.minecraft.client.renderer.entity;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import net.minecraft.client.model.ModelBase;
006    import net.minecraft.entity.EntityLiving;
007    import net.minecraft.entity.passive.EntitySheep;
008    import net.minecraft.entity.passive.EntityWolf;
009    import org.lwjgl.opengl.GL11;
010    
011    @SideOnly(Side.CLIENT)
012    public class RenderWolf extends RenderLiving
013    {
014        public RenderWolf(ModelBase par1ModelBase, ModelBase par2ModelBase, float par3)
015        {
016            super(par1ModelBase, par3);
017            this.setRenderPassModel(par2ModelBase);
018        }
019    
020        protected float getTailRotation(EntityWolf par1EntityWolf, float par2)
021        {
022            return par1EntityWolf.getTailRotation();
023        }
024    
025        protected int func_82447_a(EntityWolf par1EntityWolf, int par2, float par3)
026        {
027            float var4;
028    
029            if (par2 == 0 && par1EntityWolf.getWolfShaking())
030            {
031                var4 = par1EntityWolf.getBrightness(par3) * par1EntityWolf.getShadingWhileShaking(par3);
032                this.loadTexture(par1EntityWolf.getTexture());
033                GL11.glColor3f(var4, var4, var4);
034                return 1;
035            }
036            else if (par2 == 1 && par1EntityWolf.isTamed())
037            {
038                this.loadTexture("/mob/wolf_collar.png");
039                var4 = 1.0F;
040                int var5 = par1EntityWolf.getCollarColor();
041                GL11.glColor3f(var4 * EntitySheep.fleeceColorTable[var5][0], var4 * EntitySheep.fleeceColorTable[var5][1], var4 * EntitySheep.fleeceColorTable[var5][2]);
042                return 1;
043            }
044            else
045            {
046                return -1;
047            }
048        }
049    
050        /**
051         * Queries whether should render the specified pass or not.
052         */
053        protected int shouldRenderPass(EntityLiving par1EntityLiving, int par2, float par3)
054        {
055            return this.func_82447_a((EntityWolf)par1EntityLiving, par2, par3);
056        }
057    
058        /**
059         * Defines what float the third param in setRotationAngles of ModelBase is
060         */
061        protected float handleRotationFloat(EntityLiving par1EntityLiving, float par2)
062        {
063            return this.getTailRotation((EntityWolf)par1EntityLiving, par2);
064        }
065    }