001    package net.minecraft.src;
002    
003    public enum EnumArmorMaterial
004    {
005        CLOTH(5, new int[]{1, 3, 2, 1}, 15),
006        CHAIN(15, new int[]{2, 5, 4, 1}, 12),
007        IRON(15, new int[]{2, 6, 5, 2}, 9),
008        GOLD(7, new int[]{2, 5, 3, 1}, 25),
009        DIAMOND(33, new int[]{3, 8, 6, 3}, 10);
010    
011        /**
012         * Holds the maximum damage factor (each piece multiply this by it's own value) of the material, this is the item
013         * damage (how much can absorb before breaks)
014         */
015        private int maxDamageFactor;
016    
017        /**
018         * Holds the damage reduction (each 1 points is half a shield on gui) of each piece of armor (helmet, plate, legs
019         * and boots)
020         */
021        private int[] damageReductionAmountArray;
022    
023        /** Return the enchantability factor of the material */
024        private int enchantability;
025    
026        private EnumArmorMaterial(int par3, int[] par4ArrayOfInteger, int par5)
027        {
028            this.maxDamageFactor = par3;
029            this.damageReductionAmountArray = par4ArrayOfInteger;
030            this.enchantability = par5;
031        }
032    
033        /**
034         * Returns the durability for a armor slot of for this type.
035         */
036        public int getDurability(int par1)
037        {
038            return ItemArmor.getMaxDamageArray()[par1] * this.maxDamageFactor;
039        }
040    
041        /**
042         * Return the damage reduction (each 1 point is a half a shield on gui) of the piece index passed (0 = helmet, 1 =
043         * plate, 2 = legs and 3 = boots)
044         */
045        public int getDamageReductionAmount(int par1)
046        {
047            return this.damageReductionAmountArray[par1];
048        }
049    
050        /**
051         * Return the enchantability factor of the material.
052         */
053        public int getEnchantability()
054        {
055            return this.enchantability;
056        }
057    
058        public int func_82845_b()
059        {
060            return this == CLOTH ? Item.leather.shiftedIndex : (this == CHAIN ? Item.ingotIron.shiftedIndex : (this == GOLD ? Item.ingotGold.shiftedIndex : (this == IRON ? Item.ingotIron.shiftedIndex : (this == DIAMOND ? Item.diamond.shiftedIndex : 0))));
061        }
062    }