    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    }