init.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package mapAOI
  2. import (
  3. "f1-game/nodes/map/internal/db"
  4. cfacade "github.com/cherry-game/cherry/facade"
  5. )
  6. func Init(app cfacade.IApplication, mapTables *db.LogicTables) {
  7. actor := &actor{}
  8. app.ActorSystem().CreateActor(actor.AliasID(), actor)
  9. actor.initChild(mapTables)
  10. }
  11. func (p *actor) initChild(mapTables *db.LogicTables) {
  12. var (
  13. actorAOIBuild = newActorAOIBuild()
  14. actorAOICastle = newActorAOICastle()
  15. actorAOIMarch = newActorAOIMarch()
  16. actorAOIMonster = newActorAOIMonster()
  17. actorAOIRes = newActorAOIRes()
  18. actorAOILegion = newActorAOILegion()
  19. actorAOIArmyLine = newActorAOIArmyLine()
  20. )
  21. for _, buildTable := range mapTables.BuildTables {
  22. if !buildTable.IsHide {
  23. marker := buildTable.ToAOIMarker()
  24. actorAOIBuild.enter(marker)
  25. }
  26. }
  27. for _, castleTable := range mapTables.CastleTables {
  28. marker := castleTable.ToAOIMarker()
  29. actorAOICastle.enter(marker)
  30. }
  31. for _, marchTable := range mapTables.MarchTables {
  32. if marchTable.IsInMap() {
  33. marker := marchTable.ToAOIMarker()
  34. actorAOIMarch.enter(marker)
  35. }
  36. }
  37. for _, monsterTable := range mapTables.MonsterTables {
  38. if monsterTable.IsAlive {
  39. marker := monsterTable.ToAOIMarker()
  40. actorAOIMonster.enter(marker)
  41. }
  42. }
  43. for _, resTable := range mapTables.ResTables {
  44. marker := resTable.ToAOIMarker()
  45. actorAOIRes.enter(marker)
  46. }
  47. for _, legionTable := range mapTables.LegionTables {
  48. marker := legionTable.ToAOIMarker()
  49. actorAOILegion.enter(marker)
  50. }
  51. // 创建 AOI actor
  52. p.Child().Create(actorAOIBuild.AliasID(), actorAOIBuild)
  53. p.Child().Create(actorAOICastle.AliasID(), actorAOICastle)
  54. p.Child().Create(actorAOIMarch.AliasID(), actorAOIMarch)
  55. p.Child().Create(actorAOIMonster.AliasID(), actorAOIMonster)
  56. p.Child().Create(actorAOIRes.AliasID(), actorAOIRes)
  57. p.Child().Create(actorAOILegion.AliasID(), actorAOILegion)
  58. p.Child().Create(actorAOIArmyLine.AliasID(), actorAOIArmyLine)
  59. // 打开日志
  60. actorAOIBuild.setPrintLog(true)
  61. actorAOICastle.setPrintLog(true)
  62. actorAOIMarch.setPrintLog(true)
  63. actorAOIMonster.setPrintLog(true)
  64. actorAOIRes.setPrintLog(true)
  65. actorAOILegion.setPrintLog(true)
  66. actorAOIArmyLine.setPrintLog(true)
  67. }