    001    package net.minecraft.entity.ai;
    002
    003    import net.minecraft.entity.EntityLiving;
    004
    005    public class EntityAIOpenDoor extends EntityAIDoorInteract
    006    {
    007        boolean field_75361_i;
    008        int field_75360_j;
    009
    010        public EntityAIOpenDoor(EntityLiving par1EntityLiving, boolean par2)
    011        {
    012            super(par1EntityLiving);
    013            this.theEntity = par1EntityLiving;
    014            this.field_75361_i = par2;
    015        }
    016
    017        /**
    018         * Returns whether an in-progress EntityAIBase should continue executing
    019         */
    020        public boolean continueExecuting()
    021        {
    022            return this.field_75361_i && this.field_75360_j > 0 && super.continueExecuting();
    023        }
    024
    025        /**
    026         * Execute a one shot task or start executing a continuous task
    027         */
    028        public void startExecuting()
    029        {
    030            this.field_75360_j = 20;
    031            this.targetDoor.onPoweredBlockChange(this.theEntity.worldObj, this.entityPosX, this.entityPosY, this.entityPosZ, true);
    032        }
    033
    034        /**
    035         * Resets the task
    036         */
    037        public void resetTask()
    038        {
    039            if (this.field_75361_i)
    040            {
    041                this.targetDoor.onPoweredBlockChange(this.theEntity.worldObj, this.entityPosX, this.entityPosY, this.entityPosZ, false);
    042            }
    043        }
    044
    045        /**
    046         * Updates the task
    047         */
    048        public void updateTask()
    049        {
    050            --this.field_75360_j;
    051            super.updateTask();
    052        }
    053    }