NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

groups.py (1310B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\monitors\groups.py
      2 from ballpark.entities.entitygroup import MESSAGE_ON_ENTITY_GROUP_MEMBERSHIP_CHANGED
      3 from behaviors.groups.mixin import GroupTaskMixin, EntityGroupNotFound
      4 from behaviors.tasks import Task
      5 import logging
      6 logger = logging.getLogger(__name__)
      7 
      8 class GroupMembershipMonitor(Task, GroupTaskMixin):
      9 
     10     def OnEnter(self):
     11         self.SubscribeMembershipChanges()
     12         self.SetStatusToSuccess()
     13 
     14     def CleanUp(self):
     15         if not self.IsInvalid():
     16             self.UnsubscribeMembershipChanges()
     17             self.SetStatusToInvalid()
     18 
     19     def OnMembershipChanged(self, _):
     20         if self.IsInvalid():
     21             return
     22         self.behaviorTree.RequestReset(requestedBy=self)
     23 
     24     def SubscribeMembershipChanges(self):
     25         messenger = self.GetGroupMessenger()
     26         messenger.SubscribeToMessage(MESSAGE_ON_ENTITY_GROUP_MEMBERSHIP_CHANGED, self.OnMembershipChanged)
     27 
     28     def UnsubscribeMembershipChanges(self):
     29         try:
     30             messenger = self.GetGroupMessenger()
     31             messenger.UnsubscribeFromMessage(MESSAGE_ON_ENTITY_GROUP_MEMBERSHIP_CHANGED, self.OnMembershipChanged)
     32         except EntityGroupNotFound:
     33             logger.debug('The entity group can not be found')