component.go 682 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package mhayaActor
  2. import cfacade "github.com/mhaya/facade"
  3. var (
  4. Name = "actor_component"
  5. )
  6. type Component struct {
  7. cfacade.Component
  8. *System
  9. actorHandlers []cfacade.IActorHandler
  10. }
  11. func New() *Component {
  12. return &Component{
  13. System: NewSystem(),
  14. }
  15. }
  16. func (c *Component) Name() string {
  17. return Name
  18. }
  19. func (c *Component) Init() {
  20. c.System.SetApp(c.App())
  21. }
  22. func (c *Component) OnAfterInit() {
  23. // Register actor
  24. for _, actor := range c.actorHandlers {
  25. c.CreateActor(actor.AliasID(), actor)
  26. }
  27. }
  28. func (c *Component) OnStop() {
  29. c.System.Stop()
  30. }
  31. func (c *Component) Add(actors ...cfacade.IActorHandler) {
  32. c.actorHandlers = append(c.actorHandlers, actors...)
  33. }