mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-14 01:04:24 +00:00
Fix NPE issue when mods add null EntityFX's to be rendererd.
This commit is contained in:
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user