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