diff options
| author | raven <citrons@mondecitronne.com> | 2026-03-23 18:53:14 -0500 |
|---|---|---|
| committer | raven <citrons@mondecitronne.com> | 2026-03-24 12:45:51 -0500 |
| commit | 31fa67112ccd9eeabf31ca20e10e5956c1f6ff38 (patch) | |
| tree | 465629ca70ff1faca524f46591346a05a10eb0b4 /server/server.go | |
| parent | b8d39a6ac1c7a85bb2f48f594d9b0a8f9d8dce42 (diff) | |
optimized level data structure
Diffstat (limited to 'server/server.go')
| -rw-r--r-- | server/server.go | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/server/server.go b/server/server.go index 66daf22..cd899e8 100644 --- a/server/server.go +++ b/server/server.go @@ -6,6 +6,7 @@ import ( "log" "fmt" "time" + "iter" "strconv" "strings" "os/signal" @@ -257,7 +258,7 @@ func (s *Server) newLevel(info levelInfo) (levelId, *level) { } log.Printf("creating new level with id %d", s.LastId) info.Id = s.LastId - l := newLevel(s, info) + l := createNewLevel(s, info) s.levels[info.Id] = l return s.LastId, l } @@ -372,7 +373,9 @@ func (s *Server) removeListEntry(name string) { func (s *Server) getLevel(lvl levelId) *level { if s.levels[lvl] == nil { - s.levels[lvl] = loadLevel(s, lvl, lvl == s.SpawnLevel) + s.levels[lvl] = initLevel(s, + levelInfo {Id: lvl, IsSpawn: lvl == s.SpawnLevel}, + ) } return s.levels[lvl] } @@ -613,9 +616,10 @@ func (cl *client) SendPacket(from phony.Actor, packet classic.Packet) { }) } -func (cl *client) SendPackets(from phony.Actor, packets []classic.Packet) { +func (cl *client) SendPackets( + from phony.Actor, packets iter.Seq[classic.Packet]) { cl.Act(from, func() { - for _, packet := range packets { + for packet := range packets { if cl.conn == nil { return } @@ -628,7 +632,12 @@ func (cl *client) SendPing(from phony.Actor) { cl.Act(from, func() { if cl.conn != nil { cl.conn.SetWriteDeadline(time.Now().Add(10 * time.Second)) - cl.handleError(classic.WritePacket(cl.conn, &classic.Ping{})) + err := cl.handleError( + classic.WritePacket(cl.conn, &classic.Ping{}), + ) + if err != nil { + cl.conn.SetWriteDeadline(time.Time{}) + } } }) } |
