/// <summary> /// Renders all current particles. Args player, partialTickTime /// </summary> public virtual void RenderParticles(Entity par1Entity, float par2) { float f = ActiveRenderInfo.RotationX; float f1 = ActiveRenderInfo.RotationZ; float f2 = ActiveRenderInfo.RotationYZ; float f3 = ActiveRenderInfo.RotationXY; float f4 = ActiveRenderInfo.RotationXZ; EntityFX.InterpPosX = par1Entity.LastTickPosX + (par1Entity.PosX - par1Entity.LastTickPosX) * (double)par2; EntityFX.InterpPosY = par1Entity.LastTickPosY + (par1Entity.PosY - par1Entity.LastTickPosY) * (double)par2; EntityFX.InterpPosZ = par1Entity.LastTickPosZ + (par1Entity.PosZ - par1Entity.LastTickPosZ) * (double)par2; for (int i = 0; i < 3; i++) { if (FxLayers[i].Count == 0) { continue; } int j = 0; if (i == 0) { j = Renderer.GetTexture("/particles.png"); } if (i == 1) { j = Renderer.GetTexture("/terrain.png"); } if (i == 2) { j = Renderer.GetTexture("/gui/items.png"); } //GL.BindTexture(TextureTarget.Texture2D, j); Tessellator tessellator = Tessellator.Instance; //GL.Color4(1.0F, 1.0F, 1.0F, 1.0F); tessellator.StartDrawingQuads(); for (int k = 0; k < FxLayers[i].Count; k++) { EntityFX entityfx = FxLayers[i][k]; tessellator.SetBrightness(entityfx.GetBrightnessForRender(par2)); entityfx.RenderParticle(tessellator, par2, f, f4, f1, f2, f3); } tessellator.Draw(); } }
public override void RenderParticle(Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7) { int i = (int)((((float)Field_35130_a + par2) * 15F) / (float)Field_35129_ay); if (i > 15) { return; } else { Field_35128_az.BindTexture("misc.explosion.png"); float f = (float)(i % 4) / 4F; float f1 = f + 0.24975F; float f2 = (float)(i / 4) / 4F; float f3 = f2 + 0.24975F; float f4 = 2.0F * Field_35131_aA; 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); //GL.Color4(1.0F, 1.0F, 1.0F, 1.0F); //GL.Disable(EnableCap.Lighting); RenderHelper.DisableStandardItemLighting(); par1Tessellator.StartDrawingQuads(); par1Tessellator.SetColorRGBA_F(ParticleRed, ParticleGreen, ParticleBlue, 1.0F); par1Tessellator.SetNormal(0.0F, 1.0F, 0.0F); par1Tessellator.SetBrightness(240); par1Tessellator.AddVertexWithUV(f5 - par3 * f4 - par6 * f4, f6 - par4 * f4, f7 - par5 * f4 - par7 * f4, f1, f3); 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, f, f2); par1Tessellator.AddVertexWithUV((f5 + par3 * f4) - par6 * f4, f6 - par4 * f4, (f7 + par5 * f4) - par7 * f4, f, f3); par1Tessellator.Draw(); //GL.PolygonOffset(0.0F, 0.0F); //GL.Enable(EnableCap.Lighting); return; } }
public virtual void Func_1187_b(Entity par1Entity, float par2) { float f = MathHelper2.Cos(par1Entity.RotationYaw * 0.01745329F); float f1 = MathHelper2.Sin(par1Entity.RotationYaw * 0.01745329F); float f2 = -f1 *MathHelper2.Sin(par1Entity.RotationPitch * 0.01745329F); float f3 = f * MathHelper2.Sin(par1Entity.RotationPitch * 0.01745329F); float f4 = MathHelper2.Cos(par1Entity.RotationPitch * 0.01745329F); sbyte byte0 = 3; if (FxLayers[byte0].Count == 0) { return; } Tessellator tessellator = Tessellator.Instance; for (int i = 0; i < FxLayers[byte0].Count; i++) { EntityFX entityfx = FxLayers[byte0][i]; tessellator.SetBrightness(entityfx.GetBrightnessForRender(par2)); entityfx.RenderParticle(tessellator, par2, f, f4, f1, f2, f3); } }