electrodynamics/atomic/src/main/scala/resonantinduction/atomic/ReactorExplosion.java

51 lines
1.5 KiB
Java

package resonantinduction.atomic;
import java.util.Iterator;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.Explosion;
import net.minecraft.world.World;
/** Creates a reactor explosion.
*
* @author Calclavia */
public class ReactorExplosion extends Explosion
{
private Random explosionRAND = new Random();
private World worldObj;
public ReactorExplosion(World world, Entity par2Entity, double par3, double par5, double par7, float par9)
{
super(world, par2Entity, par3, par5, par7, par9);
this.worldObj = world;
this.isFlaming = true;
}
/** Does the second part of the explosion (sound, particles, drop spawn) */
@Override
public void doExplosionB(boolean par1)
{
super.doExplosionB(par1);
Iterator iterator = this.affectedBlockPositions.iterator();
while (iterator.hasNext())
{
ChunkPosition chunkposition = (ChunkPosition) iterator.next();
int x = chunkposition.x;
int y = chunkposition.y;
int z = chunkposition.z;
int id = this.worldObj.getBlockId(x, y, z);
int i1 = this.worldObj.getBlockId(x, y - 1, z);
if (id == 0 && Block.opaqueCubeLookup[i1] && this.explosionRAND.nextInt(3) == 0)
{
this.worldObj.setBlock(x, y, z, Atomic.blockRadioactive.blockID);
}
}
}
}