public virtual void Draw(Tessellator par1Tessellator, float par2) { Vec3D vec3d = VertexPositions[1].Vector3D.Subtract(VertexPositions[0].Vector3D); Vec3D vec3d1 = VertexPositions[1].Vector3D.Subtract(VertexPositions[2].Vector3D); Vec3D vec3d2 = vec3d1.CrossProduct(vec3d).Normalize(); par1Tessellator.StartDrawingQuads(); if (InvertNormal) { par1Tessellator.SetNormal(-(float)vec3d2.XCoord, -(float)vec3d2.YCoord, -(float)vec3d2.ZCoord); } else { par1Tessellator.SetNormal((float)vec3d2.XCoord, (float)vec3d2.YCoord, (float)vec3d2.ZCoord); } for (int i = 0; i < 4; i++) { PositionTextureVertex positiontexturevertex = VertexPositions[i]; par1Tessellator.AddVertexWithUV((float)positiontexturevertex.Vector3D.XCoord * par2, (float)positiontexturevertex.Vector3D.YCoord * par2, (float)positiontexturevertex.Vector3D.ZCoord * par2, positiontexturevertex.TexturePositionX, positiontexturevertex.TexturePositionY); } par1Tessellator.Draw(); }
public override void RenderParticle(Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7) { float f = ((float)(GetParticleTextureIndex() % 16) + ParticleTextureJitterX / 4F) / 16F; float f1 = f + 0.01560938F; float f2 = ((float)(GetParticleTextureIndex() / 16) + ParticleTextureJitterY / 4F) / 16F; float f3 = f2 + 0.01560938F; float f4 = 0.1F * ParticleScale; float f5 = (float)((PrevPosX + (PosX - PrevPosX) * (double)par2) - InterpPosX); float f6 = (float)((PrevPosY + (PosY - PrevPosY) * (double)par2) - InterpPosY); float f7 = (float)((PrevPosZ + (PosZ - PrevPosZ) * (double)par2) - InterpPosZ); float f8 = 1.0F; par1Tessellator.SetColorOpaque_F(f8 * ParticleRed, f8 * ParticleGreen, f8 * ParticleBlue); par1Tessellator.AddVertexWithUV(f5 - par3 * f4 - par6 * f4, f6 - par4 * f4, f7 - par5 * f4 - par7 * f4, f, f3); par1Tessellator.AddVertexWithUV((f5 - par3 * f4) + par6 * f4, f6 + par4 * f4, (f7 - par5 * f4) + par7 * f4, f, f2); par1Tessellator.AddVertexWithUV(f5 + par3 * f4 + par6 * f4, f6 + par4 * f4, f7 + par5 * f4 + par7 * f4, f1, f2); par1Tessellator.AddVertexWithUV((f5 + par3 * f4) - par6 * f4, f6 - par4 * f4, (f7 + par5 * f4) - par7 * f4, f1, f3); }