001    package net.minecraft.src;
002    
003    public class ItemHangingEntity extends Item
004    {
005        private final Class field_82811_a;
006    
007        public ItemHangingEntity(int par1, Class par2Class)
008        {
009            super(par1);
010            this.field_82811_a = par2Class;
011            this.setCreativeTab(CreativeTabs.tabDecorations);
012        }
013    
014        /**
015         * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
016         * True if something happen and false if it don't. This is for ITEMS, not BLOCKS
017         */
018        public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
019        {
020            if (par7 == 0)
021            {
022                return false;
023            }
024            else if (par7 == 1)
025            {
026                return false;
027            }
028            else
029            {
030                int var11 = Direction.vineGrowth[par7];
031                EntityHanging var12 = this.func_82810_a(par3World, par4, par5, par6, var11);
032    
033                if (!par2EntityPlayer.func_82247_a(par4, par5, par6, par7, par1ItemStack))
034                {
035                    return false;
036                }
037                else
038                {
039                    if (var12 != null && var12.onValidSurface())
040                    {
041                        if (!par3World.isRemote)
042                        {
043                            par3World.spawnEntityInWorld(var12);
044                        }
045    
046                        --par1ItemStack.stackSize;
047                    }
048    
049                    return true;
050                }
051            }
052        }
053    
054        private EntityHanging func_82810_a(World par1World, int par2, int par3, int par4, int par5)
055        {
056            return (EntityHanging)(this.field_82811_a == EntityPainting.class ? new EntityPainting(par1World, par2, par3, par4, par5) : (this.field_82811_a == EntityItemFrame.class ? new EntityItemFrame(par1World, par2, par3, par4, par5) : null));
057        }
058    }