GameStateManager.java 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package control;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import model.SongHandler;
  5. import model.gameState.GameState;
  6. import model.gameState.MenuState;
  7. import model.gameState.TitleState;
  8. import model.gameState.PickSongState;
  9. import model.gameState.PlayState;
  10. public class GameStateManager {
  11. private List<GameState> gamestates;
  12. public GameState currentState;
  13. private int index = 0;
  14. public enum State {
  15. TITLE_STATE,
  16. MENU_STATE,
  17. PLAY_STATE,
  18. PICKSONG_STATE
  19. }
  20. public GameStateManager(SongHandler sh){
  21. gamestates = new ArrayList<GameState>();
  22. gamestates.add(new TitleState(this, sh));
  23. gamestates.add(new MenuState(this, sh));
  24. gamestates.add(new PlayState(this, sh));
  25. gamestates.add(new PickSongState(this, sh));
  26. currentState = gamestates.get(0);
  27. }
  28. public void setState(State st)
  29. {
  30. currentState = gamestates.get(st.ordinal());
  31. currentState.init();
  32. }
  33. public void next() {
  34. index++;
  35. index %= gamestates.size();
  36. currentState = gamestates.get(index);
  37. currentState.init();
  38. }
  39. public void update(){
  40. currentState.update();
  41. }
  42. }