package net.minecraft.item;
import net.minecraft.block.Block;
import net.minecraft.block.BlockPlanks;
import net.minecraft.block.IGrowable;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.passive.EntitySheep;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
public class ItemDye extends Item
{
public static final int[] dyeColors = new int[] {1973019, 11743532, 3887386, 5320730, 2437522, 8073150, 2651799, 11250603, 4408131, 14188952, 4312372, 14602026, 6719955, 12801229, 15435844, 15790320};
private static final String __OBFID = "CL_00000022";
public ItemDye()
{
this.setHasSubtypes(true);
this.setMaxDamage(0);
this.setCreativeTab(CreativeTabs.tabMaterials);
}
/**
* Returns the unlocalized name of this item. This version accepts an ItemStack so different stacks can have
* different names based on their damage or NBT.
*/
public String getUnlocalizedName(ItemStack stack)
{
int var2 = stack.getMetadata();
return super.getUnlocalizedName() + "." + EnumDyeColor.func_176766_a(var2).func_176762_d();
}
/**
* 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 (!playerIn.func_175151_a(pos.offset(side), side, stack))
{
return false;
}
else
{
EnumDyeColor var9 = EnumDyeColor.func_176766_a(stack.getMetadata());
if (var9 == EnumDyeColor.WHITE)
{
if (func_179234_a(stack, worldIn, pos))
{
if (!worldIn.isRemote)
{
worldIn.playAuxSFX(2005, pos, 0);
}
return true;
}
}
else if (var9 == EnumDyeColor.BROWN)
{
IBlockState var10 = worldIn.getBlockState(pos);
Block var11 = var10.getBlock();
if (var11 == Blocks.log && var10.getValue(BlockPlanks.VARIANT_PROP) == BlockPlanks.EnumType.JUNGLE)
{
if (side == EnumFacing.DOWN)
{
return false;
}
if (side == EnumFacing.UP)
{
return false;
}
pos = pos.offset(side);
if (worldIn.isAirBlock(pos))
{
IBlockState var12 = Blocks.cocoa.onBlockPlaced(worldIn, pos, side, hitX, hitY, hitZ, 0, playerIn);
worldIn.setBlockState(pos, var12, 2);
if (!playerIn.capabilities.isCreativeMode)
{
--stack.stackSize;
}
}
return true;
}
}
return false;
}
}
public static boolean func_179234_a(ItemStack p_179234_0_, World worldIn, BlockPos p_179234_2_)
{
IBlockState var3 = worldIn.getBlockState(p_179234_2_);
if (var3.getBlock() instanceof IGrowable)
{
IGrowable var4 = (IGrowable)var3.getBlock();
if (var4.isStillGrowing(worldIn, p_179234_2_, var3, worldIn.isRemote))
{
if (!worldIn.isRemote)
{
if (var4.canUseBonemeal(worldIn, worldIn.rand, p_179234_2_, var3))
{
var4.grow(worldIn, worldIn.rand, p_179234_2_, var3);
}
--p_179234_0_.stackSize;
}
return true;
}
}
return false;
}
/**
* Returns true if the item can be used on the given entity, e.g. shears on sheep.
*/
public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer playerIn, EntityLivingBase target)
{
if (target instanceof EntitySheep)
{
EntitySheep var4 = (EntitySheep)target;
EnumDyeColor var5 = EnumDyeColor.func_176766_a(stack.getMetadata());
if (!var4.getSheared() && var4.func_175509_cj() != var5)
{
var4.func_175512_b(var5);
--stack.stackSize;
}
return true;
}
else
{
return false;
}
}
}