diff --git a/app/src/main/java/org/toop/app/App.java b/app/src/main/java/org/toop/app/App.java index bc68b76..f8f7f64 100644 --- a/app/src/main/java/org/toop/app/App.java +++ b/app/src/main/java/org/toop/app/App.java @@ -11,6 +11,8 @@ import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import org.toop.framework.asset.resources.SettingsAsset; +import org.toop.framework.audio.events.AudioEvents; +import org.toop.framework.eventbus.EventFlow; import org.toop.local.AppSettings; import java.io.File; @@ -65,6 +67,8 @@ public final class App extends Application { App.isQuitting = false; + new EventFlow().addPostEvent(new AudioEvents.StartBackgroundMusic()).postEvent(); + activate(new MainLayer()); } diff --git a/app/src/main/java/org/toop/app/layer/layers/OptionsLayer.java b/app/src/main/java/org/toop/app/layer/layers/OptionsLayer.java index cb9dfd7..67a75bf 100644 --- a/app/src/main/java/org/toop/app/layer/layers/OptionsLayer.java +++ b/app/src/main/java/org/toop/app/layer/layers/OptionsLayer.java @@ -84,7 +84,7 @@ public final class OptionsLayer extends Layer { container.addSlider(100, currentVolume, (volume) -> { currentVolume = volume; settings.setVolume(volume); - new EventFlow().addPostEvent(new AudioEvents.ChangeVolume(volume.doubleValue() / 100.0)).asyncPostEvent(); + new EventFlow().addPostEvent(new AudioEvents.ChangeVolume(volume.doubleValue())).asyncPostEvent(); }); } diff --git a/app/src/main/java/org/toop/local/AppSettings.java b/app/src/main/java/org/toop/local/AppSettings.java index 5e200a2..5bc8fe5 100644 --- a/app/src/main/java/org/toop/local/AppSettings.java +++ b/app/src/main/java/org/toop/local/AppSettings.java @@ -2,6 +2,8 @@ package org.toop.local; import org.toop.app.App; import org.toop.framework.asset.resources.SettingsAsset; +import org.toop.framework.audio.events.AudioEvents; +import org.toop.framework.eventbus.EventFlow; import org.toop.framework.settings.Settings; import java.io.File; @@ -20,6 +22,8 @@ public class AppSettings { AppContext.setLocale(Locale.of(settingsData.locale)); App.setFullscreen(settingsData.fullScreen); + new EventFlow().addPostEvent(new AudioEvents.ChangeVolume(settingsData.volume)).asyncPostEvent(); + } public SettingsAsset getPath() { diff --git a/app/src/main/resources/assets/audio/music/gladius.mp3 b/app/src/main/resources/assets/audio/music/gladius.mp3 new file mode 100644 index 0000000..a6717be Binary files /dev/null and b/app/src/main/resources/assets/audio/music/gladius.mp3 differ diff --git a/framework/src/main/java/org/toop/framework/audio/SoundManager.java b/framework/src/main/java/org/toop/framework/audio/SoundManager.java index f7fad76..595709d 100644 --- a/framework/src/main/java/org/toop/framework/audio/SoundManager.java +++ b/framework/src/main/java/org/toop/framework/audio/SoundManager.java @@ -69,15 +69,16 @@ public class SoundManager { } private void handleVolumeChange(AudioEvents.ChangeVolume event) { - if (event.newVolume() > 1.0) this.volume = 1.0; - else this.volume = Math.max(event.newVolume(), 0.0); + double newVolume = event.newVolume() / 100; + if (newVolume > 1.0) this.volume = 1.0; + else this.volume = Math.max(newVolume, 0.0); for (MediaPlayer mediaPlayer : this.activeMusic) { mediaPlayer.setVolume(this.volume); } } private void handleGetCurrentVolume(AudioEvents.GetCurrentVolume event) { - new EventFlow().addPostEvent(new AudioEvents.GetCurrentVolumeReponse(volume, event.snowflakeId())) + new EventFlow().addPostEvent(new AudioEvents.GetCurrentVolumeReponse(volume * 100, event.snowflakeId())) .asyncPostEvent(); }