1 package cz.cuni.amis.pogamut.unreal.server;
2
3 import java.util.Collection;
4 import java.util.List;
5 import java.util.concurrent.Future;
6
7 import cz.cuni.amis.pogamut.base.agent.IGhostAgent;
8 import cz.cuni.amis.pogamut.base.server.IWorldServer;
9 import cz.cuni.amis.pogamut.unreal.bot.IUnrealBot;
10 import cz.cuni.amis.pogamut.unreal.communication.messages.gbinfomessages.IMapList;
11 import cz.cuni.amis.pogamut.unreal.communication.messages.gbinfomessages.IMutator;
12 import cz.cuni.amis.pogamut.unreal.communication.messages.gbinfomessages.IPlayer;
13 import cz.cuni.amis.pogamut.unreal.communication.worldview.map.IUnrealMap;
14 import cz.cuni.amis.pogamut.unreal.server.exception.MapChangeException;
15
16 import cz.cuni.amis.utils.collections.ObservableCollection;
17 import cz.cuni.amis.utils.flag.Flag;
18 import java.io.IOException;
19
20 public interface IUnrealServer<BOT extends IUnrealBot> extends IWorldServer<BOT>, IGhostAgent {
21
22
23
24
25
26
27 public void setAddress(String host, int port);
28
29
30
31
32 public Collection<? extends IMapList> getAvailableMaps();
33
34
35
36
37
38
39
40
41
42 public Flag<Double> getGameSpeedFlag();
43
44
45
46
47 public String getMapName();
48
49
50
51
52
53
54
55
56 public Future<Boolean> setGameMap(String map) throws MapChangeException;
57
58
59
60
61
62
63
64 public ObservableCollection<? extends IPlayer> getPlayers();
65
66
67
68
69
70
71
72
73 public ObservableCollection<? extends IUnrealBot> getNativeAgents();
74
75
76
77
78
79
80 public List<? extends IMutator> getMutators();
81
82
83
84
85
86 public void connectNativeBot(String botName, String botType);
87
88
89
90
91
92 public IUnrealMap getMap();
93
94 }