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

activatecontroller.py (1821B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\spacecomponents\activatecontroller.py
      2 from eve.client.script.spacecomponents.countercontroller import BaseCounterController
      3 from spacecomponents.client.messages import MSG_ON_ACTIVATE_TIMER_UPDATED
      4 from spacecomponents.common.componentConst import ACTIVATE_CLASS
      5 import blue
      6 import logging
      7 logger = logging.getLogger(__name__)
      8 ACTIVATE_TIMER_COLOR = (0.2, 1.0, 0.3, 1.0)
      9 
     10 class ActivateCounterController(BaseCounterController):
     11     __componentClass__ = ACTIVATE_CLASS
     12     __counterColor__ = ACTIVATE_TIMER_COLOR
     13     __counterLabel__ = 'UI/Inflight/SpaceComponents/Activate/TimerLabel'
     14     __timerFunc__ = blue.os.GetSimTime
     15     __countsDown__ = False
     16     __soundInitialEvent__ = 'counter_activate_play'
     17     __soundFinishedEvent__ = 'bounty_open_play'
     18 
     19     def __init__(self, *args):
     20         BaseCounterController.__init__(self, *args)
     21         self.componentRegistry.SubscribeToItemMessage(self.itemID, MSG_ON_ACTIVATE_TIMER_UPDATED, self.UpdateTimerState)
     22 
     23     def UpdateTimerState(self, instance, slimItem):
     24         if slimItem.component_activate is not None:
     25             if instance.isActive:
     26                 if self.timer is not None:
     27                     logger.debug('%s Removing timer for %s', self.__class__.__name__, slimItem.itemID)
     28                     self.RemoveTimer()
     29                     instance.UnsubscribeFromMessage(MSG_ON_ACTIVATE_TIMER_UPDATED, self.UpdateTimerState)
     30             elif instance.activeTimestamp is None:
     31                 self.RemoveTimer()
     32             elif self.timer is None:
     33                 logger.debug('%s Adding timer for %s', self.__class__.__name__, slimItem.itemID)
     34                 seconds = instance.GetDurationSeconds()
     35                 self.AddTimer(instance.activeTimestamp, seconds)