new server
All checks were successful
Create and publish a Docker image 🚀 / build-and-push-image (push) Successful in 1m19s

This commit is contained in:
Smile Rex
2026-01-17 16:38:45 +03:00
parent 1c60264d1d
commit 3c989c33f8
10 changed files with 156 additions and 85 deletions

View File

@@ -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)
}
}
}