From 6886c8b223695864a2d3907bbe558766a514642d Mon Sep 17 00:00:00 2001 From: Turid Dahl <turidcd@stud.ntnu.no> Date: Sun, 19 Apr 2020 12:19:04 +0200 Subject: [PATCH] #98 Adds package game_states --- .../core/src/com/gameware/game/GameWare.java | 2 +- .../game/states/CreateNewTournamentState.java | 24 +++++++++---------- .../game/states/MenuStateTemplate.java | 5 ++-- .../gameware/game/states/OptionsState.java | 3 ++- .../com/gameware/game/states/PauseState.java | 2 +- .../states/SinglePlayerSelectGameState.java | 5 ++-- .../src/com/gameware/game/states/State.java | 2 +- .../game/states/TournamentHighScoreState.java | 9 ++++--- .../game/states/ViewHighScoreState.java | 11 ++++----- .../game/states/ViewTournamentState.java | 3 ++- .../{ => game_states}/BubbleWrapState.java | 3 ++- .../{ => game_states}/ColorRushState.java | 3 ++- .../{ => game_states}/FruitSlicerState.java | 3 ++- .../{ => game_states}/PlayStateTemplate.java | 15 ++++++++++-- 14 files changed, 53 insertions(+), 37 deletions(-) rename frontend/core/src/com/gameware/game/states/{ => game_states}/BubbleWrapState.java (97%) rename frontend/core/src/com/gameware/game/states/{ => game_states}/ColorRushState.java (99%) rename frontend/core/src/com/gameware/game/states/{ => game_states}/FruitSlicerState.java (98%) rename frontend/core/src/com/gameware/game/states/{ => game_states}/PlayStateTemplate.java (94%) diff --git a/frontend/core/src/com/gameware/game/GameWare.java b/frontend/core/src/com/gameware/game/GameWare.java index 10918e9..a6648d8 100644 --- a/frontend/core/src/com/gameware/game/GameWare.java +++ b/frontend/core/src/com/gameware/game/GameWare.java @@ -16,7 +16,7 @@ import com.gameware.game.models.Player; import com.gameware.game.states.GameStateManager; import com.gameware.game.states.LoginState; import com.gameware.game.states.MenuState; -import com.gameware.game.states.PlayStateTemplate; +import com.gameware.game.states.game_states.PlayStateTemplate; import java.io.IOException; import java.lang.reflect.Constructor; diff --git a/frontend/core/src/com/gameware/game/states/CreateNewTournamentState.java b/frontend/core/src/com/gameware/game/states/CreateNewTournamentState.java index e470f42..0d347a7 100644 --- a/frontend/core/src/com/gameware/game/states/CreateNewTournamentState.java +++ b/frontend/core/src/com/gameware/game/states/CreateNewTournamentState.java @@ -115,11 +115,11 @@ public class CreateNewTournamentState extends MenuStateTemplate { roundsPerGameSelectBox.setItems(1,2,3); startDelaySelectBox.setItems(1,2,3); - nameDialog = makeDialog(nameLabelQuestion); - timePerRoundDialog = makeDialog(timePerRoundLabelQuestion); - maxPlayersDialog = makeDialog(maxPlayersLabelQuestion); - roundsPerGameDialog = makeDialog(roundsPerGameLabelQuestion); - startDelayDialog = makeDialog(startDelayLabelQuestion); + nameDialog = makeQuestionIconDialog(nameLabelQuestion); + timePerRoundDialog = makeQuestionIconDialog(timePerRoundLabelQuestion); + maxPlayersDialog = makeQuestionIconDialog(maxPlayersLabelQuestion); + roundsPerGameDialog = makeQuestionIconDialog(roundsPerGameLabelQuestion); + startDelayDialog = makeQuestionIconDialog(startDelayLabelQuestion); makeStage(); } @@ -146,21 +146,21 @@ public class CreateNewTournamentState extends MenuStateTemplate { innerTable.pad(spacingLittle); innerTable.setBackground(backgroundTableBlueRounded); - innerTable.add(makeRow(nameLabel, nameDialog)); + innerTable.add(makeTableWithLabelAndQuestionIcon(nameLabel, nameDialog)); nameInputField.setMaxLength(9); innerTable.add(nameInputField).size(nameFieldWidth, inputFieldHeight); innerTable.row(); removeKeyPadAtTouch(); - innerTable.add(makeRow(timePerRoundLabel, timePerRoundDialog)); + innerTable.add(makeTableWithLabelAndQuestionIcon(timePerRoundLabel, timePerRoundDialog)); innerTable.add(timePerRoundSelectBox); innerTable.row(); - innerTable.add(makeRow(maxPlayersLabel, maxPlayersDialog)); + innerTable.add(makeTableWithLabelAndQuestionIcon(maxPlayersLabel, maxPlayersDialog)); innerTable.add(maxPlayersSelectBox); innerTable.row(); - innerTable.add(makeRow(roundsPerGameLabel, roundsPerGameDialog)); + innerTable.add(makeTableWithLabelAndQuestionIcon(roundsPerGameLabel, roundsPerGameDialog)); innerTable.add(roundsPerGameSelectBox); innerTable.row(); - innerTable.add(makeRow(startDelayLabel, startDelayDialog)); + innerTable.add(makeTableWithLabelAndQuestionIcon(startDelayLabel, startDelayDialog)); innerTable.add(startDelaySelectBox); rootTable.add(innerTable).colspan(2); rootTable.row(); @@ -186,11 +186,11 @@ public class CreateNewTournamentState extends MenuStateTemplate { continue; } - innerTable.add(new Image(GameWare.getInstance().getGameIdToPlayState().get(g.getId()).screenshot)).width(imageWidthAndHeigh).height(imageWidthAndHeigh); + innerTable.add(new Image(GameWare.getInstance().getGameIdToPlayState().get(g.getId()).getScreenshot())).width(imageWidthAndHeigh).height(imageWidthAndHeigh); Table innerInnerTable = new Table(); innerInnerTable.defaults().space(spacingLittle); - innerInnerTable.add(makeRow(new Label(g.getName(), skin), makeDialog(new Label(g.getExplanation().replaceAll("\\\\n", "\n"), skin)))).spaceBottom(spacingLittle); + innerInnerTable.add(makeTableWithLabelAndQuestionIcon(new Label(g.getName(), skin), makeQuestionIconDialog(new Label(g.getExplanation().replaceAll("\\\\n", "\n"), skin)))).spaceBottom(spacingLittle); innerInnerTable.row(); CheckBox gameCB = new CheckBox("",skin); diff --git a/frontend/core/src/com/gameware/game/states/MenuStateTemplate.java b/frontend/core/src/com/gameware/game/states/MenuStateTemplate.java index ec31c9f..80700b7 100644 --- a/frontend/core/src/com/gameware/game/states/MenuStateTemplate.java +++ b/frontend/core/src/com/gameware/game/states/MenuStateTemplate.java @@ -70,6 +70,7 @@ public abstract class MenuStateTemplate extends State{ @Override public void update(float dt){ if(firstTimeRunningUpdate) { +// First time running update change input processor. Or else it won't work when states are stacked in the gsm Gdx.input.setInputProcessor(stage); Gdx.input.setCatchBackKey(true); firstTimeRunningUpdate = false; @@ -121,7 +122,7 @@ public abstract class MenuStateTemplate extends State{ // Dialog methods - protected Table makeRow(Label label, final Dialog dialog){ + protected Table makeTableWithLabelAndQuestionIcon(Label label, final Dialog dialog){ Table table = new Table(); table.add(label).spaceRight(spacingLittle/2); Image questionMarkImage = new Image(questionMark); @@ -136,7 +137,7 @@ public abstract class MenuStateTemplate extends State{ return table; } - protected Dialog makeDialog(Label label){ + protected Dialog makeQuestionIconDialog(Label label){ Dialog dialog = new Dialog("", skin, "dialog") { public void result(Object obj) { } }; diff --git a/frontend/core/src/com/gameware/game/states/OptionsState.java b/frontend/core/src/com/gameware/game/states/OptionsState.java index eb67417..eb13b34 100644 --- a/frontend/core/src/com/gameware/game/states/OptionsState.java +++ b/frontend/core/src/com/gameware/game/states/OptionsState.java @@ -11,6 +11,7 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Scaling; import com.gameware.game.GameWare; + public class OptionsState extends MenuStateTemplate { // Labels @@ -27,7 +28,7 @@ public class OptionsState extends MenuStateTemplate { public OptionsState(GameStateManager gsm) { super(gsm); - stage.clear(); + makeStage(); } diff --git a/frontend/core/src/com/gameware/game/states/PauseState.java b/frontend/core/src/com/gameware/game/states/PauseState.java index e178a21..767d260 100644 --- a/frontend/core/src/com/gameware/game/states/PauseState.java +++ b/frontend/core/src/com/gameware/game/states/PauseState.java @@ -4,12 +4,12 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.gameware.game.GameWare; import com.gameware.game.sprites.ConfirmationBox; import com.gameware.game.sprites.LoadingText; import com.gameware.game.sprites.PauseCircle; import com.gameware.game.sprites.PauseMenuButton; +import com.gameware.game.states.game_states.PlayStateTemplate; import java.util.ArrayList; import java.util.List; diff --git a/frontend/core/src/com/gameware/game/states/SinglePlayerSelectGameState.java b/frontend/core/src/com/gameware/game/states/SinglePlayerSelectGameState.java index ecc2f9a..cddb5af 100644 --- a/frontend/core/src/com/gameware/game/states/SinglePlayerSelectGameState.java +++ b/frontend/core/src/com/gameware/game/states/SinglePlayerSelectGameState.java @@ -11,6 +11,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.gameware.game.GameWare; import com.gameware.game.models.Game; +import com.gameware.game.states.game_states.PlayStateTemplate; import java.io.IOException; import java.util.ArrayList; @@ -79,10 +80,10 @@ public class SinglePlayerSelectGameState extends MenuStateTemplate { if(GameWare.getInstance().getGameIdToPlayState().get(g.getId()) == null){ continue; } - innerTable.add(new Image(GameWare.getInstance().getGameIdToPlayState().get(g.getId()).screenshot)).width(imageWidthAndHeigh).height(imageWidthAndHeigh).pad(spacingLittle); + innerTable.add(new Image(GameWare.getInstance().getGameIdToPlayState().get(g.getId()).getScreenshot())).width(imageWidthAndHeigh).height(imageWidthAndHeigh).pad(spacingLittle); Table innerInnerTable = new Table(); - innerInnerTable.add(makeRow(new Label(g.getName(), skin), makeDialog(new Label(g.getExplanation().replaceAll("\\\\n", "\n"), skin)))).spaceBottom(spacingLittle); + innerInnerTable.add(makeTableWithLabelAndQuestionIcon(new Label(g.getName(), skin), makeQuestionIconDialog(new Label(g.getExplanation().replaceAll("\\\\n", "\n"), skin)))).spaceBottom(spacingLittle); innerInnerTable.row(); TextButton gameBtn = new TextButton(playBtnText, makeTextButtonStyle(greenColor)); diff --git a/frontend/core/src/com/gameware/game/states/State.java b/frontend/core/src/com/gameware/game/states/State.java index 3839631..8a7a363 100644 --- a/frontend/core/src/com/gameware/game/states/State.java +++ b/frontend/core/src/com/gameware/game/states/State.java @@ -40,7 +40,7 @@ public abstract class State{ } -// State methods +// Abstract state methods protected abstract void handleInput(); public abstract void update(float dt); diff --git a/frontend/core/src/com/gameware/game/states/TournamentHighScoreState.java b/frontend/core/src/com/gameware/game/states/TournamentHighScoreState.java index 3f70f87..2ff5fc0 100644 --- a/frontend/core/src/com/gameware/game/states/TournamentHighScoreState.java +++ b/frontend/core/src/com/gameware/game/states/TournamentHighScoreState.java @@ -2,7 +2,6 @@ package com.gameware.game.states; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; -import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.Dialog; import com.badlogic.gdx.scenes.scene2d.ui.Label; @@ -55,8 +54,8 @@ public class TournamentHighScoreState extends MenuStateTemplate{ e.printStackTrace(); } - totalDialog = makeDialog(totalDialogLabel); - lastRoundDialog = makeDialog(lastRoundLabel); + totalDialog = makeQuestionIconDialog(totalDialogLabel); + lastRoundDialog = makeQuestionIconDialog(lastRoundLabel); makeStage(); } @@ -95,8 +94,8 @@ public class TournamentHighScoreState extends MenuStateTemplate{ innerTable.setBackground(backgroundTableBlueRounded); innerTable.add(colOneLabel).top(); - innerTable.add(makeRow(colTwoLabel,totalDialog)).top(); - innerTable.add(makeRow(colThreeLabel,lastRoundDialog)).top(); + innerTable.add(makeTableWithLabelAndQuestionIcon(colTwoLabel,totalDialog)).top(); + innerTable.add(makeTableWithLabelAndQuestionIcon(colThreeLabel,lastRoundDialog)).top(); innerTable.row(); for(Point point : points){ diff --git a/frontend/core/src/com/gameware/game/states/ViewHighScoreState.java b/frontend/core/src/com/gameware/game/states/ViewHighScoreState.java index e4bbbea..0439b88 100644 --- a/frontend/core/src/com/gameware/game/states/ViewHighScoreState.java +++ b/frontend/core/src/com/gameware/game/states/ViewHighScoreState.java @@ -2,7 +2,6 @@ package com.gameware.game.states; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; -import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.InputEvent; @@ -21,7 +20,7 @@ import com.gameware.game.sprites.LoadingText; import java.io.IOException; -public class ViewHighScoreState extends State { +public class ViewHighScoreState extends MenuStateTemplate { // Data private List<Game> games = new ArrayList<>(); @@ -33,7 +32,7 @@ public class ViewHighScoreState extends State { // Texts private final String backBtnText = "Back"; - private final String BtnText = "View High Score!"; + private final String BtnText = "View High Score"; // Values private final float scrollPaneWidth = Gdx.graphics.getWidth()/1.15f; @@ -58,7 +57,7 @@ public class ViewHighScoreState extends State { makeStage(); } - private void makeStage(){ + protected void makeStage(){ Table rootTable = super.makeRootTable(); titleLabel.setFontScale(titleFontBigScale); @@ -88,10 +87,10 @@ public class ViewHighScoreState extends State { if(GameWare.getInstance().getGameIdToPlayState().get(g.getId()) == null){ continue; } - innerTable.add(new Image(GameWare.getInstance().getGameIdToPlayState().get(g.getId()).screenshot)).width(imageWidthAndHeigh).height(imageWidthAndHeigh).pad(spacingLittle); + innerTable.add(new Image(GameWare.getInstance().getGameIdToPlayState().get(g.getId()).getScreenshot())).width(imageWidthAndHeigh).height(imageWidthAndHeigh).pad(spacingLittle); Table innerInnerTable = new Table(); - innerInnerTable.add(makeRow(new Label(g.getName(), skin), makeDialog(new Label(g.getExplanation().replaceAll("\\\\n", "\n"), skin)))).spaceBottom(spacingLittle); + innerInnerTable.add(makeTableWithLabelAndQuestionIcon(new Label(g.getName(), skin), makeQuestionIconDialog(new Label(g.getExplanation().replaceAll("\\\\n", "\n"), skin)))).spaceBottom(spacingLittle); innerInnerTable.row(); TextButton gameBtn = new TextButton(BtnText, skin); diff --git a/frontend/core/src/com/gameware/game/states/ViewTournamentState.java b/frontend/core/src/com/gameware/game/states/ViewTournamentState.java index be43310..e77a8f2 100644 --- a/frontend/core/src/com/gameware/game/states/ViewTournamentState.java +++ b/frontend/core/src/com/gameware/game/states/ViewTournamentState.java @@ -20,6 +20,7 @@ import com.gameware.game.models.Game; import com.gameware.game.models.Round; import com.gameware.game.models.Tournament; import com.gameware.game.sprites.LoadingText; +import com.gameware.game.states.game_states.PlayStateTemplate; import java.io.IOException; import java.util.List; @@ -109,7 +110,7 @@ public class ViewTournamentState extends MenuStateTemplate { currentRoundTable.setBackground(backgroundTableBlueRounded); currentRoundTable.add(new Label("This round:\n\n"+gameName,skin)).space(spacingLittle); PlayStateTemplate state = GameWare.getInstance().getGameIdToPlayState().get(round.getGameId()); - currentRoundTable.add(new Image(state.screenshot)).width(imageWidthAndHeigh).height(imageWidthAndHeigh).spaceBottom(spacingMedium).colspan(2); + currentRoundTable.add(new Image(state.getScreenshot())).width(imageWidthAndHeigh).height(imageWidthAndHeigh).spaceBottom(spacingMedium).colspan(2); rootTable.add(currentRoundTable).maxHeight(Gdx.graphics.getHeight()/5).colspan(2); rootTable.row(); diff --git a/frontend/core/src/com/gameware/game/states/BubbleWrapState.java b/frontend/core/src/com/gameware/game/states/game_states/BubbleWrapState.java similarity index 97% rename from frontend/core/src/com/gameware/game/states/BubbleWrapState.java rename to frontend/core/src/com/gameware/game/states/game_states/BubbleWrapState.java index 5d449bf..0a1fffa 100644 --- a/frontend/core/src/com/gameware/game/states/BubbleWrapState.java +++ b/frontend/core/src/com/gameware/game/states/game_states/BubbleWrapState.java @@ -1,9 +1,10 @@ -package com.gameware.game.states; +package com.gameware.game.states.game_states; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.gameware.game.sprites.Bubble; +import com.gameware.game.states.GameStateManager; import java.util.ArrayList; diff --git a/frontend/core/src/com/gameware/game/states/ColorRushState.java b/frontend/core/src/com/gameware/game/states/game_states/ColorRushState.java similarity index 99% rename from frontend/core/src/com/gameware/game/states/ColorRushState.java rename to frontend/core/src/com/gameware/game/states/game_states/ColorRushState.java index ee8adc4..12d8bfe 100644 --- a/frontend/core/src/com/gameware/game/states/ColorRushState.java +++ b/frontend/core/src/com/gameware/game/states/game_states/ColorRushState.java @@ -1,9 +1,10 @@ -package com.gameware.game.states; +package com.gameware.game.states.game_states; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.gameware.game.sprites.ColorRushButton; import com.gameware.game.sprites.ColorRushTarget; +import com.gameware.game.states.GameStateManager; import java.util.ArrayList; import java.util.Collections; diff --git a/frontend/core/src/com/gameware/game/states/FruitSlicerState.java b/frontend/core/src/com/gameware/game/states/game_states/FruitSlicerState.java similarity index 98% rename from frontend/core/src/com/gameware/game/states/FruitSlicerState.java rename to frontend/core/src/com/gameware/game/states/game_states/FruitSlicerState.java index 25e3e86..6c805a9 100644 --- a/frontend/core/src/com/gameware/game/states/FruitSlicerState.java +++ b/frontend/core/src/com/gameware/game/states/game_states/FruitSlicerState.java @@ -1,4 +1,4 @@ -package com.gameware.game.states; +package com.gameware.game.states.game_states; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.audio.Sound; @@ -8,6 +8,7 @@ import com.badlogic.gdx.math.Vector3; import com.gameware.game.GameWare; import com.gameware.game.sprites.Fruit; import com.gameware.game.sprites.SlicingCircle; +import com.gameware.game.states.GameStateManager; import java.util.ArrayList; import java.util.List; diff --git a/frontend/core/src/com/gameware/game/states/PlayStateTemplate.java b/frontend/core/src/com/gameware/game/states/game_states/PlayStateTemplate.java similarity index 94% rename from frontend/core/src/com/gameware/game/states/PlayStateTemplate.java rename to frontend/core/src/com/gameware/game/states/game_states/PlayStateTemplate.java index f616042..6408670 100644 --- a/frontend/core/src/com/gameware/game/states/PlayStateTemplate.java +++ b/frontend/core/src/com/gameware/game/states/game_states/PlayStateTemplate.java @@ -1,4 +1,4 @@ -package com.gameware.game.states; +package com.gameware.game.states.game_states; import com.badlogic.gdx.Gdx; @@ -14,6 +14,13 @@ import com.gameware.game.models.RoundCheck; import com.gameware.game.models.Tournament; import com.gameware.game.sprites.LoadingText; import com.gameware.game.sprites.PauseButton; +import com.gameware.game.states.FinishedTournamentState; +import com.gameware.game.states.GameStateManager; +import com.gameware.game.states.PauseState; +import com.gameware.game.states.ScoreState; +import com.gameware.game.states.SinglePlayerSelectGameState; +import com.gameware.game.states.State; +import com.gameware.game.states.ViewTournamentState; import java.io.IOException; import java.util.List; @@ -139,7 +146,7 @@ public abstract class PlayStateTemplate extends State { // When game is done, this method is called and posts the score, ands new instance of the game, // uptades rounds and tournaments if in a tournament and sends back to the correct state. // Remember to use setScore before using this method. - protected void gameDone(){ + public void gameDone(){ String id = ""; //Find the id to the game just played for (String key : GameWare.getInstance().getGameIdToPlayState().keySet()){ @@ -255,6 +262,10 @@ public abstract class PlayStateTemplate extends State { return this.totalGameTime; } + public Texture getScreenshot(){ + return screenshot; + } + // Hide and show methods: public void hidePauseButton(){ this.pauseButtonVisible = false; -- GitLab