001 package net.minecraft.item; 002 003 import net.minecraft.block.Block; 004 005 public enum EnumToolMaterial 006 { 007 WOOD(0, 59, 2.0F, 0, 15), 008 STONE(1, 131, 4.0F, 1, 5), 009 IRON(2, 250, 6.0F, 2, 14), 010 EMERALD(3, 1561, 8.0F, 3, 10), 011 GOLD(0, 32, 12.0F, 0, 22); 012 013 /** 014 * The level of material this tool can harvest (3 = DIAMOND, 2 = IRON, 1 = STONE, 0 = IRON/GOLD) 015 */ 016 private final int harvestLevel; 017 018 /** 019 * The number of uses this material allows. (wood = 59, stone = 131, iron = 250, diamond = 1561, gold = 32) 020 */ 021 private final int maxUses; 022 023 /** 024 * The strength of this tool material against blocks which it is effective against. 025 */ 026 private final float efficiencyOnProperMaterial; 027 028 /** Damage versus entities. */ 029 private final int damageVsEntity; 030 031 /** Defines the natural enchantability factor of the material. */ 032 private final int enchantability; 033 034 //Added by forge for custom Armor materials. 035 public Item customCraftingMaterial = null; 036 037 private EnumToolMaterial(int par3, int par4, float par5, int par6, int par7) 038 { 039 this.harvestLevel = par3; 040 this.maxUses = par4; 041 this.efficiencyOnProperMaterial = par5; 042 this.damageVsEntity = par6; 043 this.enchantability = par7; 044 } 045 046 /** 047 * The number of uses this material allows. (wood = 59, stone = 131, iron = 250, diamond = 1561, gold = 32) 048 */ 049 public int getMaxUses() 050 { 051 return this.maxUses; 052 } 053 054 /** 055 * The strength of this tool material against blocks which it is effective against. 056 */ 057 public float getEfficiencyOnProperMaterial() 058 { 059 return this.efficiencyOnProperMaterial; 060 } 061 062 /** 063 * Damage versus entities. 064 */ 065 public int getDamageVsEntity() 066 { 067 return this.damageVsEntity; 068 } 069 070 /** 071 * The level of material this tool can harvest (3 = DIAMOND, 2 = IRON, 1 = STONE, 0 = IRON/GOLD) 072 */ 073 public int getHarvestLevel() 074 { 075 return this.harvestLevel; 076 } 077 078 /** 079 * Return the natural enchantability factor of the material. 080 */ 081 public int getEnchantability() 082 { 083 return this.enchantability; 084 } 085 086 /** 087 * Return the crafting material for this tool material, used to determine the item that can be used to repair a tool 088 * with an anvil 089 */ 090 public int getToolCraftingMaterial() 091 { 092 switch (this) 093 { 094 case WOOD: return Block.planks.blockID; 095 case STONE: return Block.cobblestone.blockID; 096 case GOLD: return Item.ingotGold.itemID; 097 case IRON: return Item.ingotIron.itemID; 098 case EMERALD: return Item.diamond.itemID; 099 default: return (customCraftingMaterial == null ? 0 : customCraftingMaterial.itemID); 100 } 101 } 102 }