From 797bad30142f3afb7dbd5ad62f7ba91825a78574 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 7 Nov 2023 18:44:58 +0900 Subject: [PATCH] audiomanager wip --- src/net/torvald/terrarum/AudioManager.kt | 20 +++++++++++++++++++ .../modulebasegame/TerrarumMusicGovernor.kt | 12 +++-------- 2 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 src/net/torvald/terrarum/AudioManager.kt diff --git a/src/net/torvald/terrarum/AudioManager.kt b/src/net/torvald/terrarum/AudioManager.kt new file mode 100644 index 000000000..6bd0208d7 --- /dev/null +++ b/src/net/torvald/terrarum/AudioManager.kt @@ -0,0 +1,20 @@ +package net.torvald.terrarum + +/** + * Created by minjaesong on 2023-11-07. + */ +object AudioManager { + + /** Returns a companded master volume */ + val masterVolume: Float + get() = App.getConfigDouble("mastervolume").toFloat() + + /** Returns a (master volume * bgm volume) */ + val musicVolume: Float + get() = (App.getConfigDouble("bgmvolume") * App.getConfigDouble("mastervolume")).toFloat() + + /** Returns a (master volume * sfx volume */ + val ambientVolume: Float + get() = (App.getConfigDouble("sfxvolume") * App.getConfigDouble("mastervolume")).toFloat() + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumMusicGovernor.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumMusicGovernor.kt index eba7a4359..7b43e3119 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumMusicGovernor.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumMusicGovernor.kt @@ -43,12 +43,6 @@ class TerrarumMusicGovernor : MusicGovernor() { private var warningPrinted = false - private val musicVolume: Float - get() = (App.getConfigDouble("bgmvolume") * App.getConfigDouble("mastervolume")).toFloat() - private val ambientVolume: Float - get() = (App.getConfigDouble("sfxvolume") * App.getConfigDouble("mastervolume")).toFloat() - - private fun stopMusic() { @@ -63,7 +57,7 @@ class TerrarumMusicGovernor : MusicGovernor() { } private fun startMusic(song: MusicContainer) { - song.gdxMusic.volume = musicVolume + song.gdxMusic.volume = AudioManager.musicVolume song.gdxMusic.play() printdbg(this, "Now playing: $song") @@ -102,7 +96,7 @@ class TerrarumMusicGovernor : MusicGovernor() { // process fadeout request if (fadeoutFired) { fadeoutAkku += delta - currentMusic?.gdxMusic?.volume = 1f - musicVolume * (fadeoutAkku / fadeoutLength) + currentMusic?.gdxMusic?.volume = 1f - AudioManager.musicVolume * (fadeoutAkku / fadeoutLength) if (fadeoutAkku >= fadeoutLength) { currentMusic?.gdxMusic?.pause() @@ -114,7 +108,7 @@ class TerrarumMusicGovernor : MusicGovernor() { currentMusic?.gdxMusic?.play() } fadeoutAkku += delta - currentMusic?.gdxMusic?.volume = musicVolume * (fadeoutAkku / fadeoutLength) + currentMusic?.gdxMusic?.volume = AudioManager.musicVolume * (fadeoutAkku / fadeoutLength) } } else {