Files
ngzz-mc/cmd/server/main.go

51 lines
1.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 年糕历险记 —— 专用服务器入口。
package main
import (
"context"
"flag"
"os"
"os/signal"
"mc/internal/config"
"mc/internal/engine"
"mc/internal/logx"
)
// serverApp 服务器应用骨架(世界/网络在后续里程碑接入)。
type serverApp struct {
cfg *config.ServerConfig
log *logx.Logger
tickCount uint64
}
// Tick 每 tick20Hz服务器逻辑。
func (s *serverApp) Tick(dt float64) {
s.tickCount++
if s.tickCount%100 == 0 { // 每 5 秒
s.log.Debugf("tick=%d", s.tickCount)
}
}
func main() {
flag.Parse()
log, err := logx.New("logs/server.log", logx.LevelInfo)
if err != nil {
panic(err)
}
cfg, err := config.Load("config/server.yaml", config.DefaultServer())
if err != nil {
log.Warnf("配置加载失败,使用默认值:%v", err)
}
log.Infof("年糕历险记 服务器启动:端口 %d世界 %q种子 %dtick 率 %d", cfg.Server.Port, cfg.World.Name, cfg.World.Seed, cfg.Server.TickRate)
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
defer stop()
app := &serverApp{cfg: cfg, log: log}
engine.Run(ctx, app, engine.NoopRenderer{})
log.Infof("服务器已退出")
}