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)