diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java index 0d86f9f932645df2dfb7c1692b319b7ee992a444..42c0d0d4f1baa3aa32b82b9fc7b8e53f0fb344f2 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/PlayerCreateController.java @@ -1,6 +1,7 @@ package de.hdm_stuttgart.battlearena.Controller; import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader; +import de.hdm_stuttgart.battlearena.Model.Sound.MusicPlayer; import javafx.fxml.FXML; import javafx.scene.layout.VBox; import javafx.stage.Stage; @@ -9,6 +10,7 @@ public class PlayerCreateController { @FXML private VBox parent; private final SceneLoader sceneLoader = new SceneLoader(); + private final MusicPlayer player = MusicPlayer.getInstance(); private void switchScene(String name) { parent.getChildren().clear(); @@ -28,6 +30,7 @@ public class PlayerCreateController { @FXML private void exit() { Stage stage = (Stage) parent.getScene().getWindow(); + player.getScheduler().shutdown(); stage.close(); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicPlayer.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicPlayer.java index 5e4fa7cfd6d7c38887d774210d8be8158c49860b..e0bcbd7402ce5a02c58e4f8960ffce80bdae4072 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicPlayer.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicPlayer.java @@ -32,19 +32,23 @@ public class MusicPlayer { } public void startGameStateMonitoring() { + log.info("gamestatemonitoring started"); scheduler = Executors.newSingleThreadScheduledExecutor(); scheduler.scheduleAtFixedRate(() -> { GameState newGameState = RuntimeInfo.getInstance().getGameState(); if (currentGameState != newGameState) { currentGameState = newGameState; updateMusic(); + log.info("gamestate changed"); } }, 0, 1, TimeUnit.MILLISECONDS); } private void updateMusic() { + log.info("updating music..."); stopMusic(); playRandomMusic(); + } private void playRandomMusic() { @@ -83,6 +87,7 @@ public class MusicPlayer { private void stopMusic() { if (mediaPlayer != null) { + log.info("stop music"); mediaPlayer.dispose(); // Dispose of the MediaPlayer instance to ensure stoping } } @@ -92,6 +97,7 @@ public class MusicPlayer { mediaPlayer.setVolume((double) volume / 100); } public ScheduledExecutorService getScheduler() { + log.info("gamestatemonitoring stopped"); return scheduler; } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SfxOnce.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SfxOnce.java index 1a54dde4ef7f1c6349b83ce3ba217ec3556eb609..2094ba422586238e4f28301419cdbd6119d32e97 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SfxOnce.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SfxOnce.java @@ -21,14 +21,13 @@ public class SfxOnce extends Thread { AudioClip audioClip = new AudioClip(Objects.requireNonNull(getClass().getResource(resource)).toExternalForm()); audioClip.setVolume((double) persistence.getSettings().getSfxVolume() / 100); this.isNotPlaying = false; + log.info("played soundeffect once"); audioClip.play(); } public void startSound(SFX sfx) { this.sfx = sfx; - start(); - } public boolean isNotPlaying() { diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SoundFileManager.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SoundFileManager.java index 9beacfbf10b361dbe9229e49dc65ed99c9045c14..19e08738bde67706206b7b1184e2b2f400cdb711 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SoundFileManager.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/SoundFileManager.java @@ -1,5 +1,8 @@ package de.hdm_stuttgart.battlearena.Model.Sound; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -10,12 +13,15 @@ import java.util.stream.Collectors; import java.util.stream.Stream; class SoundFileManager { + + private static final Logger log = LogManager.getLogger(MusicPlayer.class); protected List<Path> getFilePathsFromResources(Path folderPath) throws IOException { List<Path> result; try (Stream<Path> walk = Files.walk(folderPath)) { result = walk.filter(Files::isRegularFile) .collect(Collectors.toList()); } + log.info("retrieved file paths"); return result; } @@ -24,10 +30,12 @@ class SoundFileManager { int min = 0; int max = paths.size() - 1; int randomIndex = random.nextInt(max - min + 1 ) + min; + log.info("choose random file"); return paths.get(randomIndex).toString(); } protected String convertPathToResourcePath(String randomPath){ String normalizedPath = Paths.get(randomPath).toString().replace('\\', '/'); + log.info("converted filepaths"); return normalizedPath.substring(18); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/WalkEffects.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/WalkEffects.java index 4c5cdf1aa290ee25ea53e6296307861ffd4500c8..fc4a6d0b5d3b211a78fbb1144f1c7bb1020e751e 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/WalkEffects.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/WalkEffects.java @@ -45,6 +45,7 @@ public class WalkEffects extends Thread{ AudioClip effect = new AudioClip(Objects.requireNonNull(getClass().getResource(resource)).toString()); effect.setVolume((double) persistence.getSettings().getSfxVolume() /100); effect.play(); + log.info("played walk sound"); sfxPaths.clear(); } diff --git a/src/main/resources/player/playerStatsLocal.json b/src/main/resources/player/playerStatsLocal.json index f12f154bb978463d7d469c835d2f5228a4b5887f..5e8195f763080c5fbd5e6e8fa4b053c9c14edf95 100644 --- a/src/main/resources/player/playerStatsLocal.json +++ b/src/main/resources/player/playerStatsLocal.json @@ -1,8 +1,8 @@ { - "gamesLost": 5000, - "gamesWon": 500, - "kills": 500, - "deaths": 500, - "blocksDestroyed": 5000, - "gameTime": 5000 + "gamesWon": 0, + "gamesLost": 0, + "kills": 0, + "deaths": 0, + "blocksDestroyed": 0, + "gameTime": 0 } \ No newline at end of file