package net.geforcemods.securitycraft.blocks;
import java.util.List;
import java.util.Random;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.geforcemods.securitycraft.main.mod_SecurityCraft;
import net.geforcemods.securitycraft.tileentity.TileEntityOwnable;
import net.minecraft.block.Block;
import net.minecraft.block.BlockSlab;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class BlockReinforcedSlabs extends BlockSlab implements ITileEntityProvider {
public static final String[] variants = new String[] {"stone", "cobble", "sand", "dirt"};
@SideOnly(Side.CLIENT)
private IIcon reinforcedStoneIcon;
@SideOnly(Side.CLIENT)
private IIcon reinforcedCobblestoneIcon;
@SideOnly(Side.CLIENT)
private IIcon reinforcedDirtIcon;
@SideOnly(Side.CLIENT)
private IIcon reinforcedSandstoneTopIcon;
@SideOnly(Side.CLIENT)
private IIcon reinforcedSandstoneIcon;
private final Material slabMaterial;
public BlockReinforcedSlabs(boolean isDouble, Material par1Material) {
super(isDouble, par1Material);
this.slabMaterial = par1Material;
this.useNeighborBrightness = true;
}
public void breakBlock(World par1World, int par2, int par3, int par4, Block par5Block, int par6){
super.breakBlock(par1World, par2, par3, par4, par5Block, par6);
par1World.removeTileEntity(par2, par3, par4);
}
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item par1Item, CreativeTabs par2CreativeTabs, List par3List){
if(slabMaterial != Material.ground){
for(int i = 0; i < variants.length - 1; i++){
par3List.add(new ItemStack(par1Item, 1, i));
}
}else{
par3List.add(new ItemStack(par1Item, 1, 3));
}
}
public Item getItemDropped(int par1, Random par2Random, int par3){
return slabMaterial == Material.ground ? Item.getItemFromBlock(mod_SecurityCraft.reinforcedDirtSlab) : Item.getItemFromBlock(mod_SecurityCraft.reinforcedStoneSlabs);
}
@SideOnly(Side.CLIENT)
public Item getItem(World par1World, int par2, int par3, int par4){
return slabMaterial == Material.ground ? Item.getItemFromBlock(mod_SecurityCraft.reinforcedDirtSlab) : Item.getItemFromBlock(mod_SecurityCraft.reinforcedStoneSlabs);
}
/**
* Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage
* and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null.
*/
protected ItemStack createStackedBlock(int par1){
return new ItemStack(Item.getItemFromBlock(mod_SecurityCraft.reinforcedStoneSlabs), 2, par1 & 7);
}
public String func_150002_b(int par1){
if (par1 < 0 || par1 >= variants.length)
{
par1 = 0;
}
return super.getUnlocalizedName() + "." + variants[par1];
}
@SideOnly(Side.CLIENT)
public IIcon getIcon(int par1, int par2){
int k = par2 & 7;
if(k == 0){
return reinforcedStoneIcon;
}else if(k == 1){
return reinforcedCobblestoneIcon;
}else if(k == 2){
if(par1 == 1){
return reinforcedSandstoneTopIcon;
}else{
return reinforcedSandstoneIcon;
}
}else if(k == 3){
return reinforcedDirtIcon;
}else{
return blockIcon;
}
}
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister par1IIconRegister){
this.blockIcon = par1IIconRegister.registerIcon("stone_slab_top");
this.reinforcedStoneIcon = par1IIconRegister.registerIcon("securitycraft:reinforcedStone");
this.reinforcedCobblestoneIcon = par1IIconRegister.registerIcon("securitycraft:reinforcedCobblestone");
this.reinforcedDirtIcon = par1IIconRegister.registerIcon("securitycraft:reinforcedDirt");
this.reinforcedSandstoneTopIcon = par1IIconRegister.registerIcon("securitycraft:reinforcedSandstone_top");
this.reinforcedSandstoneIcon = par1IIconRegister.registerIcon("securitycraft:reinforcedSandstone_normal");
}
public TileEntity createNewTileEntity(World par1World, int par2) {
return new TileEntityOwnable();
}
}