Working state. Split AudioManager into 3 different branches for easier testing and srp

This commit is contained in:
lieght
2025-10-11 04:50:49 +02:00
parent 7f3d858320
commit 123ecc7d3a
12 changed files with 426 additions and 256 deletions

View File

@@ -1,12 +1,20 @@
package org.toop;
import javafx.scene.media.MediaPlayer;
import org.toop.app.App;
import org.toop.framework.audio.SoundManager;
import org.toop.framework.audio.AudioEventListener;
import org.toop.framework.audio.AudioVolumeManager;
import org.toop.framework.audio.MusicManager;
import org.toop.framework.audio.SoundEffectManager;
import org.toop.framework.audio.interfaces.AudioManager;
import org.toop.framework.audio.interfaces.VolumeManager;
import org.toop.framework.networking.NetworkingClientManager;
import org.toop.framework.networking.NetworkingInitializationException;
import org.toop.framework.resource.ResourceLoader;
import org.toop.framework.resource.ResourceManager;
import javax.sound.sampled.Clip;
public final class Main {
static void main(String[] args) {
initSystems();
@@ -16,6 +24,13 @@ public final class Main {
private static void initSystems() throws NetworkingInitializationException {
ResourceManager.loadAssets(new ResourceLoader("app/src/main/resources/assets"));
new Thread(NetworkingClientManager::new).start();
new Thread(SoundManager::new).start();
new Thread(() -> {
AudioEventListener a =
new AudioEventListener(
new MusicManager(),
new SoundEffectManager(),
new AudioVolumeManager()
); a.initListeners();
}).start();
}
}

View File

@@ -6,6 +6,7 @@ import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import jdk.jfr.Event;
import org.toop.app.layer.Layer;
import org.toop.app.layer.layers.MainLayer;
import org.toop.app.layer.layers.QuitPopup;
@@ -65,10 +66,11 @@ public final class App extends Application {
App.isQuitting = false;
new EventFlow().addPostEvent(new AudioEvents.StartBackgroundMusic()).postEvent();
final AppSettings settings = new AppSettings();
settings.applySettings();
new EventFlow().addPostEvent(new AudioEvents.StartBackgroundMusic()).asyncPostEvent();
activate(new MainLayer());
}

View File

@@ -54,9 +54,13 @@ public class AppSettings {
File settingsFile =
new File(basePath + File.separator + "ISY1" + File.separator + "settings.json");
// this.settingsAsset = new SettingsAsset(settingsFile);
ResourceManager.addAsset(new ResourceMeta<>("settings.json", new SettingsAsset(settingsFile)));
return new SettingsAsset(settingsFile);
// this.settingsAsset = new SettingsAsset(settingsFile); // TODO
// ResourceManager.addAsset(new ResourceMeta<>("settings.json", new SettingsAsset(settingsFile))); // TODO
}
return ResourceManager.get("settings.json");
return this.settingsAsset;
// return ResourceManager.get("settings.json"); // TODO
}
}