List list = worldObj.getEntitiesWithinAABBExcludingEntity(exploder,
AxisAlignedBB.getBoundingBoxFromPool(k, k1, i2, i1, l1, j2));
Vec3D vec3d = Vec3D.createVector(explosionX, explosionY, explosionZ);
for (int k2 = 0; k2 < list.size(); k2++) {
Entity entity = (Entity) list.get(k2);
double d4 = entity.getDistance(explosionX, explosionY, explosionZ)
/ (double) explosionSize;
if (d4 <= 1.0D) {
double d6 = entity.posX - explosionX;
double d8 = entity.posY - explosionY;
double d10 = entity.posZ - explosionZ;
double d11 = MathHelper.sqrt_double(d6 * d6 + d8 * d8 + d10 * d10);
d6 /= d11;
d8 /= d11;
d10 /= d11;
double d12 = worldObj.getBlockDensity(vec3d, entity.boundingBox);
double d13 = (1.0D - d4) * d12;
// entity.attackEntityFrom(DamageSource.explosion, (int)(((d13 *
// d13 + d13) / 2D) * 8D * (double)explosionSize + 1.0D));
entity.setFire(0);
Magic.Destruction.icespike(worldObj, entity.posX, entity.posY, entity.posZ);
double d14 = d13;
entity.motionX += d6 * d14;
entity.motionY += d8 * d14;
entity.motionZ += d10 * d14;