001package net.minecraft.block;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import java.util.List;
006import java.util.Random;
007import net.minecraft.block.material.Material;
008import net.minecraft.creativetab.CreativeTabs;
009import net.minecraft.item.ItemStack;
010
011public class BlockWoodSlab extends BlockHalfSlab
012{
013    /** The type of tree this slab came from. */
014    public static final String[] woodType = new String[] {"oak", "spruce", "birch", "jungle"};
015
016    public BlockWoodSlab(int par1, boolean par2)
017    {
018        super(par1, par2, Material.wood);
019        this.setCreativeTab(CreativeTabs.tabBlock);
020    }
021
022    /**
023     * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
024     */
025    public int getBlockTextureFromSideAndMetadata(int par1, int par2)
026    {
027        switch (par2 & 7)
028        {
029            case 1:
030                return 198;
031            case 2:
032                return 214;
033            case 3:
034                return 199;
035            default:
036                return 4;
037        }
038    }
039
040    /**
041     * Returns the block texture based on the side being looked at.  Args: side
042     */
043    public int getBlockTextureFromSide(int par1)
044    {
045        return this.getBlockTextureFromSideAndMetadata(par1, 0);
046    }
047
048    /**
049     * Returns the ID of the items to drop on destruction.
050     */
051    public int idDropped(int par1, Random par2Random, int par3)
052    {
053        return Block.woodSingleSlab.blockID;
054    }
055
056    /**
057     * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage
058     * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null.
059     */
060    protected ItemStack createStackedBlock(int par1)
061    {
062        return new ItemStack(Block.woodSingleSlab.blockID, 2, par1 & 7);
063    }
064
065    /**
066     * Returns the slab block name with step type.
067     */
068    public String getFullSlabName(int par1)
069    {
070        if (par1 < 0 || par1 >= woodType.length)
071        {
072            par1 = 0;
073        }
074
075        return super.getBlockName() + "." + woodType[par1];
076    }
077
078    @SideOnly(Side.CLIENT)
079
080    /**
081     * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
082     */
083    public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
084    {
085        if (par1 != Block.woodDoubleSlab.blockID)
086        {
087            for (int var4 = 0; var4 < 4; ++var4)
088            {
089                par3List.add(new ItemStack(par1, 1, var4));
090            }
091        }
092    }
093}