    001    package net.minecraft.src;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.SideOnly;
    005    import org.lwjgl.opengl.GL11;
    006
    007    @SideOnly(Side.CLIENT)
    008    public class RenderSpider extends RenderLiving
    009    {
    010        public RenderSpider()
    011        {
    012            super(new ModelSpider(), 1.0F);
    013            this.setRenderPassModel(new ModelSpider());
    014        }
    015
    016        protected float setSpiderDeathMaxRotation(EntitySpider par1EntitySpider)
    017        {
    018            return 180.0F;
    019        }
    020
    021        /**
    022         * Sets the spider's glowing eyes
    023         */
    024        protected int setSpiderEyeBrightness(EntitySpider par1EntitySpider, int par2, float par3)
    025        {
    026            if (par2 != 0)
    027            {
    028                return -1;
    029            }
    030            else
    031            {
    032                this.loadTexture("/mob/spider_eyes.png");
    033                float var4 = 1.0F;
    034                GL11.glEnable(GL11.GL_BLEND);
    035                GL11.glDisable(GL11.GL_ALPHA_TEST);
    036                GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE);
    037                char var5 = 61680;
    038                int var6 = var5 % 65536;
    039                int var7 = var5 / 65536;
    040                OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)var6 / 1.0F, (float)var7 / 1.0F);
    041                GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    042                GL11.glColor4f(1.0F, 1.0F, 1.0F, var4);
    043                return 1;
    044            }
    045        }
    046
    047        protected void scaleSpider(EntitySpider par1EntitySpider, float par2)
    048        {
    049            float var3 = par1EntitySpider.spiderScaleAmount();
    050            GL11.glScalef(var3, var3, var3);
    051        }
    052
    053        /**
    054         * Allows the render to do any OpenGL state modifications necessary before the model is rendered. Args:
    055         * entityLiving, partialTickTime
    056         */
    057        protected void preRenderCallback(EntityLiving par1EntityLiving, float par2)
    058        {
    059            this.scaleSpider((EntitySpider)par1EntityLiving, par2);
    060        }
    061
    062        protected float getDeathMaxRotation(EntityLiving par1EntityLiving)
    063        {
    064            return this.setSpiderDeathMaxRotation((EntitySpider)par1EntityLiving);
    065        }
    066
    067        /**
    068         * Queries whether should render the specified pass or not.
    069         */
    070        protected int shouldRenderPass(EntityLiving par1EntityLiving, int par2, float par3)
    071        {
    072            return this.setSpiderEyeBrightness((EntitySpider)par1EntityLiving, par2, par3);
    073        }
    074    }