001    package net.minecraft.src;
002    
003    public class EntityAITradePlayer extends EntityAIBase
004    {
005        private EntityVillager villager;
006    
007        public EntityAITradePlayer(EntityVillager par1EntityVillager)
008        {
009            this.villager = par1EntityVillager;
010            this.setMutexBits(5);
011        }
012    
013        /**
014         * Returns whether the EntityAIBase should begin execution.
015         */
016        public boolean shouldExecute()
017        {
018            if (!this.villager.isEntityAlive())
019            {
020                return false;
021            }
022            else if (this.villager.isInWater())
023            {
024                return false;
025            }
026            else if (!this.villager.onGround)
027            {
028                return false;
029            }
030            else if (this.villager.velocityChanged)
031            {
032                return false;
033            }
034            else
035            {
036                EntityPlayer var1 = this.villager.getCustomer();
037                return var1 == null ? false : (this.villager.getDistanceSqToEntity(var1) > 16.0D ? false : var1.craftingInventory instanceof Container);
038            }
039        }
040    
041        /**
042         * Execute a one shot task or start executing a continuous task
043         */
044        public void startExecuting()
045        {
046            this.villager.getNavigator().clearPathEntity();
047        }
048    
049        /**
050         * Resets the task
051         */
052        public void resetTask()
053        {
054            this.villager.setCustomer((EntityPlayer)null);
055        }
056    }