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 }