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