    001package net.minecraft.entity.ai;
    002
    003import net.minecraft.entity.EntityLiving;
    004
    005public 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}