    001    package net.minecraft.src;
    002
    003    import java.util.Random;
    004
    005    public class BlockOre extends Block
    006    {
    007        public BlockOre(int par1, int par2)
    008        {
    009            super(par1, par2, Material.rock);
    010            this.setCreativeTab(CreativeTabs.tabBlock);
    011        }
    012
    013        /**
    014         * Returns the ID of the items to drop on destruction.
    015         */
    016        public int idDropped(int par1, Random par2Random, int par3)
    017        {
    018            return this.blockID == Block.oreCoal.blockID ? Item.coal.shiftedIndex : (this.blockID == Block.oreDiamond.blockID ? Item.diamond.shiftedIndex : (this.blockID == Block.oreLapis.blockID ? Item.dyePowder.shiftedIndex : (this.blockID == Block.oreEmerald.blockID ? Item.emerald.shiftedIndex : this.blockID)));
    019        }
    020
    021        /**
    022         * Returns the quantity of items to drop on block destruction.
    023         */
    024        public int quantityDropped(Random par1Random)
    025        {
    026            return this.blockID == Block.oreLapis.blockID ? 4 + par1Random.nextInt(5) : 1;
    027        }
    028
    029        /**
    030         * Returns the usual quantity dropped by the block plus a bonus of 1 to 'i' (inclusive).
    031         */
    032        public int quantityDroppedWithBonus(int par1, Random par2Random)
    033        {
    034            if (par1 > 0 && this.blockID != this.idDropped(0, par2Random, par1))
    035            {
    036                int var3 = par2Random.nextInt(par1 + 2) - 1;
    037
    038                if (var3 < 0)
    039                {
    040                    var3 = 0;
    041                }
    042
    043                return this.quantityDropped(par2Random) * (var3 + 1);
    044            }
    045            else
    046            {
    047                return this.quantityDropped(par2Random);
    048            }
    049        }
    050
    051        /**
    052         * Drops the block items with a specified chance of dropping the specified items
    053         */
    054        public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
    055        {
    056            super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, par7);
    057
    058            if (this.idDropped(par5, par1World.rand, par7) != this.blockID)
    059            {
    060                int var8 = 0;
    061
    062                if (this.blockID == Block.oreCoal.blockID)
    063                {
    064                    var8 = MathHelper.getRandomIntegerInRange(par1World.rand, 0, 2);
    065                }
    066                else if (this.blockID == Block.oreDiamond.blockID)
    067                {
    068                    var8 = MathHelper.getRandomIntegerInRange(par1World.rand, 3, 7);
    069                }
    070                else if (this.blockID == Block.oreEmerald.blockID)
    071                {
    072                    var8 = MathHelper.getRandomIntegerInRange(par1World.rand, 3, 7);
    073                }
    074                else if (this.blockID == Block.oreLapis.blockID)
    075                {
    076                    var8 = MathHelper.getRandomIntegerInRange(par1World.rand, 2, 5);
    077                }
    078
    079                this.dropXpOnBlockBreak(par1World, par2, par3, par4, var8);
    080            }
    081        }
    082
    083        /**
    084         * Determines the damage on the item the block drops. Used in cloth and wood.
    085         */
    086        protected int damageDropped(int par1)
    087        {
    088            return this.blockID == Block.oreLapis.blockID ? 4 : 0;
    089        }
    090    }