actor.go 800 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package mapAOI
  2. import (
  3. nameActor "f1-game/internal/name/actor"
  4. nameRemote "f1-game/internal/name/remote"
  5. cfacade "github.com/cherry-game/cherry/facade"
  6. cactor "github.com/cherry-game/cherry/net/actor"
  7. )
  8. type actor struct {
  9. cactor.Base
  10. }
  11. func (p *actor) AliasID() string {
  12. return nameActor.Map_AOI
  13. }
  14. func (p *actor) OnRemoteReceived(m *cfacade.Message) (bool, bool) {
  15. if p.isCommonFuncName(m.FuncName) {
  16. // 透传给子Actor
  17. p.Child().Each(func(child cfacade.IActor) {
  18. child.PostRemote(m)
  19. })
  20. return false, false
  21. }
  22. return p.Base.OnRemoteReceived(m)
  23. }
  24. func (p *actor) isCommonFuncName(funcName string) bool {
  25. switch funcName {
  26. case nameRemote.MapAOI_Enter,
  27. nameRemote.MapAOI_Leave,
  28. nameRemote.MapAOI_Move,
  29. nameRemote.MapAOI_Update:
  30. return true
  31. }
  32. return false
  33. }