0.0D);
ArrayList arraylist = new ArrayList();
arraylist.addAll(destroyedBlockPositions);
for (int i = arraylist.size() - 1; i >= 0; i--) {
ChunkPosition chunkposition = (ChunkPosition) arraylist.get(i);
int k = chunkposition.x;
int i1 = chunkposition.y;
int k1 = chunkposition.z;
int i2 = worldObj.getBlockId(k, i1, k1);
if (par1) {
double d = (float) k + worldObj.rand.nextFloat();
double d1 = (float) i1 + worldObj.rand.nextFloat();
double d2 = (float) k1 + worldObj.rand.nextFloat();
double d3 = d - explosionX;
double d4 = d1 - explosionY;
double d5 = d2 - explosionZ;
double d6 = MathHelper.sqrt_double(d3 * d3 + d4 * d4 + d5 * d5);
d3 /= d6;
d4 /= d6;
d5 /= d6;
double d7 = 0.5D / (d6 / (double) explosionSize + 0.1D);
d7 *= worldObj.rand.nextFloat() * worldObj.rand.nextFloat() + 0.3F;
d3 *= d7;
d4 *= d7;
d5 *= d7;
worldObj.spawnParticle("explode", (d + explosionX * 1.0D) / 2D,
(d1 + explosionY * 1.0D) / 2D, (d2 + explosionZ * 1.0D) / 2D, d3, d4, d5);
worldObj.spawnParticle("smoke", d, d1, d2, d3, d4, d5);
}
if (i2 > 0) {
// Block.blocksList[i2].dropBlockAsItemWithChance(worldObj, k, i1, k1,
// worldObj.getBlockMetadata(k, i1, k1), 0.3F, 0);
// worldObj.setBlockWithNotify(k, i1, k1, 0);
// Block.blocksList[i2].onBlockDestroyedByExplosion(worldObj, k, i1, k1);
}
}
for (int j = arraylist.size() - 1; j >= 0; j--) {
ChunkPosition chunkposition1 = (ChunkPosition) arraylist.get(j);
int l = chunkposition1.x;
int j1 = chunkposition1.y;
int l1 = chunkposition1.z;
int j2 = worldObj.getBlockId(l, j1, l1);
int k2 = worldObj.getBlockId(l, j1 - 1, l1);