    001package net.minecraft.block;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import java.util.List;
    006import net.minecraft.block.material.Material;
    007import net.minecraft.client.renderer.texture.IconRegister;
    008import net.minecraft.creativetab.CreativeTabs;
    009import net.minecraft.item.ItemStack;
    010import net.minecraft.util.Icon;
    011
    012public class BlockSandStone extends Block
    013{
    014    public static final String[] SAND_STONE_TYPES = new String[] {"default", "chiseled", "smooth"};
    015    private static final String[] field_94405_b = new String[] {"sandstone_side", "sandstone_carved", "sandstone_smooth"};
    016    @SideOnly(Side.CLIENT)
    017    private Icon[] field_94406_c;
    018    @SideOnly(Side.CLIENT)
    019    private Icon field_94403_cO;
    020    @SideOnly(Side.CLIENT)
    021    private Icon field_94404_cP;
    022
    023    public BlockSandStone(int par1)
    024    {
    025        super(par1, Material.rock);
    026        this.setCreativeTab(CreativeTabs.tabBlock);
    027    }
    028
    029    @SideOnly(Side.CLIENT)
    030
    031    /**
    032     * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
    033     */
    034    public Icon getIcon(int par1, int par2)
    035    {
    036        if (par1 != 1 && (par1 != 0 || par2 != 1 && par2 != 2))
    037        {
    038            if (par1 == 0)
    039            {
    040                return this.field_94404_cP;
    041            }
    042            else
    043            {
    044                if (par2 < 0 || par2 >= this.field_94406_c.length)
    045                {
    046                    par2 = 0;
    047                }
    048
    049                return this.field_94406_c[par2];
    050            }
    051        }
    052        else
    053        {
    054            return this.field_94403_cO;
    055        }
    056    }
    057
    058    /**
    059     * Determines the damage on the item the block drops. Used in cloth and wood.
    060     */
    061    public int damageDropped(int par1)
    062    {
    063        return par1;
    064    }
    065
    066    @SideOnly(Side.CLIENT)
    067
    068    /**
    069     * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
    070     */
    071    public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
    072    {
    073        par3List.add(new ItemStack(par1, 1, 0));
    074        par3List.add(new ItemStack(par1, 1, 1));
    075        par3List.add(new ItemStack(par1, 1, 2));
    076    }
    077
    078    @SideOnly(Side.CLIENT)
    079
    080    /**
    081     * When this method is called, your block should register all the icons it needs with the given IconRegister. This
    082     * is the only chance you get to register icons.
    083     */
    084    public void registerIcons(IconRegister par1IconRegister)
    085    {
    086        this.field_94406_c = new Icon[field_94405_b.length];
    087
    088        for (int i = 0; i < this.field_94406_c.length; ++i)
    089        {
    090            this.field_94406_c[i] = par1IconRegister.registerIcon(field_94405_b[i]);
    091        }
    092
    093        this.field_94403_cO = par1IconRegister.registerIcon("sandstone_top");
    094        this.field_94404_cP = par1IconRegister.registerIcon("sandstone_bottom");
    095    }
    096}