random ids i guess, this is bad

master
Jordan Orelli 4 years ago
parent 2a29ee6c88
commit 804943b5ab

@ -3,6 +3,7 @@ package sim
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"math/rand"
"time" "time"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
@ -137,6 +138,7 @@ func (s spawnPlayer) exec(r *room, p *player, seq int) result {
if t.here == nil { if t.here == nil {
x, y := n%r.Width, n/r.Width x, y := n%r.Width, n/r.Width
e := entity{ e := entity{
ID: rand.Intn(9000),
Position: math.Vec{x, y}, Position: math.Vec{x, y},
Glyph: '@', Glyph: '@',
behavior: doNothing{}, behavior: doNothing{},

@ -68,16 +68,30 @@ func (w *world) run(hz int) {
w.register(c) w.register(c)
case req := <-w.inbox: case req := <-w.inbox:
w.handleRequest(req)
case <-ticker.C:
w.tick(time.Since(lastTick))
lastTick = time.Now()
case <-w.done:
return
}
}
}
func (w *world) handleRequest(req Request) {
w.Info("read from inbox: %v", req) w.Info("read from inbox: %v", req)
if req.From == "" { if req.From == "" {
w.Error("request has no from: %v", req) w.Error("request has no from: %v", req)
break return
} }
p, ok := w.players[req.From] p, ok := w.players[req.From]
if !ok { if !ok {
w.Error("received non login request of type %T from unknown player %q", req.Wants, req.From) w.Error("received non login request of type %T from unknown player %q", req.Wants, req.From)
return
} }
if p.pending == nil { if p.pending == nil {
@ -85,15 +99,6 @@ func (w *world) run(hz int) {
} else { } else {
p.outbox <- wire.ErrorResponse(req.Seq, "you already have a request for this frame") p.outbox <- wire.ErrorResponse(req.Seq, "you already have a request for this frame")
} }
case <-ticker.C:
w.tick(time.Since(lastTick))
lastTick = time.Now()
case <-w.done:
return
}
}
} }
func (w *world) register(c connect) { func (w *world) register(c connect) {

Loading…
Cancel
Save