Skip to content

Commit 42fcb29

Browse files
committed
feature: Allow publishing referee messages in CI mode
1 parent 9aeaa8b commit 42fcb29

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

internal/app/gc/gc.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,21 @@ func NewGameController(cfg config.Controller) (c *GameController) {
5757
// Start starts all go routines
5858
func (c *GameController) Start() {
5959

60+
if len(c.config.Network.PublishAddress) > 0 {
61+
c.messageGenerator.MessageConsumers = append(c.messageGenerator.MessageConsumers, c.publisher.SendMessage)
62+
}
63+
6064
switch c.config.TimeAcquisitionMode {
6165
case config.TimeAcquisitionModeSystem:
62-
c.messageGenerator.MessageConsumer = c.publisher.SendMessage
6366
c.visionReceiver.Start()
6467
c.trackerReceiver.Start()
6568
break
6669
case config.TimeAcquisitionModeVision:
67-
c.messageGenerator.MessageConsumer = c.publisher.SendMessage
6870
c.gcEngine.SetTimeProvider(c.visionReceiver.Time)
6971
c.visionReceiver.Start()
7072
c.trackerReceiver.Start()
7173
case config.TimeAcquisitionModeCi:
72-
c.messageGenerator.MessageConsumer = c.ciServer.SendMessage
74+
c.messageGenerator.MessageConsumers = append(c.messageGenerator.MessageConsumers, c.ciServer.SendMessage)
7375
c.gcEngine.SetTimeProvider(c.ciServer.Time)
7476
c.gcEngine.SetTickChanProvider(c.ciServer.TickChanProvider)
7577
c.ciServer.SetEngine(c.gcEngine)

internal/app/publish/messagegenerator.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ type MessageGenerator struct {
1414
commandTimestamp uint64
1515
quit chan int
1616
gcEngine *engine.Engine
17-
MessageConsumer func(*state.Referee)
17+
MessageConsumers []func(*state.Referee)
1818
EngineHook chan engine.HookOut
1919
}
2020

@@ -48,12 +48,16 @@ func (g *MessageGenerator) listen() {
4848
case hookOut := <-g.EngineHook:
4949
if hookOut.Change != nil {
5050
refereeMessages := g.GenerateRefereeMessages(hookOut)
51-
for _, refereeMsg := range refereeMessages {
52-
g.MessageConsumer(refereeMsg)
51+
for _, refMsg := range refereeMessages {
52+
for _, consumer := range g.MessageConsumers {
53+
consumer(refMsg)
54+
}
5355
}
5456
} else if hookOut.State != nil {
5557
refMsg := g.StateToRefereeMessage(hookOut.State)
56-
g.MessageConsumer(refMsg)
58+
for _, consumer := range g.MessageConsumers {
59+
consumer(refMsg)
60+
}
5761
}
5862
}
5963
}

0 commit comments

Comments
 (0)