package com.corosus.game.component;
import com.artemis.Component;
import com.corosus.game.Cst;
import com.corosus.game.ai.Agent;
import com.corosus.game.ai.Blackboard;
import com.corosus.game.entity.EnumEntityType;
/**
* Used for defining clearly different types of entities, eg: living entity vs projectile
*
* slowly becoming a generic use component for common entity attributes
*
*/
public class EntityData extends Component {
public int levelID = 0;
public boolean aiControlled = false;
public boolean inputControlled = false;
public EnumEntityType type = EnumEntityType.SPRITE;
public int sizeDiameter = Cst.COLLIDESIZE_DEFAULT;
//mainly for preventing same team collision of projectile to sprite
//team 0 will be considered player
public int team = TEAM_PLAYER;
private Agent agent;
public static int TEAM_PLAYER = 0;
public static int TEAM_1 = 1;
public EntityData() {
}
public EntityData(EnumEntityType profileID) {
this();
this.type = profileID;
}
public void initAI(int levelID, int entID) {
this.levelID = levelID;
setAgent(new Agent(levelID, entID));
}
public EntityData setTeam(int team) {
this.team = team;
return this;
}
public Agent getAgent() {
return agent;
}
public void setAgent(Agent agent) {
this.agent = agent;
}
}