1
1
package controller
2
2
3
3
import (
4
- "fmt"
5
4
"github.com/RoboCup-SSL/ssl-game-controller/internal/app/config"
6
5
"github.com/RoboCup-SSL/ssl-game-controller/pkg/refproto"
7
6
"github.com/pkg/errors"
@@ -14,13 +13,13 @@ import (
14
13
const maxHistorySize = 10
15
14
16
15
type Engine struct {
17
- State * State
18
- RefereeEvents [] RefereeEvent
19
- StageTimes map [Stage ]time.Duration
20
- config config.Game
21
- TimeProvider func () time.Time
22
- History History
23
- Geometry config.Geometry
16
+ State * State
17
+ UiProtocol [] UiProtocolEntry
18
+ StageTimes map [Stage ]time.Duration
19
+ config config.Game
20
+ TimeProvider func () time.Time
21
+ History History
22
+ Geometry config.Geometry
24
23
}
25
24
26
25
func NewEngine (config config.Game ) (e Engine ) {
@@ -39,7 +38,7 @@ func (e *Engine) ResetGame() {
39
38
e .State .TeamState [team ].MaxAllowedBots = e .config .MaxBots [e .State .Division ]
40
39
}
41
40
42
- e .RefereeEvents = []RefereeEvent {}
41
+ e .UiProtocol = []UiProtocolEntry {}
43
42
e .State .Division = e .config .DefaultDivision
44
43
e .Geometry = * e .config .DefaultGeometry [e .State .Division ]
45
44
}
@@ -87,16 +86,16 @@ func (e *Engine) UndoLastAction() {
87
86
lastIndex := len (e .History ) - 2
88
87
if lastIndex >= 0 {
89
88
* e .State = e .History [lastIndex ].State .DeepCopy ()
90
- e .RefereeEvents = append (e .History [lastIndex ].RefereeEvents [:0 :0 ],
91
- e .History [lastIndex ].RefereeEvents ... )
89
+ e .UiProtocol = append (e .History [lastIndex ].UiProtocol [:0 :0 ],
90
+ e .History [lastIndex ].UiProtocol ... )
92
91
e .History = e .History [0 :lastIndex ]
93
92
}
94
93
}
95
94
96
95
func (e * Engine ) appendHistory () {
97
96
var entry HistoryEntry
98
97
entry .State = e .State .DeepCopy ()
99
- entry .RefereeEvents = append (e .RefereeEvents [:0 :0 ], e .RefereeEvents ... )
98
+ entry .UiProtocol = append (e .UiProtocol [:0 :0 ], e .UiProtocol ... )
100
99
e .History = append (e .History , entry )
101
100
if len (e .History ) > maxHistorySize {
102
101
e .History = e .History [1 :]
@@ -208,9 +207,9 @@ func (e *Engine) CommandForEvent(event *GameEvent) (command RefCommand, forTeam
208
207
}
209
208
210
209
func (e * Engine ) LastGameStartCommand () (RefCommand , error ) {
211
- for i := len (e .RefereeEvents ) - 1 ; i >= 0 ; i -- {
212
- event := e .RefereeEvents [i ]
213
- if event .Type == RefereeEventCommand {
210
+ for i := len (e .UiProtocol ) - 1 ; i >= 0 ; i -- {
211
+ event := e .UiProtocol [i ]
212
+ if event .Type == UiProtocolCommand {
214
213
cmd := RefCommand (event .Name )
215
214
switch cmd {
216
215
case CommandPenalty , CommandKickoff , CommandIndirect , CommandDirect :
@@ -241,87 +240,6 @@ func (e *Engine) updateMaxBots() {
241
240
}
242
241
}
243
242
244
- func (e * Engine ) LogGameEvent (event GameEvent ) {
245
- gameEvent := RefereeEvent {
246
- Timestamp : e .TimeProvider ().UnixNano (),
247
- StageTime : e .State .StageTimeElapsed ,
248
- Type : RefereeEventGameEvent ,
249
- Name : string (event .Type ),
250
- Team : event .ByTeam (),
251
- Description : event .Details .String (),
252
- }
253
- e .RefereeEvents = append (e .RefereeEvents , gameEvent )
254
- }
255
-
256
- func (e * Engine ) LogIgnoredGameEvent (event GameEvent ) {
257
- gameEvent := RefereeEvent {
258
- Timestamp : e .TimeProvider ().UnixNano (),
259
- StageTime : e .State .StageTimeElapsed ,
260
- Type : RefereeEventGameEventIgnored ,
261
- Name : string (event .Type ),
262
- Team : event .ByTeam (),
263
- Description : event .Details .String (),
264
- }
265
- e .RefereeEvents = append (e .RefereeEvents , gameEvent )
266
- }
267
-
268
- func (e * Engine ) LogCommand () {
269
- refereeEvent := RefereeEvent {
270
- Timestamp : e .TimeProvider ().UnixNano (),
271
- StageTime : e .State .StageTimeElapsed ,
272
- Type : RefereeEventCommand ,
273
- Name : string (e .State .Command ),
274
- Team : e .State .CommandFor ,
275
- }
276
- e .RefereeEvents = append (e .RefereeEvents , refereeEvent )
277
- }
278
-
279
- func (e * Engine ) LogCard (card * EventCard ) {
280
- refereeEvent := RefereeEvent {
281
- Timestamp : e .TimeProvider ().UnixNano (),
282
- StageTime : e .State .StageTimeElapsed ,
283
- Type : RefereeEventCard ,
284
- Name : fmt .Sprintf ("%v %v card" , card .Operation , card .Type ),
285
- Team : card .ForTeam ,
286
- }
287
- e .RefereeEvents = append (e .RefereeEvents , refereeEvent )
288
- }
289
-
290
- func (e * Engine ) LogTime (description string , forTeam Team ) {
291
- refereeEvent := RefereeEvent {
292
- Timestamp : e .TimeProvider ().UnixNano (),
293
- StageTime : e .State .StageTimeElapsed ,
294
- Type : RefereeEventTime ,
295
- Name : description ,
296
- Team : forTeam ,
297
- }
298
- e .RefereeEvents = append (e .RefereeEvents , refereeEvent )
299
- }
300
-
301
- func (e * Engine ) LogStage (stage Stage ) {
302
- refereeEvent := RefereeEvent {
303
- Timestamp : e .TimeProvider ().UnixNano (),
304
- StageTime : e .State .StageTimeElapsed ,
305
- Type : RefereeEventStage ,
306
- Name : string (stage ),
307
- }
308
- e .RefereeEvents = append (e .RefereeEvents , refereeEvent )
309
- }
310
-
311
- func (e * Engine ) LogModify (m EventModifyValue ) {
312
- team := m .ForTeam
313
- m .ForTeam = TeamUnknown
314
- refereeEvent := RefereeEvent {
315
- Timestamp : e .TimeProvider ().UnixNano (),
316
- StageTime : e .State .StageTimeElapsed ,
317
- Type : RefereeEventModify ,
318
- Name : m .Type (),
319
- Team : team ,
320
- Description : m .Value (),
321
- }
322
- e .RefereeEvents = append (e .RefereeEvents , refereeEvent )
323
- }
324
-
325
243
func (e * Engine ) loadStages () {
326
244
e .StageTimes = map [Stage ]time.Duration {}
327
245
for _ , stage := range Stages {
0 commit comments