From f4c9203c499618f7ed5aaa43f3ca8d972e95283f Mon Sep 17 00:00:00 2001 From: Turid Dahl <turidcd@stud.ntnu.no> Date: Sun, 15 Mar 2020 09:18:17 +0100 Subject: [PATCH] #40 added logout btn, commented set user to null, made gsm into singleton --- .../core/src/com/gameware/game/GameWare.java | 2 +- .../gameware/game/states/GameStateManager.java | 12 +++++++++++- .../src/com/gameware/game/states/MenuState.java | 16 +++++++++++++--- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/frontend/core/src/com/gameware/game/GameWare.java b/frontend/core/src/com/gameware/game/GameWare.java index d4cd323..9664fc9 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 e74b0ae..b919a24 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 75dc4d7..b3d1ebe 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); } - } -- GitLab