| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package mapPathfind
- import (
- "f1-game/nodes/map/internal/db"
- mapTypes "f1-game/nodes/map/internal/types"
- "runtime"
- cstring "github.com/cherry-game/cherry/extend/string"
- cfacade "github.com/cherry-game/cherry/facade"
- )
- func Init(app cfacade.IApplication, mapTables *db.LogicTables) {
- // 初始化 pathfind actor
- workerSize := runtime.NumCPU()
- actorPathfind := NewActor(workerSize)
- app.ActorSystem().CreateActor(actorPathfind.AliasID(), actorPathfind)
- barrierData := loadBarrierData(mapTables)
- // 初始化子actor
- for i := range workerSize {
- childID := cstring.ToString(i)
- childActor := newActorPathfind(barrierData)
- actorPathfind.Child().Create(childID, childActor)
- }
- }
- // 加载障碍数据
- func loadBarrierData(mapTables *db.LogicTables) mapTypes.BarrierData {
- barrierData := mapTypes.NewBarrierData()
- for _, castleTable := range mapTables.CastleTables {
- barrier := castleTable.ToBarrierRequest()
- barrierData.Add(barrier)
- }
- for _, buildTable := range mapTables.BuildTables {
- barrier := buildTable.ToBarrierRequest()
- barrierData.Add(barrier)
- }
- return barrierData
- }
|