new server
All checks were successful
Create and publish a Docker image 🚀 / build-and-push-image (push) Successful in 1m19s
All checks were successful
Create and publish a Docker image 🚀 / build-and-push-image (push) Successful in 1m19s
This commit is contained in:
@@ -8,17 +8,17 @@ import (
|
||||
)
|
||||
|
||||
func (h *Hub) readLoop(conn *websocket.Conn) {
|
||||
handMessage := models.Message{Type: MSG_WELCOME}
|
||||
_ = conn.WriteMessage(websocket.BinaryMessage, handMessage.Encode())
|
||||
|
||||
var player *models.Player
|
||||
var id uint32
|
||||
log.Println("client ws connected")
|
||||
|
||||
defer func() {
|
||||
if player != nil {
|
||||
h.removePlayer(player.ID)
|
||||
log.Println("Player left:", player.ID)
|
||||
}
|
||||
conn.Close()
|
||||
if id != 0 {
|
||||
h.removeEntity(id)
|
||||
log.Println("entity [player] removed:", id)
|
||||
}
|
||||
|
||||
log.Println("client ws disconnected")
|
||||
}()
|
||||
|
||||
for {
|
||||
@@ -36,20 +36,32 @@ func (h *Hub) readLoop(conn *websocket.Conn) {
|
||||
switch msg.Type {
|
||||
|
||||
case MSG_WELCOME:
|
||||
if player != nil {
|
||||
continue
|
||||
reader := models.NewReader(msg.Payload)
|
||||
log.Println("MSG_WELCOME received", &msg.Payload)
|
||||
id = reader.ReadU32()
|
||||
name := reader.ReadString()
|
||||
|
||||
if h.Entities[id] != nil {
|
||||
h.ErrorMsg("Entity already exists", conn)
|
||||
}
|
||||
player = h.handShake(msg.Payload, conn)
|
||||
log.Println("Player joined:", player.ID)
|
||||
|
||||
player := &models.Player{
|
||||
BaseEntity: models.BaseEntity{ID: id},
|
||||
Name: name,
|
||||
}
|
||||
|
||||
h.addEntity(id, player)
|
||||
h.Clients[id] = conn
|
||||
log.Println("entity [player] added:", id)
|
||||
|
||||
case MSG_INPUT:
|
||||
if player == nil {
|
||||
continue
|
||||
}
|
||||
reader := models.NewReader(msg.Payload)
|
||||
id := reader.ReadU32()
|
||||
x := reader.ReadF32()
|
||||
y := reader.ReadF32()
|
||||
h.updatePosition(x, y, player)
|
||||
z := reader.ReadF32()
|
||||
h.updateEntityPosition(x, y, z, id)
|
||||
log.Println(h.Entities)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user