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

environmentAudio.py (1965B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\evegraphics\environments\environmentAudio.py
      2 from __future__ import absolute_import
      3 import audio2
      4 import logging
      5 import trinity
      6 from carbon.client.script.environment.audioService import GetAudioService
      7 from evegraphics.environments import BaseEnvironmentObject
      8 from tacticalNavigation import ballparkFunctions
      9 log = logging.getLogger(__name__)
     10 
     11 class EnvironmentAudio(BaseEnvironmentObject):
     12 
     13     def __init__(self, audioTriggers):
     14         super(EnvironmentAudio, self).__init__()
     15         self.audioEffectRoot = None
     16         self.ball = None
     17         self.emitter = None
     18         self.onEnterSoundID = audioTriggers.onEnter
     19 
     20     def Setup(self):
     21         pass
     22 
     23     def ApplyToScene(self):
     24         from .environmentManager import EnvironmentManager
     25         if EnvironmentManager.BALLPARK_MODE:
     26             self.ball = ballparkFunctions.AddClientBall(self.environmentPosition)
     27         if self.onEnterSoundID:
     28             self.audioEffectRoot = trinity.EveEffectRoot2()
     29             self.audioEffectRoot.name = 'EnvironmentSound'
     30             self.audioEffectRoot.translationCurve = self.ball
     31             observerLocal = trinity.TriObserverLocal()
     32             self.emitter = audio2.AudEmitter('environment_ambience_sfx')
     33             observerLocal.observer = self.emitter
     34             self.audioEffectRoot.observers.append(observerLocal)
     35             if self.scene:
     36                 self.scene.objects.append(self.audioEffectRoot)
     37             GetAudioService().HandleFsdSoundID(self.onEnterSoundID, emitter=self.emitter)
     38 
     39     def TearDown(self):
     40         if self.scene and self.audioEffectRoot in self.scene.objects:
     41             self.scene.objects.fremove(self.audioEffectRoot)
     42         del self.audioEffectRoot
     43         self.audioEffectRoot = None
     44         if self.ball is not None:
     45             ballparkFunctions.RemoveClientBall(self.ball)
     46         self.emitter = None
     47         self.scene = None