d0 /= d8;
d1 /= d8;
d2 /= d8;
double d9 = worldObj.getBlockDensity(vec3, entity.boundingBox);
double d10 = (1.0D - d7) * d9;
entity.attackEntityFrom(player == null || type == null ? DamageSource.setExplosionSource(this) : new EntityDamageSourceGun(type.shortName, entity, player, type, false), ((int)((d10 * d10 + d10) / 2.0D * 8.0D * explosionSize + 1.0D)));
double d11 = EnchantmentProtection.func_92092_a(entity, d10);
entity.motionX += d0 * d11;
entity.motionY += d1 * d11;
entity.motionZ += d2 * d11;