initial spectator implementation
This commit is contained in:
@@ -14,6 +14,9 @@ type game struct {
|
||||
unregister chan *player
|
||||
id chan int
|
||||
turn int
|
||||
spectators map[*Spectator]bool
|
||||
sregister chan *Spectator
|
||||
sunregister chan *Spectator
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
@@ -55,6 +58,12 @@ func (g *game) run() {
|
||||
case p := <-g.unregister:
|
||||
delete(g.players, p)
|
||||
close(p.send)
|
||||
case s := <-g.sregister:
|
||||
log.Printf("registering a spectator: %+v", s)
|
||||
g.spectators[s] = true
|
||||
case s := <-g.sunregister:
|
||||
delete(g.spectators, s)
|
||||
close(s.send)
|
||||
case <-time.Tick(time.Duration(*tick) * time.Millisecond):
|
||||
g.turn++
|
||||
t0 := time.Now()
|
||||
@@ -111,6 +120,9 @@ func (g *game) run() {
|
||||
for p := range g.players {
|
||||
p.send <- payload
|
||||
}
|
||||
for s := range g.spectators {
|
||||
s.send <- payload
|
||||
}
|
||||
|
||||
t1 = time.Now()
|
||||
if *verbose {
|
||||
|
||||
Reference in New Issue
Block a user