1 package cz.cuni.amis.pogamut.ut2004.communication.translator.bot.state;
2
3 import cz.cuni.amis.fsm.FSMState;
4 import cz.cuni.amis.fsm.FSMTransition;
5 import cz.cuni.amis.fsm.IFSMState;
6 import cz.cuni.amis.pogamut.base.communication.messages.InfoMessage;
7 import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldChangeEvent;
8 import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.Spawn;
9 import cz.cuni.amis.pogamut.ut2004.communication.translator.TranslatorContext;
10 import cz.cuni.amis.pogamut.ut2004.communication.translator.bot.support.AbstractBotFSMState;
11 import cz.cuni.amis.pogamut.ut2004.communication.translator.shared.events.BotFirstSpawned;
12
13
14
15
16
17
18 @FSMState(map = {
19 @FSMTransition(
20 state = BotAliveState.class,
21 symbol = { Spawn.class },
22 transition = {}
23 )
24 }
25 )
26 public class FirstSpawnExpectedState extends AbstractBotFSMState<InfoMessage, TranslatorContext> {
27
28 @Override
29 public void init(TranslatorContext context) {
30 }
31
32 @Override
33 public void restart(TranslatorContext context) {
34 }
35
36 @Override
37 public void stateEntering(TranslatorContext context,
38 IFSMState<InfoMessage, TranslatorContext> fromState,
39 InfoMessage symbol) {
40 }
41
42 @Override
43 public void stateLeaving(TranslatorContext context,
44 IFSMState<InfoMessage, TranslatorContext> toState, InfoMessage symbol) {
45 context.getEventQueue().pushEvent(new BotFirstSpawned());
46 context.getEventQueue().pushEvent((Spawn)symbol);
47 }
48
49 @Override
50 public void stateSymbol(TranslatorContext context, InfoMessage symbol) {
51 context.getEventQueue().pushEvent((IWorldChangeEvent)symbol);
52 }
53
54 }