package net.CyanWool.api.entity.component;
import net.CyanWool.api.entity.Entity;
import net.CyanWool.api.entity.EntityLivingBase;
import net.CyanWool.api.entity.ai.EntityAITasks;
/**
* Исскуственный интеллект.
*
* @author DinDev
*/
public class AIComponent extends Component {
private EntityAITasks tasks;
private EntityAITasks targetTask;
private boolean aiEnabled;
private EntityLivingBase target;
public AIComponent(Entity entity) {
super(entity);
}
public EntityAITasks getTargetAITasks() {
return targetTask;
}
public EntityAITasks getAITasks() {
return tasks;
}
public boolean isAIEnabled() {
return aiEnabled;
}
public void setAIEnabled(boolean enable) {
this.aiEnabled = enable;
}
public EntityLivingBase getTarget() {
return target;
}
public void setTarget(EntityLivingBase entity) {
this.target = entity;
}
@Override
public void update() {
getEntity().getMetadata().setMetadata(15, (byte) (this.aiEnabled ? 1 : 0));
if (aiEnabled) {
getTargetAITasks().onUpdateAI();
getAITasks().onUpdateAI();
}
}
@Override
public void initialization() {
this.targetTask = new EntityAITasks();
this.tasks = new EntityAITasks();
}
@Override
public boolean autoUpdate() {
return true;
}
@Override
public String getID() {
return "ai";
}
}