From a985d742c58a6d322918d6513bd2a2d1c5a07ab9 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Tue, 26 Aug 2014 23:44:22 -0500 Subject: [PATCH] Fixed Bug: #0618 - Flicking Particles When crafting is busy. --- client/render/effects/CraftingFx.java | 43 ++++++++++------------- client/render/effects/EnergyFx.java | 12 ------- client/render/effects/LightningFX.java | 12 +++---- client/render/effects/MatterCannonFX.java | 10 +++--- 4 files changed, 29 insertions(+), 48 deletions(-) diff --git a/client/render/effects/CraftingFx.java b/client/render/effects/CraftingFx.java index 5c38dfae0..99acf0ba9 100644 --- a/client/render/effects/CraftingFx.java +++ b/client/render/effects/CraftingFx.java @@ -57,47 +57,42 @@ public class CraftingFx extends EntityBreakingFX this.particleAlpha *= 0.51f; } - public void renderParticle(Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7) + public void renderParticle(Tessellator par1Tessellator, float partialTick, float x, float y, float z, float rx, float rz) { - /* - * Minecraft.getMinecraft().getTextureManager().bindTexture( TextureMap.locationBlocksTexture ); - * - * GL11.glPushMatrix(); GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F ); - * - * GL11.glDepthMask( false ); GL11.glEnable( GL11.GL_BLEND ); GL11.glBlendFunc( GL11.GL_SRC_ALPHA, - * GL11.GL_ONE_MINUS_SRC_ALPHA ); GL11.glAlphaFunc( GL11.GL_GREATER, 0.003921569F ); - */ + if ( partialTick < 0 || partialTick > 1 ) + return; float f6 = this.particleTextureIndex.getMinU(); float f7 = this.particleTextureIndex.getMaxU(); float f8 = this.particleTextureIndex.getMinV(); float f9 = this.particleTextureIndex.getMaxV(); - float f10 = 0.1F * this.particleScale; + float scale = 0.1F * this.particleScale; - float f11 = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) par2 - interpPosX); - float f12 = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) par2 - interpPosY); - float f13 = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) par2 - interpPosZ); + float offx = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) partialTick); + float offy = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) partialTick); + float offz = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) partialTick); float f14 = 1.0F; - int blkX = MathHelper.floor_double( posX ); - int blkY = MathHelper.floor_double( posY ); - int blkZ = MathHelper.floor_double( posZ ); - + int blkX = MathHelper.floor_double( offx ); + int blkY = MathHelper.floor_double( offy ); + int blkZ = MathHelper.floor_double( offz ); if ( blkX == startBlkX && blkY == startBlkY && blkZ == startBlkZ ) { + offx -= interpPosX; + offy -= interpPosY; + offz -= interpPosZ; + + // AELog.info( "" + partialTick ); par1Tessellator.setColorRGBA_F( this.particleRed * f14, this.particleGreen * f14, this.particleBlue * f14, this.particleAlpha ); - par1Tessellator.addVertexWithUV( (double) (f11 - par3 * f10 - par6 * f10), (double) (f12 - par4 * f10), (double) (f13 - par5 * f10 - par7 * f10), + par1Tessellator.addVertexWithUV( (double) (offx - x * scale - rx * scale), (double) (offy - y * scale), (double) (offz - z * scale - rz * scale), (double) f7, (double) f9 ); - par1Tessellator.addVertexWithUV( (double) (f11 - par3 * f10 + par6 * f10), (double) (f12 + par4 * f10), (double) (f13 - par5 * f10 + par7 * f10), + par1Tessellator.addVertexWithUV( (double) (offx - x * scale + rx * scale), (double) (offy + y * scale), (double) (offz - z * scale + rz * scale), (double) f7, (double) f8 ); - par1Tessellator.addVertexWithUV( (double) (f11 + par3 * f10 + par6 * f10), (double) (f12 + par4 * f10), (double) (f13 + par5 * f10 + par7 * f10), + par1Tessellator.addVertexWithUV( (double) (offx + x * scale + rx * scale), (double) (offy + y * scale), (double) (offz + z * scale + rz * scale), (double) f6, (double) f8 ); - par1Tessellator.addVertexWithUV( (double) (f11 + par3 * f10 - par6 * f10), (double) (f12 - par4 * f10), (double) (f13 + par5 * f10 - par7 * f10), + par1Tessellator.addVertexWithUV( (double) (offx + x * scale - rx * scale), (double) (offy - y * scale), (double) (offz + z * scale - rz * scale), (double) f6, (double) f9 ); } - - // GL11.glPopAttrib(); - // GL11.glPopMatrix(); } } diff --git a/client/render/effects/EnergyFx.java b/client/render/effects/EnergyFx.java index de50393d7..c3f392a47 100644 --- a/client/render/effects/EnergyFx.java +++ b/client/render/effects/EnergyFx.java @@ -58,15 +58,6 @@ public class EnergyFx extends EntityBreakingFX public void renderParticle(Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7) { - /* - * Minecraft.getMinecraft().getTextureManager().bindTexture( TextureMap.locationBlocksTexture ); - * - * GL11.glPushMatrix(); GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F ); - * - * GL11.glDepthMask( false ); GL11.glEnable( GL11.GL_BLEND ); GL11.glBlendFunc( GL11.GL_SRC_ALPHA, - * GL11.GL_ONE_MINUS_SRC_ALPHA ); GL11.glAlphaFunc( GL11.GL_GREATER, 0.003921569F ); - */ - float f6 = this.particleTextureIndex.getMinU(); float f7 = this.particleTextureIndex.getMaxU(); float f8 = this.particleTextureIndex.getMinV(); @@ -94,9 +85,6 @@ public class EnergyFx extends EntityBreakingFX par1Tessellator.addVertexWithUV( (double) (f11 + par3 * f10 - par6 * f10), (double) (f12 - par4 * f10), (double) (f13 + par5 * f10 - par7 * f10), (double) f6, (double) f9 ); } - - // GL11.glPopAttrib(); - // GL11.glPopMatrix(); } } diff --git a/client/render/effects/LightningFX.java b/client/render/effects/LightningFX.java index 7b2b0b33d..bca5dc80d 100644 --- a/client/render/effects/LightningFX.java +++ b/client/render/effects/LightningFX.java @@ -9,8 +9,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; - public class LightningFX extends EntityFX { @@ -167,12 +165,10 @@ public class LightningFX extends EntityFX } } } - - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); - GL11.glDisable( GL11.GL_CULL_FACE ); - tess.draw(); - GL11.glPopAttrib(); - tess.startDrawingQuads(); + /* + * GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); GL11.glDisable( GL11.GL_CULL_FACE ); tess.draw(); + * GL11.glPopAttrib(); tess.startDrawingQuads(); + */ } boolean hasData = false; diff --git a/client/render/effects/MatterCannonFX.java b/client/render/effects/MatterCannonFX.java index eb2a40126..1839080fa 100644 --- a/client/render/effects/MatterCannonFX.java +++ b/client/render/effects/MatterCannonFX.java @@ -1,9 +1,7 @@ package appeng.client.render.effects; -import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityBreakingFX; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.item.Item; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -42,11 +40,15 @@ public class MatterCannonFX extends EntityBreakingFX this.particleAlpha *= 0.59f; } + @Override + public int getFXLayer() + { + return 1; + } + @Override public void renderParticle(Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7) { - Minecraft.getMinecraft().getTextureManager().bindTexture( TextureMap.locationBlocksTexture ); - float f6 = this.particleTextureIndex.getMinU(); float f7 = this.particleTextureIndex.getMaxU(); float f8 = this.particleTextureIndex.getMinV();