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 }