001    package net.minecraft.block;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import java.util.List;
006    import net.minecraft.block.material.Material;
007    import net.minecraft.creativetab.CreativeTabs;
008    import net.minecraft.item.ItemStack;
009    
010    public class BlockCloth extends Block
011    {
012        public BlockCloth()
013        {
014            super(35, 64, Material.cloth);
015            this.setCreativeTab(CreativeTabs.tabBlock);
016        }
017    
018        /**
019         * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
020         */
021        public int getBlockTextureFromSideAndMetadata(int par1, int par2)
022        {
023            if (par2 == 0)
024            {
025                return this.blockIndexInTexture;
026            }
027            else
028            {
029                par2 = ~(par2 & 15);
030                return 113 + ((par2 & 8) >> 3) + (par2 & 7) * 16;
031            }
032        }
033    
034        /**
035         * Determines the damage on the item the block drops. Used in cloth and wood.
036         */
037        public int damageDropped(int par1)
038        {
039            return par1;
040        }
041    
042        /**
043         * Takes a dye damage value and returns the block damage value to match
044         */
045        public static int getBlockFromDye(int par0)
046        {
047            return ~par0 & 15;
048        }
049    
050        /**
051         * Takes a block damage value and returns the dye damage value to match
052         */
053        public static int getDyeFromBlock(int par0)
054        {
055            return ~par0 & 15;
056        }
057    
058        @SideOnly(Side.CLIENT)
059    
060        /**
061         * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
062         */
063        public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
064        {
065            for (int var4 = 0; var4 < 16; ++var4)
066            {
067                par3List.add(new ItemStack(par1, 1, var4));
068            }
069        }
070    }