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) }