MusicManager.java
package io.github.unisim;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Music;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
public class MusicManager {
private final List<String> availableMusic;
private Music music;
public MusicManager() {
availableMusic = List.of("music/box-jump.ogg", "music/candy.ogg", "music/deep-blue.ogg");
}
private void startNewMusic() {
if (music != null) {
music.dispose();
}
int randomIndex = ThreadLocalRandom.current().nextInt(availableMusic.size());
music = Gdx.audio.newMusic(Gdx.files.internal(availableMusic.get(randomIndex)));
music.play();
}
/**
* Starts a new music track if needed.
*/
public void update() {
if (music == null || !music.isPlaying()) {
startNewMusic();
return;
}
music.setVolume(GlobalState.settings.getVolume());
}
}