tcr/java/src/game/ai/EntityAISit.java

68 lines
1.5 KiB
Java
Raw Normal View History

2025-03-11 00:23:54 +01:00
package game.ai;
import game.entity.types.EntityLiving;
import game.entity.types.EntityTameable;
public class EntityAISit extends EntityAIBase
{
private EntityTameable theEntity;
/** If the EntityTameable is sitting. */
private boolean isSitting;
public EntityAISit(EntityTameable entityIn)
{
this.theEntity = entityIn;
this.setMutexBits(5);
}
/**
* Returns whether the EntityAIBase should begin execution.
*/
public boolean shouldExecute()
{
if (!this.theEntity.isTamed())
{
return false;
}
else if (this.theEntity.isInLiquid())
{
return false;
}
else if (!this.theEntity.onGround)
{
return false;
}
else
{
EntityLiving entitylivingbase = this.theEntity.getOwner();
return entitylivingbase == null ? true : (this.theEntity.getDistanceSqToEntity(entitylivingbase) < 144.0D && entitylivingbase.getAttackedBy() != null ? false : this.isSitting);
}
}
/**
* Execute a one shot task or start executing a continuous task
*/
public void startExecuting()
{
this.theEntity.getNavigator().clearPathEntity();
this.theEntity.setSitting(true);
}
/**
* Resets the task
*/
public void resetTask()
{
this.theEntity.setSitting(false);
}
/**
* Sets the sitting flag.
*/
public void setSitting(boolean sitting)
{
this.isSitting = sitting;
}
}