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 }