1 package nl.tudelft.goal.ut2004.agent;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.logging.Level;
6
7 import nl.tudelft.goal.unreal.messages.BotParameters;
8 import nl.tudelft.goal.unreal.messages.Configuration;
9 import nl.tudelft.goal.unreal.translators.LocationTranslator;
10 import nl.tudelft.goal.unreal.translators.NoneTranslator;
11 import nl.tudelft.goal.unreal.translators.PerceptTranslator;
12 import nl.tudelft.goal.unreal.translators.RotationTranslator;
13 import nl.tudelft.goal.unreal.translators.TeamTranslator;
14 import nl.tudelft.goal.unreal.translators.UnrealIdTranslator;
15 import nl.tudelft.goal.unreal.translators.VelocityTranslator;
16 import nl.tudelft.goal.ut3.agent.UT3BotBehavior;
17 import nl.tudelft.goal.unreal.messages.UnrealIdOrLocation;
18 import nl.tudelft.goal.ut3.translators.CategoryTranslator;
19 import nl.tudelft.goal.ut3.translators.FireModeTranslator;
20 import nl.tudelft.goal.ut3.translators.FlagStateTranslator;
21 import nl.tudelft.goal.ut3.translators.GameTypeTranslator;
22 import nl.tudelft.goal.ut3.translators.ItemTypeTranslator;
23 import nl.tudelft.goal.ut3.translators.NavigationStateTranslator;
24 import nl.tudelft.goal.ut3.translators.SelectorListTranslator;
25 import nl.tudelft.goal.ut3.translators.SelectorTranslator;
26 import nl.tudelft.goal.ut3.translators.UT3ItemTypeTranslator;
27 import nl.tudelft.goal.unreal.translators.UnrealIdOrLocationTranslator;
28 import nl.tudelft.goal.ut3.translators.WeaponPrefListTranslator;
29 import nl.tudelft.goal.ut3.translators.WeaponPrefTranslator;
30 import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;
31 import cz.cuni.amis.pogamut.ut2004.bot.impl.UT2004Bot;
32 import cz.cuni.amis.pogamut.ut2004.bot.params.UT2004BotParameters;
33 import cz.cuni.amis.pogamut.ut2004.communication.messages.ItemType;
34 import cz.cuni.amis.pogamut.ut3.communication.messages.UT3ItemType;
35 import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPoint;
36 import cz.cuni.amis.pogamut.ut2004.utils.UT2004BotRunner;
37 import cz.cuniz.amis.pogamut.ut3.utils.UT3BotRunner;
38 import eis.eis2java.handlers.ActionHandler;
39 import eis.eis2java.handlers.AllPerceptPerceptHandler;
40 import eis.eis2java.handlers.DefaultActionHandler;
41 import eis.eis2java.handlers.PerceptHandler;
42 import eis.eis2java.translation.Translator;
43 import eis.eis2java.util.AllPerceptsProvider;
44 import eis.exceptions.EntityException;
45 import eis.exceptions.PerceiveException;
46 import eis.iilang.Percept;
47 import java.util.LinkedList;
48 import nl.tudelft.goal.ut3.messages.SelectorList;
49 import nl.tudelft.goal.ut3.selector.ContextSelector;
50 import nl.tudelft.goal.ut3.selector.NearestFriendlyWithLinkGun;
51
52
53
54
55
56
57
58 @SuppressWarnings("rawtypes")
59 public class RunAgent {
60
61 public static void main(String[] args) throws EntityException, InterruptedException, PerceiveException {
62
63 Translator translator = Translator.getInstance();
64
65
66
67
68
69
70
71 LocationTranslator locationTranslator = new LocationTranslator();
72 translator.registerJava2ParameterTranslator(locationTranslator);
73 translator.registerParameter2JavaTranslator(locationTranslator);
74
75
76
77
78
79
80
81
82 RotationTranslator rotationTranslator = new RotationTranslator();
83 translator.registerJava2ParameterTranslator(rotationTranslator);
84 translator.registerParameter2JavaTranslator(rotationTranslator);
85
86 TeamTranslator teamTranslator = new TeamTranslator();
87 translator.registerJava2ParameterTranslator(teamTranslator);
88 translator.registerParameter2JavaTranslator(teamTranslator);
89
90 UnrealIdTranslator unrealIdTranslator = new UnrealIdTranslator();
91 translator.registerJava2ParameterTranslator(unrealIdTranslator);
92 translator.registerParameter2JavaTranslator(unrealIdTranslator);
93
94 VelocityTranslator velocityTranslator = new VelocityTranslator();
95 translator.registerJava2ParameterTranslator(velocityTranslator);
96 translator.registerParameter2JavaTranslator(velocityTranslator);
97
98
99
100
101
102
103
104
105 UT3ItemTypeTranslator ut3CategoryTranslator = new UT3ItemTypeTranslator();
106 translator.registerJava2ParameterTranslator(ut3CategoryTranslator);
107 translator.registerParameter2JavaTranslator(ut3CategoryTranslator);
108
109 CategoryTranslator categoryTranslator = new CategoryTranslator();
110 translator.registerJava2ParameterTranslator(categoryTranslator);
111 translator.registerParameter2JavaTranslator(categoryTranslator);
112
113 ItemTypeTranslator itemTypeTranslator = new ItemTypeTranslator();
114 translator.registerJava2ParameterTranslator(itemTypeTranslator);
115
116 FireModeTranslator fireModeTranslator = new FireModeTranslator();
117 translator.registerJava2ParameterTranslator(fireModeTranslator);
118 translator.registerParameter2JavaTranslator(fireModeTranslator);
119
120 FlagStateTranslator flagStateTranslator = new FlagStateTranslator();
121 translator.registerJava2ParameterTranslator(flagStateTranslator);
122
123 GameTypeTranslator gameTypeTranslator = new GameTypeTranslator();
124 translator.registerJava2ParameterTranslator(gameTypeTranslator);
125
126 NavigationStateTranslator navigationStateTranslator = new NavigationStateTranslator();
127 translator.registerJava2ParameterTranslator(navigationStateTranslator);
128
129 NoneTranslator noneTranslator = new NoneTranslator();
130 translator.registerJava2ParameterTranslator(noneTranslator);
131
132 PerceptTranslator perceptTranslator = new PerceptTranslator();
133 translator.registerJava2ParameterTranslator(perceptTranslator);
134
135 SelectorListTranslator selectorListTranslator = new SelectorListTranslator();
136 translator.registerParameter2JavaTranslator(selectorListTranslator);
137
138 SelectorTranslator selectorTranslator = new SelectorTranslator();
139 translator.registerParameter2JavaTranslator(selectorTranslator);
140
141 UnrealIdOrLocationTranslator unrealIdOrLocationTranslator = new UnrealIdOrLocationTranslator();
142 translator.registerParameter2JavaTranslator(unrealIdOrLocationTranslator);
143
144 WeaponPrefListTranslator weaponPrefListTranslator = new WeaponPrefListTranslator();
145 translator.registerParameter2JavaTranslator(weaponPrefListTranslator);
146
147 WeaponPrefTranslator weaponPrefTranslator = new WeaponPrefTranslator();
148 translator.registerParameter2JavaTranslator(weaponPrefTranslator);
149
150 UT3BotRunner<UT2004Bot, UT2004BotParameters> runner = new UT3BotRunner<UT2004Bot, UT2004BotParameters>(
151 UT3BotBehavior.class, Configuration.DEFAULT_BOT_NAME, "127.0.0.1", 3000);
152 runner.setConsoleLogging(true);
153
154
155 BotParameters parameters = new BotParameters();
156 parameters.setAgentId("SimpleRed 1");
157 parameters.setSkill(7);
158 parameters.setLogLevel(Level.INFO);
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174 List<UT2004Bot> agents = runner.startAgents(parameters);
175
176 List<PerceptHandler> handlers = new ArrayList<PerceptHandler>(agents.size());
177 List<ActionHandler> actionHandlers = new ArrayList<ActionHandler>(agents.size());
178 SelectorList targets = new SelectorList();
179
180 for (UT2004Bot agent : agents) {
181 PerceptHandler handler = new AllPerceptPerceptHandler((AllPerceptsProvider) agent.getController());
182 handlers.add(handler);
183 }
184
185 for (UT2004Bot agent : agents) {
186 ActionHandler handler = new DefaultActionHandler(agent.getController());
187 actionHandlers.add(handler);
188 }
189
190 UT3BotBehavior behavior = ((UT3BotBehavior) agents.get(0).getController());
191
192
193
194
195
196 behavior.navigate(new UnrealIdOrLocation(UnrealId.get("UTDeployablePickupFactory_0")));
197
198
199
200 boolean finalDesination = false, droppedDeployable = false;
201 while (true) {
202 Thread.sleep(500);
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223 if(!behavior.getNavigation().isNavigating()) {
224
225 if(finalDesination && !droppedDeployable) {
226 behavior.deploy();
227 droppedDeployable = true;
228 }
229 else
230 {
231
232
233 finalDesination = true;
234 }
235
236 }
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259 for (PerceptHandler handler : handlers) {
260 LinkedList<Percept> list = handler.getAllPercepts();
261 for(Percept p : list)
262 {
263 if(p.getName().equals("navigation"))
264 System.out.println(p);
265 }
266 }
267
268 ArrayList<UnrealId> list = behavior.getVisibility().getVisibleVolumeNavPoints(UT3ItemType.SLOW_VOLUME_CONTENT);
269 System.out.println("==== START ====");
270 for(int i = 0; i < list.size(); i++)
271 {
272 System.out.println("Id: " + list.get(i));
273 }
274 System.out.println("==== END ====");
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335 }
336
337 }
338 }