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 EntityFootStepFX extends EntityFX 009 { 010 private int field_70576_a = 0; 011 private int field_70578_aq = 0; 012 private RenderEngine currentFootSteps; 013 014 public EntityFootStepFX(RenderEngine par1RenderEngine, World par2World, double par3, double par5, double par7) 015 { 016 super(par2World, par3, par5, par7, 0.0D, 0.0D, 0.0D); 017 this.currentFootSteps = par1RenderEngine; 018 this.motionX = this.motionY = this.motionZ = 0.0D; 019 this.field_70578_aq = 200; 020 } 021 022 public void renderParticle(Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7) 023 { 024 float var8 = ((float)this.field_70576_a + par2) / (float)this.field_70578_aq; 025 var8 *= var8; 026 float var9 = 2.0F - var8 * 2.0F; 027 028 if (var9 > 1.0F) 029 { 030 var9 = 1.0F; 031 } 032 033 var9 *= 0.2F; 034 GL11.glDisable(GL11.GL_LIGHTING); 035 float var10 = 0.125F; 036 float var11 = (float)(this.posX - interpPosX); 037 float var12 = (float)(this.posY - interpPosY); 038 float var13 = (float)(this.posZ - interpPosZ); 039 float var14 = this.worldObj.getLightBrightness(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ)); 040 this.currentFootSteps.bindTexture(this.currentFootSteps.getTexture("/misc/footprint.png")); 041 GL11.glEnable(GL11.GL_BLEND); 042 GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 043 par1Tessellator.startDrawingQuads(); 044 par1Tessellator.setColorRGBA_F(var14, var14, var14, var9); 045 par1Tessellator.addVertexWithUV((double)(var11 - var10), (double)var12, (double)(var13 + var10), 0.0D, 1.0D); 046 par1Tessellator.addVertexWithUV((double)(var11 + var10), (double)var12, (double)(var13 + var10), 1.0D, 1.0D); 047 par1Tessellator.addVertexWithUV((double)(var11 + var10), (double)var12, (double)(var13 - var10), 1.0D, 0.0D); 048 par1Tessellator.addVertexWithUV((double)(var11 - var10), (double)var12, (double)(var13 - var10), 0.0D, 0.0D); 049 par1Tessellator.draw(); 050 GL11.glDisable(GL11.GL_BLEND); 051 GL11.glEnable(GL11.GL_LIGHTING); 052 } 053 054 /** 055 * Called to update the entity's position/logic. 056 */ 057 public void onUpdate() 058 { 059 ++this.field_70576_a; 060 061 if (this.field_70576_a == this.field_70578_aq) 062 { 063 this.setDead(); 064 } 065 } 066 067 public int getFXLayer() 068 { 069 return 3; 070 } 071 }