package mapAOI import ( "f1-game/nodes/map/internal/db" cfacade "github.com/cherry-game/cherry/facade" ) func Init(app cfacade.IApplication, mapTables *db.LogicTables) { actor := &actor{} app.ActorSystem().CreateActor(actor.AliasID(), actor) actor.initChild(mapTables) } func (p *actor) initChild(mapTables *db.LogicTables) { var ( actorAOIBuild = newActorAOIBuild() actorAOICastle = newActorAOICastle() actorAOIMarch = newActorAOIMarch() actorAOIMonster = newActorAOIMonster() actorAOIRes = newActorAOIRes() actorAOILegion = newActorAOILegion() actorAOIArmyLine = newActorAOIArmyLine() ) for _, buildTable := range mapTables.BuildTables { if !buildTable.IsHide { marker := buildTable.ToAOIMarker() actorAOIBuild.enter(marker) } } for _, castleTable := range mapTables.CastleTables { marker := castleTable.ToAOIMarker() actorAOICastle.enter(marker) } for _, marchTable := range mapTables.MarchTables { if marchTable.IsInMap() { marker := marchTable.ToAOIMarker() actorAOIMarch.enter(marker) } } for _, monsterTable := range mapTables.MonsterTables { if monsterTable.IsAlive { marker := monsterTable.ToAOIMarker() actorAOIMonster.enter(marker) } } for _, resTable := range mapTables.ResTables { marker := resTable.ToAOIMarker() actorAOIRes.enter(marker) } for _, legionTable := range mapTables.LegionTables { marker := legionTable.ToAOIMarker() actorAOILegion.enter(marker) } // 创建 AOI actor p.Child().Create(actorAOIBuild.AliasID(), actorAOIBuild) p.Child().Create(actorAOICastle.AliasID(), actorAOICastle) p.Child().Create(actorAOIMarch.AliasID(), actorAOIMarch) p.Child().Create(actorAOIMonster.AliasID(), actorAOIMonster) p.Child().Create(actorAOIRes.AliasID(), actorAOIRes) p.Child().Create(actorAOILegion.AliasID(), actorAOILegion) p.Child().Create(actorAOIArmyLine.AliasID(), actorAOIArmyLine) // 打开日志 actorAOIBuild.setPrintLog(true) actorAOICastle.setPrintLog(true) actorAOIMarch.setPrintLog(true) actorAOIMonster.setPrintLog(true) actorAOIRes.setPrintLog(true) actorAOILegion.setPrintLog(true) actorAOIArmyLine.setPrintLog(true) }