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

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()