package net.minecraft.entity.ai;
import net.minecraft.entity.EntityCreature;
import net.minecraft.util.Vec3;
public class EntityAIWander extends EntityAIBase
{
private EntityCreature entity;
private double xPosition;
private double yPosition;
private double zPosition;
private double speed;
private int field_179481_f;
private boolean field_179482_g;
private static final String __OBFID = "CL_00001608";
public EntityAIWander(EntityCreature p_i1648_1_, double p_i1648_2_)
{
this(p_i1648_1_, p_i1648_2_, 120);
}
public EntityAIWander(EntityCreature p_i45887_1_, double p_i45887_2_, int p_i45887_4_)
{
this.entity = p_i45887_1_;
this.speed = p_i45887_2_;
this.field_179481_f = p_i45887_4_;
this.setMutexBits(1);
}
/**
* Returns whether the EntityAIBase should begin execution.
*/
public boolean shouldExecute()
{
if (!this.field_179482_g)
{
if (this.entity.getAge() >= 100)
{
return false;
}
if (this.entity.getRNG().nextInt(this.field_179481_f) != 0)
{
return false;
}
}
Vec3 var1 = RandomPositionGenerator.findRandomTarget(this.entity, 10, 7);
if (var1 == null)
{
return false;
}
else
{
this.xPosition = var1.xCoord;
this.yPosition = var1.yCoord;
this.zPosition = var1.zCoord;
this.field_179482_g = false;
return true;
}
}
/**
* Returns whether an in-progress EntityAIBase should continue executing
*/
public boolean continueExecuting()
{
return !this.entity.getNavigator().noPath();
}
/**
* Execute a one shot task or start executing a continuous task
*/
public void startExecuting()
{
this.entity.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed);
}
public void func_179480_f()
{
this.field_179482_g = true;
}
public void func_179479_b(int p_179479_1_)
{
this.field_179481_f = p_179479_1_;
}
}