    001    package net.minecraft.block;
    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    import net.minecraft.block.material.Material;
    008    import net.minecraft.creativetab.CreativeTabs;
    009    import net.minecraft.item.ItemStack;
    010
    011    public 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    }