diff --git a/frontend/core/src/com/gameware/game/GameWare.java b/frontend/core/src/com/gameware/game/GameWare.java index d4cd323e79f3e35d013b36eb4f7922f84be4ce42..9664fc96e9681e52885623169d44a22e115ace3a 100644 --- a/frontend/core/src/com/gameware/game/GameWare.java +++ b/frontend/core/src/com/gameware/game/GameWare.java @@ -32,7 +32,7 @@ public class GameWare extends ApplicationAdapter { @Override public void create () { - gsm = new GameStateManager(); + gsm = GameStateManager.getInstance(); batch = new SpriteBatch(); //music = Gdx.audio.newMusic(Gdx.files.internal(("music.mp3"))); //music.setLooping(true); diff --git a/frontend/core/src/com/gameware/game/states/GameStateManager.java b/frontend/core/src/com/gameware/game/states/GameStateManager.java index e74b0aef2b0f35037530838d30d430021076bec0..b919a24b8dd64160e667717e1bcdbb3585a69d6b 100644 --- a/frontend/core/src/com/gameware/game/states/GameStateManager.java +++ b/frontend/core/src/com/gameware/game/states/GameStateManager.java @@ -7,7 +7,17 @@ import java.util.Stack; public class GameStateManager { private Stack<State> states; - public GameStateManager(){ + private static GameStateManager instance = null; + + //Singleton (lazy initialization) + public static GameStateManager getInstance(){ + if( instance == null){ + instance = new GameStateManager(); + } + return instance; + } + + private GameStateManager(){ states = new Stack<State>(); } diff --git a/frontend/core/src/com/gameware/game/states/MenuState.java b/frontend/core/src/com/gameware/game/states/MenuState.java index 75dc4d73ff7d91637cf157dd54fba6fb60bd531a..b3d1ebe2016c7a764c392ce5ce0554077b2af7c9 100644 --- a/frontend/core/src/com/gameware/game/states/MenuState.java +++ b/frontend/core/src/com/gameware/game/states/MenuState.java @@ -11,6 +11,8 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.gameware.game.GameWare; public class MenuState extends State{ + + //TODO: Burde kanskje dispose en state når bytter state? private Stage stage; private Table table; @@ -26,7 +28,6 @@ public class MenuState extends State{ public MenuState(GameStateManager gsm) { super(gsm); - System.out.println("Du er i menu state :0"); stage = new Stage(); Gdx.input.setInputProcessor(stage); @@ -69,6 +70,14 @@ public class MenuState extends State{ }); table.add(highScoreBtn); + table.row(); + TextButton logOutBtn = new TextButton(logOutBtnText, skin); + logOutBtn.addListener(new ClickListener() { + @Override + public void clicked(InputEvent e, float x, float y){ handleLogOutBtnClick(); } + }); + table.add(logOutBtn); + stage.addActor(table); } @@ -120,7 +129,8 @@ public class MenuState extends State{ } private void handleLogOutBtnClick(){ - + gsm.set(new LoginState(gsm)); + //TODO: antar at når ikke logget inn at user i GameWare skal bli satt til null + //Gameware.setUser(null); } - }