| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package game
- import (
- cherryApp "f1-game/internal/cherry_app"
- checkCenter "f1-game/internal/component/check_center"
- funcLoad "f1-game/internal/component/func_load"
- cgops "f1-game/internal/component/gops"
- "f1-game/internal/component/redis"
- "f1-game/internal/component/sdk"
- "f1-game/internal/data"
- genPool "f1-game/internal/gen_pool"
- nameActor "f1-game/internal/name/actor"
- nameRemote "f1-game/internal/name/remote"
- "f1-game/internal/sessions"
- "f1-game/nodes/game/internal/db"
- facadeInit "f1-game/nodes/game/internal/facade/init"
- "f1-game/nodes/game/login"
- "f1-game/nodes/game/mail"
- "f1-game/nodes/game/marquee"
- "f1-game/nodes/game/ops"
- "f1-game/nodes/game/order"
- "f1-game/nodes/game/player"
- "runtime"
- "github.com/cherry-game/cherry"
- csnowflake "github.com/cherry-game/cherry/extend/snowflake"
- cutils "github.com/cherry-game/cherry/extend/utils"
- cfacade "github.com/cherry-game/cherry/facade"
- )
- func Run(node cfacade.INode) {
- if !cutils.IsNumeric(node.NodeID()) {
- panic("node id must number.")
- }
- app := cherry.ConfigureNode(
- node,
- false,
- cherry.Cluster,
- )
- app.Register(initBeforeFunc())
- app.Register(cgops.New())
- app.Register(data.New())
- app.Register(redis.New())
- app.Register(checkCenter.New())
- app.Register(db.NewGame())
- app.Register(sdk.New())
- //app.Register(loopping.New()) // loop ping test component
- app.AddActors(
- sessions.NewActor(true),
- ops.NewActor(),
- genPool.NewActor(node.NodeID()),
- mail.NewActor(runtime.NumGoroutine()*2),
- player.NewActor(),
- login.NewActor(runtime.NumGoroutine()*2),
- marquee.NewActor(),
- order.NewActor(512),
- )
- app.ActorSystem().SetArrivalTimeout(50)
- app.ActorSystem().SetExecutionTimeout(50)
- app.Startup()
- }
- func initBeforeFunc() cfacade.IComponent {
- fn := func(app cfacade.IApplication) {
- csnowflake.InitDefaultNode(app.NodeID())
- cherryApp.Init(app)
- facadeInit.Load()
- // 当用户断开连接时,触发玩家退出消息
- sessions.SetOnUnbindFunc(func(playerID int64) {
- targetPath := cfacade.NewChildPath("", nameActor.GamePlayer, playerID)
- cherryApp.Call(targetPath, nameRemote.Player_OnSessionClosed, nil)
- })
- }
- return funcLoad.New("initBeforeFunc", fn)
- }
|