package me.hammerle.supersnuvi.util; import java.io.File; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import me.hammerle.supersnuvi.gamelogic.StateRenderer; import me.hammerle.supersnuvi.rendering.GameWindow; public class SoundUtils { public static void loadSounds() { } public final static MediaPlayer COLLECT = getMedia("collect"); public final static MediaPlayer JUMP = getMedia("jump"); public final static MediaPlayer JUMP_ON_BOUNCE_SHROOM = getMedia("jump_on_bounce_shroom"); public final static MediaPlayer STONE_CRUMBLING = getMedia("stone_crumbling"); public final static MediaPlayer WALK = getMedia("walk"); public final static MediaPlayer WALK_WATER = getMedia("walk_water"); public final static MediaPlayer MENU_MUSIC = getMedia("menu_music", true); public final static MediaPlayer SONG_1 = getMedia("song1", true); public static MediaPlayer getMedia(String path, boolean loop) { if(StateRenderer.noSound) { return null; } Media sound = new Media(new File("sounds/" + path + ".wav").toURI().toString()); MediaPlayer mp = new MediaPlayer(sound); if(loop) { mp.setOnEndOfMedia(() -> { mp.seek(mp.getStartTime()); }); } else { mp.setOnEndOfMedia(() -> { mp.seek(mp.getStartTime()); mp.stop(); }); } return mp; } public static MediaPlayer getMedia(String path) { return getMedia(path, false); } public static void playSound(MediaPlayer mp, boolean reset) { if(StateRenderer.noSound) { return; } if(reset) { mp.seek(mp.getStartTime()); } mp.play(); } public static void playSound(MediaPlayer mp) { playSound(mp, true); } public static void stopSound(MediaPlayer mp) { if(StateRenderer.noSound) { return; } mp.stop(); } }