package emasher.blocks;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import emasher.EngineersToolbox;
import net.minecraft.block.BlockPane;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import java.util.List;
public class BlockThin extends BlockPane {
private static final int NUM_BLOCKS = 6;
public static IIcon chainlink;
public static IIcon barb;
public static IIcon razor;
public static IIcon chainPost;
public static IIcon barbPost;
public static IIcon barbPostWood;
public BlockThin( Material par4Material ) {
super( "eng_toolbox:blank", "eng_toolbox:blank", par4Material, true );
this.setCreativeTab( null );
this.setCreativeTab( EngineersToolbox.tabBlocks() );
}
@Override
public void registerBlockIcons( IIconRegister par1IconRegister ) {
super.registerBlockIcons( par1IconRegister );
this.blockIcon = par1IconRegister.registerIcon( "eng_toolbox:chainlink" );
chainlink = this.blockIcon;
barb = par1IconRegister.registerIcon( "eng_toolbox:barb" );
razor = par1IconRegister.registerIcon( "eng_toolbox:razor" );
chainPost = par1IconRegister.registerIcon( "eng_toolbox:chainPost" );
barbPost = par1IconRegister.registerIcon( "eng_toolbox:barbPost" );
barbPostWood = par1IconRegister.registerIcon( "eng_toolbox:barbPostWood" );
}
@Override
public IIcon getIcon( int par1, int par2 ) {
int meta = par2;
IIcon result;
switch(meta) {
case 0:
result = chainlink;
break;
case 1:
result = chainPost;
break;
case 3:
result = barbPostWood;
break;
case 2:
result = barb;
break;
case 4:
result = barbPost;
break;
case 5:
result = razor;
break;
default:
result = chainlink;
}
return result;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@SideOnly( Side.CLIENT )
public void getSubBlocks( Item par1, CreativeTabs par2CreativeTabs, List par3List ) {
for( int var4 = 0; var4 < NUM_BLOCKS; ++var4 ) {
par3List.add( new ItemStack( par1, 1, var4 ) );
}
}
@Override
public boolean isLadder( IBlockAccess world, int x, int y, int z, EntityLivingBase entity ) {
int meta = world.getBlockMetadata( x, y, z );
if( meta == 0 || meta == 1 ) {
if( entity instanceof EntityPlayer ) {
return true;
}
}
return false;
}
@Override
public int damageDropped( int par1 ) {
return par1;
}
@Override
public void onEntityCollidedWithBlock( World par1World, int par2, int par3, int par4, Entity par5Entity ) {
super.onEntityCollidedWithBlock( par1World, par2, par3, par4, par5Entity );
int damage;
int meta = par1World.getBlockMetadata( par2, par3, par4 );
switch(meta) {
case 0:
damage = 0;
break;
case 1:
damage = 0;
break;
case 2:
damage = 2;
break;
case 3:
damage = 2;
break;
case 4:
damage = 2;
break;
case 5:
damage = 4;
break;
default:
damage = 0;
}
if( par5Entity instanceof EntityLiving && damage != 0 ) {
( ( EntityLiving ) par5Entity ).attackEntityFrom( DamageSource.cactus, damage );
}
}
/*@Override
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{
//return par1World.isRemote ? true : ItemLeash.func_135066_a(par5EntityPlayer, par1World, par2, par3, par4);
if(! par1World.isRemote)
{
int meta = par1World.getBlockMetadata(par2, par3, par4);
if(meta == 1 || meta == 3 || meta == 4)
{
return ItemLeash.func_135066_a(par5EntityPlayer, par1World, par2, par3, par4);
}
}
return true;
}*/
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool( World par1World, int par2, int par3, int par4 ) {
int meta = par1World.getBlockMetadata( par2, par3, par4 );
this.setBlockBoundsBasedOnState( par1World, par2, par3, par4 );
if( meta >= 2 ) this.maxY = 1.5D;
return super.getCollisionBoundingBoxFromPool( par1World, par2, par3, par4 );
}
}