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