package biomesoplenty.blocks; import static net.minecraftforge.common.ForgeDirection.UP; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.Entity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; import biomesoplenty.BiomesOPlenty; import biomesoplenty.api.Blocks; import biomesoplenty.api.Items; public class BlockAsh extends Block { public BlockAsh(int par1) { super(par1, Material.sand); this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); } @Override public void registerIcons(IconRegister par1IconRegister) { blockIcon = par1IconRegister.registerIcon("biomesoplenty:ashblock"); } /** * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been * cleared to be reused) */ @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { float var5 = 0.125F; return AxisAlignedBB.getAABBPool().getAABB(par2, par3, par4, par2 + 1, par3 + 1 - var5, par4 + 1); } /** * A randomly called display update to be able to add particles or other items for display */ @Override public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) { super.randomDisplayTick(par1World, par2, par3, par4, par5Random); if (par5Random.nextInt(2) == 0) { par1World.spawnParticle("smoke", par2 + par5Random.nextFloat(), par3 + 1.1F, par4 + par5Random.nextFloat(), 0.0D, 0.0D, 0.0D); } } @Override public boolean isFireSource(World world, int x, int y, int z, int metadata, ForgeDirection side) { if (blockID == Blocks.ash.get().blockID && side == UP) return true; return false; } /** * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity */ @Override public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) { par5Entity.motionX *= 0.4D; par5Entity.motionZ *= 0.4D; } /** * Returns the ID of the items to drop on destruction. */ @Override public int idDropped(int par1, Random par2Random, int par3) { return Items.miscItems.get().itemID; } @Override public int damageDropped(int meta) { return 1; } /** * Returns the quantity of items to drop on block destruction. */ @Override public int quantityDropped(Random par1Random) { return 4; } }