Fix NPE issue when mods add null EntityFX's to be rendererd.

This commit is contained in:
LexManos committed 2012-10-21 22:59:57 -07:00
1 parent 9e86399aae
commit dc9b1d90bd
1 file changed
+38 -9
@@ -29,7 +29,20 @@
public EffectRenderer(World par1World, RenderEngine par2RenderEngine)
{
if (par1World != null)
@@ -58,6 +70,17 @@
@@ -52,12 +64,27 @@
for (int var2 = 0; var2 < this.fxLayers[var1].size(); ++var2)
{
EntityFX var3 = (EntityFX)this.fxLayers[var1].get(var2);
- var3.onUpdate();
-
- if (var3.isDead)
+
+ if (var3 != null)
+ {
+ var3.onUpdate();
+ }
+
+ if (var3 == null || var3.isDead)
{
this.fxLayers[var1].remove(var2--);
}
@@ -47,16 +60,25 @@
}
}
}
@@ -112,6 +135,26 @@
@@ -105,12 +132,34 @@
for (int var11 = 0; var11 < this.fxLayers[var8].size(); ++var11)
{
EntityFX var12 = (EntityFX)this.fxLayers[var8].get(var11);
+ if (var12 == null) continue;
var10.setBrightness(var12.getBrightnessForRender(par2));
var12.renderParticle(var10, par2, var3, var7, var4, var5, var6);
}
var10.draw();
}
}
+ }
+
+ for (String key : effectList.keySet())
+ {
+ ForgeHooksClient.bindTexture(key, 0);
+ for (EntityFX entry : effectList.get(key))
+ {
+ {
+ if (entry == null) continue;
+ Tessellator tessallator = Tessellator.instance;
+ //GL11.glBindTexture(GL11.GL_TEXTURE_2D, renderer.getTexture(key));
+ tessallator.startDrawingQuads();
@@ -70,11 +92,18 @@
+ tessallator.draw();
+ }
+ ForgeHooksClient.unbindTexture();
+ }
}
}
public void renderLitParticles(Entity par1Entity, float par2)
@@ -144,13 +187,15 @@
@@ -130,6 +179,7 @@
for (int var11 = 0; var11 < this.fxLayers[var9].size(); ++var11)
{
EntityFX var12 = (EntityFX)this.fxLayers[var9].get(var11);
+ if (var12 == null) continue;
var10.setBrightness(var12.getBrightnessForRender(par2));
var12.renderParticle(var10, par2, var4, var8, var5, var6, var7);
}
@@ -144,13 +194,15 @@
{
this.fxLayers[var2].clear();
}
@@ -93,7 +122,7 @@
byte var7 = 4;
for (int var8 = 0; var8 < var7; ++var8)
@@ -163,7 +208,7 @@
@@ -163,7 +215,7 @@
double var13 = (double)par2 + ((double)var9 + 0.5D) / (double)var7;
double var15 = (double)par3 + ((double)var10 + 0.5D) / (double)var7;
int var17 = this.rand.nextInt(6);
@@ -102,7 +131,7 @@
}
}
}
@@ -215,12 +260,60 @@
@@ -215,12 +267,60 @@
var8 = (double)par1 + var6.maxX + (double)var7;
}