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 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 }