From 9e4b5390e83a46a99faf28884c0817738beeb605 Mon Sep 17 00:00:00 2001 From: raven Date: Sat, 21 Mar 2026 16:17:22 -0500 Subject: /createLevel command --- server/server.go | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'server/server.go') diff --git a/server/server.go b/server/server.go index c3e1c6b..c549122 100644 --- a/server/server.go +++ b/server/server.go @@ -31,6 +31,7 @@ type Server struct { } type worldState struct { + LastId levelId SpawnLevel levelId SpawnPos entityPos } @@ -46,16 +47,17 @@ func NewServer(info ServerInfo) *Server { err := os.Mkdir("world", 0777) dataManager.errHand = s if err == nil { - spawnLevel := s.newLevel(levelInfo { - Id: 0, - Size: blockPos {X: 256, Y: 256, Z: 256}, + s.LastId = -1 + var spawnLevel *level + s.SpawnLevel, spawnLevel = s.newLevel(levelInfo { + Size: blockPos {X: 64, Y: 64, Z: 64}, IsSpawn: true, }) spawnLevel.generateFlat() s.SpawnPos = entityPos { - 128*blockSize, - 128*blockSize + playerHeight, - 128*blockSize, + 32*blockSize, + 32*blockSize + playerHeight, + 32*blockSize, } } else { loaded := make(chan worldState, 1) @@ -205,10 +207,19 @@ func (s *Server) OnSaveError(from phony.Actor, err error) { func (s *Server) Tick() { } -func (s *Server) newLevel(info levelInfo) *level { +func (s *Server) newLevel(info levelInfo) (levelId, *level) { + s.LastId++ + for { + _, err := os.Stat(fmt.Sprintf("world/levels/%d.bin", s.LastId)) + if err != nil { + break + } + s.LastId++ + } + info.Id = s.LastId l := newLevel(s, info) s.levels[info.Id] = l - return l + return s.LastId, l } func (s *Server) newPlayer(cl *client, name string) *player { -- cgit v1.2.3