1 package cz.cuni.amis.pogamut.defcon.ai;
2
3 import cz.cuni.amis.pogamut.base.communication.worldview.object.WorldObjectId;
4 import cz.cuni.amis.pogamut.defcon.agent.impl.DefConAgentLogicController;
5 import cz.cuni.amis.pogamut.defcon.communication.mailbox.IMessage;
6 import cz.cuni.amis.pogamut.defcon.communication.messages.commands.DefConCommand;
7
8
9
10
11
12
13
14 public abstract class AbstractAI implements IUnitAI {
15
16 public final DefConAgentLogicController<?> logic;
17 public final int unitId;
18 public final WorldObjectId worldObjectId;
19
20 public AbstractAI(DefConAgentLogicController<?> logic,
21 WorldObjectId worldObjectId) {
22
23 this.logic = logic;
24 this.worldObjectId = worldObjectId;
25 this.unitId = Integer.parseInt(worldObjectId.getStringId());
26 }
27
28 @Override
29 public void receiveMessage(IMessage message) {
30 return;
31 }
32
33 @Override
34 public WorldObjectId getId() {
35 return worldObjectId;
36 }
37
38
39
40
41
42
43 protected final void act(DefConCommand command) {
44 logic.getAct().act(command);
45 }
46
47 @Override
48 public void dispose() {
49 logic.getMailBox().unregisterAI(this);
50 }
51 }