80 lines
1.6 KiB
Java
80 lines
1.6 KiB
Java
|
|
package com.saltosion.gladiator.util;
|
|
|
|
import com.badlogic.gdx.audio.Music;
|
|
import com.badlogic.gdx.audio.Sound;
|
|
|
|
public class Jukebox {
|
|
|
|
private Music currentMusic;
|
|
private float volume = 1;
|
|
|
|
/**
|
|
* Plays the musix like a baws.
|
|
* @param music
|
|
* @return boolean if the musix failed to play
|
|
*/
|
|
public boolean playMusic(Music music) {
|
|
if (music == null) {
|
|
currentMusic.stop();
|
|
currentMusic = null;
|
|
}
|
|
if (music.equals(currentMusic)) {
|
|
return false;
|
|
} if (currentMusic != null) { currentMusic.stop(); };
|
|
music.play();
|
|
music.setVolume(volume);
|
|
music.setLooping(true);
|
|
currentMusic = music;
|
|
return true;
|
|
}
|
|
|
|
public Music getCurrentMusic() {
|
|
return this.currentMusic;
|
|
}
|
|
|
|
public void setMusicVolume(float volume) {
|
|
this.volume = volume;
|
|
if (currentMusic == null) {return;}
|
|
this.currentMusic.setVolume(volume);
|
|
}
|
|
|
|
/**
|
|
* Simply plays the sound
|
|
* @param sound
|
|
* @return long returns sound's id
|
|
*/
|
|
public long playSound(Sound sound) {
|
|
return sound.play();
|
|
}
|
|
|
|
/**
|
|
* Play sound and set it's volume
|
|
* @param sound
|
|
* @param volume 0-1f
|
|
* @return long returns sound's id
|
|
*/
|
|
public long playSound(Sound sound, float volume) {
|
|
long id = playSound(sound);
|
|
sound.setVolume(id, volume);
|
|
return id;
|
|
}
|
|
|
|
/**
|
|
* Play sound and set it's volume & pan
|
|
* @param sound
|
|
* @param volume 0-1f
|
|
* @param pan ?
|
|
* @return long returns sound's id
|
|
*/
|
|
public long playSound(Sound sound, float volume, float pan) {
|
|
long id = playSound(sound);
|
|
sound.setPan(id, pan, volume);
|
|
return id;
|
|
}
|
|
|
|
public Sound returnRandomSound(Sound ... args) {
|
|
return args[(int) Math.floor(Math.random()*args.length)];
|
|
}
|
|
}
|