File tree Expand file tree Collapse file tree 2 files changed +13
-7
lines changed Expand file tree Collapse file tree 2 files changed +13
-7
lines changed Original file line number Diff line number Diff line change @@ -57,19 +57,21 @@ func NewGameController(cfg config.Controller) (c *GameController) {
5757// Start starts all go routines
5858func (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 )
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments