soundEffect.py (1835B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\environment\effects\soundEffect.py 2 from eve.client.script.environment.effects.GenericEffect import GenericEffect, STOP_REASON_DEFAULT 3 from eveSpaceObject.spaceobjaudio import GetBoosterSizeStr 4 5 class SoundEffect(GenericEffect): 6 __guid__ = 'effects.soundEffect' 7 8 def __init__(self, trigger, *args, **kwargs): 9 GenericEffect.__init__(self, trigger, *args, **kwargs) 10 self.trigger = trigger 11 12 def Start(self, duration): 13 eventType = 'play' 14 self.SendEffectEvent(eventType) 15 16 def Stop(self, reason = STOP_REASON_DEFAULT): 17 eventType = 'stop' 18 self.SendEffectEvent(eventType) 19 20 def GetShipSizeFromSlimItem(self, ship): 21 slimItem = ship.typeData['slimItem'] 22 groupID = slimItem.groupID 23 sizeStr = GetBoosterSizeStr(groupID) 24 return sizeStr 25 26 def GetEventName(self, eventType, ship): 27 effectType = GetEffectTypeFromTrigger(self.trigger) 28 sizeStr = self.GetShipSizeFromSlimItem(ship) 29 parts = [effectType, sizeStr, eventType] 30 soundEvent = '_'.join(parts) 31 return soundEvent 32 33 def SendEffectEvent(self, eventType): 34 emitter = None 35 ship = self.GetEffectShipBall() 36 if ship is None or ship.model is None: 37 return 38 for item in ship.model.observers: 39 if item.observer.name.startswith('ship') and item.observer.name.endswith('booster'): 40 emitter = item.observer 41 break 42 43 if emitter is not None: 44 soundEvent = self.GetEventName(eventType, ship) 45 emitter.SendEvent(unicode(soundEvent)) 46 47 48 def GetEffectTypeFromTrigger(trigger): 49 guid = trigger.guid 50 effectType = guid.split('.')[-1] 51 return effectType.lower()