package rts.core.engine; import org.luawars.Log; import org.newdawn.slick.Music; import org.newdawn.slick.MusicListener; import org.newdawn.slick.SlickException; import rts.utils.ResourceManager; public class GameMusic { private static Music mainTheme; public static boolean ENABLE_MUSIC = false; public static void initMainTheme() { try { //mainTheme = new Music("resources/others/main_theme.ogg", true); if (ENABLE_MUSIC) mainTheme = new Music("resources/others/main_theme.ogg"); } catch (SlickException e) { e.printStackTrace(); } } public static void initMusics() { if (ENABLE_MUSIC) { Log.logEnterMethod(Log.DEBUG); ResourceManager.getMusic("music_1").addListener(new GameMusicListener(2)); ResourceManager.getMusic("music_2").addListener(new GameMusicListener(3)); ResourceManager.getMusic("music_3").addListener(new GameMusicListener(1)); Log.logExitMethod(Log.DEBUG); } } public static void loopMainTheme() { if (ENABLE_MUSIC) mainTheme.loop(); } public static void playMusic() { if (ENABLE_MUSIC) { mainTheme.stop(); ResourceManager.getMusic("music_1").play(); } } public static void stopMusic() { if (ENABLE_MUSIC) { ResourceManager.getMusic("music_1").stop(); ResourceManager.getMusic("music_2").stop(); ResourceManager.getMusic("music_3").stop(); } } private static class GameMusicListener implements MusicListener { private int nextMusic; public GameMusicListener(int nextMusic) { this.nextMusic = nextMusic; } @Override public void musicEnded(Music arg0) { ResourceManager.getMusic("music_" + nextMusic).play(); } @Override public void musicSwapped(Music arg0, Music arg1) { } } }