init.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. )
  20. for _, buildTable := range mapTables.BuildTables {
  21. if !buildTable.IsHide {
  22. marker := buildTable.ToAOIMarker()
  23. actorAOIBuild.enter(marker)
  24. }
  25. }
  26. for _, castleTable := range mapTables.CastleTables {
  27. marker := castleTable.ToAOIMarker()
  28. actorAOICastle.enter(marker)
  29. }
  30. for _, marchTable := range mapTables.MarchTables {
  31. if marchTable.IsInMap() {
  32. marker := marchTable.ToAOIMarker()
  33. actorAOIMarch.enter(marker)
  34. }
  35. }
  36. for _, monsterTable := range mapTables.MonsterTables {
  37. if monsterTable.IsAlive {
  38. marker := monsterTable.ToAOIMarker()
  39. actorAOIMonster.enter(marker)
  40. }
  41. }
  42. for _, resTable := range mapTables.ResTables {
  43. marker := resTable.ToAOIMarker()
  44. actorAOIRes.enter(marker)
  45. }
  46. for _, legionTable := range mapTables.LegionTables {
  47. marker := legionTable.ToAOIMarker()
  48. actorAOILegion.enter(marker)
  49. }
  50. // 创建 AOI actor
  51. p.Child().Create(actorAOIBuild.AliasID(), actorAOIBuild)
  52. p.Child().Create(actorAOICastle.AliasID(), actorAOICastle)
  53. p.Child().Create(actorAOIMarch.AliasID(), actorAOIMarch)
  54. p.Child().Create(actorAOIMonster.AliasID(), actorAOIMonster)
  55. p.Child().Create(actorAOIRes.AliasID(), actorAOIRes)
  56. p.Child().Create(actorAOILegion.AliasID(), actorAOILegion)
  57. // 打开日志
  58. actorAOIBuild.setPrintLog(true)
  59. actorAOICastle.setPrintLog(true)
  60. actorAOIMarch.setPrintLog(true)
  61. actorAOIMonster.setPrintLog(true)
  62. actorAOIRes.setPrintLog(true)
  63. actorAOILegion.setPrintLog(true)
  64. }