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

53 lines
1.3 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"
)
var devMode = flag.Bool("dev", devDefault, "开发模式:直接读取 assets/(默认随构建 tag")
// clientApp 客户端应用骨架(窗口/渲染在 Todo 4 接入)。
type clientApp struct {
cfg *config.ClientConfig
log *logx.Logger
}
// Tick 每 tick20Hz逻辑。
func (a *clientApp) Tick(dt float64) {}
// Render 每帧渲染(占位)。
func (a *clientApp) Render() {}
// ShouldClose 窗口关闭判定(占位)。
func (a *clientApp) ShouldClose() bool { return false }
func main() {
flag.Parse()
log, err := logx.New("logs/client.log", logx.LevelInfo)
if err != nil {
panic(err)
}
cfg, err := config.Load("config/client.yaml", config.DefaultClient())
if err != nil {
log.Warnf("配置加载失败,使用默认值:%v", err)
}
log.Infof("%s 客户端启动:%dx%d语言 %s视距 %d", cfg.Client.WindowTitle, cfg.Client.WindowWidth, cfg.Client.WindowHeight, cfg.Client.Language, cfg.Client.RenderDistance)
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
defer stop()
app := &clientApp{cfg: cfg, log: log}
engine.Run(ctx, app, app)
log.Infof("客户端已退出")
}