From 84e1b2ee2e21c8938ae9cd5c80d3f7ac0fa209db Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Thu, 11 Dec 2003 04:24:42 +0000 Subject: [PATCH] added AmbientSound --- direct/src/level/AmbientSound.py | 30 +++++++++++++++++++++++++++++ direct/src/level/EntityCreator.py | 2 ++ direct/src/level/EntityCreatorAI.py | 1 + direct/src/level/EntityTypes.py | 6 ++++++ 4 files changed, 39 insertions(+) create mode 100755 direct/src/level/AmbientSound.py diff --git a/direct/src/level/AmbientSound.py b/direct/src/level/AmbientSound.py new file mode 100755 index 0000000000..a59a95ed27 --- /dev/null +++ b/direct/src/level/AmbientSound.py @@ -0,0 +1,30 @@ +from IntervalGlobal import * +import BasicEntities + +class AmbientSound(BasicEntities.NodePathEntity): + def __init__(self, level, entId): + BasicEntities.NodePathEntity.__init__(self, level, entId) + + def destroy(self): + BasicEntities.NodePathEntity.destroy(self) + + def initSound(self): + if self.soundPath == '': + return + self.sound = base.loadSfx(self.soundPath) + if self.sound is None: + return + self.soundIval = SoundInterval(self.sound, node=self) + self.soundIval.loop() + + def destroySound(self): + if hasattr(self, 'soundIval'): + self.soundIval.pause() + del self.soundIval + if hasattr(self, 'sound'): + del self.sound + + if __dev__: + def attribChanged(self, *args): + self.destroySound() + self.initSound() diff --git a/direct/src/level/EntityCreator.py b/direct/src/level/EntityCreator.py index e7ef214bcb..c03b7c0fdb 100755 --- a/direct/src/level/EntityCreator.py +++ b/direct/src/level/EntityCreator.py @@ -13,6 +13,7 @@ import ModelEntity import PathEntity import VisibilityExtender import PropSpinner +import AmbientSound # some useful constructor functions # ctor functions must take (level, entId) @@ -32,6 +33,7 @@ class EntityCreator(EntityCreatorBase.EntityCreatorBase): EntityCreatorBase.EntityCreatorBase.__init__(self, level) self.level = level self.privRegisterTypes({ + 'ambientSound': AmbientSound.AmbientSound, 'cutScene': CutScene.CutScene, 'editMgr': EditMgr.EditMgr, 'entityGroup': nothing, diff --git a/direct/src/level/EntityCreatorAI.py b/direct/src/level/EntityCreatorAI.py index 9699c6570e..d97c440544 100755 --- a/direct/src/level/EntityCreatorAI.py +++ b/direct/src/level/EntityCreatorAI.py @@ -44,6 +44,7 @@ class EntityCreatorAI(EntityCreatorBase.EntityCreatorBase): cLE = createLocalEntity self.privRegisterTypes({ + 'ambientSound': nothing, 'cutScene': nothing, 'editMgr': Functor(cLE, EditMgrAI.EditMgrAI), 'entityGroup': nothing, diff --git a/direct/src/level/EntityTypes.py b/direct/src/level/EntityTypes.py index a3fd509153..89a525c7aa 100755 --- a/direct/src/level/EntityTypes.py +++ b/direct/src/level/EntityTypes.py @@ -119,6 +119,12 @@ class VisibilityExtender(Entity): ('newZones', [], 'visZoneList'), ) +class AmbientSound(Entity): + type = 'ambientSound' + attribs = ( + ('soundPath', '', 'bamfilename'), + ) + class PropSpinner(Entity): type = 'propSpinner'