package net.minecraft.item;
import net.minecraft.block.BlockStandingSign;
import net.minecraft.block.BlockWallSign;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityBanner;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.MathHelper;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
public class ItemBanner extends ItemBlock
{
private static final String __OBFID = "CL_00002181";
public ItemBanner()
{
super(Blocks.standing_banner);
this.maxStackSize = 16;
this.setCreativeTab(CreativeTabs.tabDecorations);
this.setHasSubtypes(true);
this.setMaxDamage(0);
}
/**
* Called when a Block is right-clicked with this Item
*
* @param pos The block being right-clicked
* @param side The side being right-clicked
*/
public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ)
{
if (side == EnumFacing.DOWN)
{
return false;
}
else if (!worldIn.getBlockState(pos).getBlock().getMaterial().isSolid())
{
return false;
}
else
{
pos = pos.offset(side);
if (!playerIn.func_175151_a(pos, side, stack))
{
return false;
}
else if (!Blocks.standing_banner.canPlaceBlockAt(worldIn, pos))
{
return false;
}
else if (worldIn.isRemote)
{
return true;
}
else
{
if (side == EnumFacing.UP)
{
int var9 = MathHelper.floor_double((double)((playerIn.rotationYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15;
worldIn.setBlockState(pos, Blocks.standing_banner.getDefaultState().withProperty(BlockStandingSign.ROTATION_PROP, Integer.valueOf(var9)), 3);
}
else
{
worldIn.setBlockState(pos, Blocks.wall_banner.getDefaultState().withProperty(BlockWallSign.field_176412_a, side), 3);
}
--stack.stackSize;
TileEntity var10 = worldIn.getTileEntity(pos);
if (var10 instanceof TileEntityBanner)
{
((TileEntityBanner)var10).setItemValues(stack);
}
return true;
}
}
}
public String getItemStackDisplayName(ItemStack stack)
{
String var2 = "item.banner.";
EnumDyeColor var3 = this.func_179225_h(stack);
var2 = var2 + var3.func_176762_d() + ".name";
return StatCollector.translateToLocal(var2);
}
private EnumDyeColor func_179225_h(ItemStack p_179225_1_)
{
NBTTagCompound var2 = p_179225_1_.getSubCompound("BlockEntityTag", false);
EnumDyeColor var3 = null;
if (var2 != null && var2.hasKey("Base"))
{
var3 = EnumDyeColor.func_176766_a(var2.getInteger("Base"));
}
else
{
var3 = EnumDyeColor.func_176766_a(p_179225_1_.getMetadata());
}
return var3;
}
}