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