Commit | Line | Data |
---|---|---|
54a1397e FC |
1 | from glob import glob |
2 | from random import choice | |
3 | from logging import info | |
4 | from panda3d.core import AudioSound | |
5 | ||
6 | ||
7 | class MusicMgr: | |
8 | ||
9ba5488b | 9 | def __init__(self, volume): |
54a1397e | 10 | self._start_music(glob('assets/audio/music/*.ogg')) |
9ba5488b FC |
11 | base.musicManager.setVolume(.8 * volume) |
12 | base.sfxManagerList[0].setVolume(volume) | |
54a1397e FC |
13 | taskMgr.add(self._on_frame, 'on frame music') |
14 | ||
15 | def _start_music(self, files): | |
16 | self._music = loader.load_music(choice(files)) | |
17 | info('playing music ' + self._music.get_name()) | |
18 | self._music.play() | |
19 | ||
e1e44d5c FC |
20 | def set_volume(self, volume): |
21 | base.musicManager.setVolume(.8 * volume) | |
22 | base.sfxManagerList[0].setVolume(volume) | |
23 | ||
54a1397e FC |
24 | def _on_frame(self, task): |
25 | if self._music.status() == AudioSound.READY: | |
26 | files = glob('assets/audio/music/*.ogg') | |
27 | files.remove('assets/audio/music/' + self._music.get_name()) | |
28 | self._start_music(files) | |
29 | return task.cont |