X-Git-Url: https://deadsoftware.ru/gitweb?p=cavedroid.git;a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fmenu%2FMenuRenderer.java;h=ee626202a851f48839c3e7250883a9b1e17f9716;hp=28da58e783551f08a5f9d00461685252b01a4fa2;hb=2948fcd9c40ebf588ef7d0e7cd8dd34ecaa1f9b2;hpb=d58d40ec24363550fad10bd6047cee2618912186 diff --git a/core/src/ru/deadsoftware/cavedroid/menu/MenuRenderer.java b/core/src/ru/deadsoftware/cavedroid/menu/MenuRenderer.java index 28da58e..ee62620 100644 --- a/core/src/ru/deadsoftware/cavedroid/menu/MenuRenderer.java +++ b/core/src/ru/deadsoftware/cavedroid/menu/MenuRenderer.java @@ -2,14 +2,22 @@ package ru.deadsoftware.cavedroid.menu; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.Array; +import org.jetbrains.annotations.NotNull; import ru.deadsoftware.cavedroid.CaveGame; import ru.deadsoftware.cavedroid.GameScreen; import ru.deadsoftware.cavedroid.game.GameItems; +import ru.deadsoftware.cavedroid.game.GameProc; import ru.deadsoftware.cavedroid.game.GameSaver; import ru.deadsoftware.cavedroid.menu.objects.Button; -import ru.deadsoftware.cavedroid.misc.AppState; +import ru.deadsoftware.cavedroid.misc.InputHandlerGame; +import ru.deadsoftware.cavedroid.misc.states.AppState; import ru.deadsoftware.cavedroid.misc.Assets; import ru.deadsoftware.cavedroid.misc.Renderer; +import ru.deadsoftware.cavedroid.misc.states.GameState; +import ru.deadsoftware.cavedroid.misc.states.MenuState; + +import static ru.deadsoftware.cavedroid.GameScreen.GP; +import static ru.deadsoftware.cavedroid.GameScreen.RENDERER; public class MenuRenderer extends Renderer { @@ -31,21 +39,36 @@ public class MenuRenderer extends Renderer { } - public void buttonClicked(Button button) { - if (button.getLabel().toLowerCase().equals("new game")) { - CaveGame.STATE = AppState.MENU_NEW_GAME; - } else if (button.getLabel().toLowerCase().equals("load game")) { - CaveGame.STATE = AppState.GOTO_LOAD_GAME; - } else if (button.getLabel().toLowerCase().equals("quit")) { - Gdx.app.exit(); - } else if (button.getLabel().toLowerCase().equals("survival")) { - GameScreen.NEW_GAME_MODE = 0; - CaveGame.STATE = AppState.GOTO_NEW_GAME; - } else if (button.getLabel().toLowerCase().equals("creative")) { - GameScreen.NEW_GAME_MODE = 1; - CaveGame.STATE = AppState.GOTO_NEW_GAME; - } else if (button.getLabel().toLowerCase().equals("back")) { - CaveGame.STATE = AppState.MENU_MAIN; + private void newGame(int gameMode) { + GP = new GameProc(gameMode); + GP.player.respawn(); + GameSaver.save(GP); + RENDERER = GP.renderer; + Gdx.input.setInputProcessor(new InputHandlerGame()); + CaveGame.APP_STATE = AppState.GAME; + CaveGame.GAME_STATE = GameState.PLAY; + } + + public void buttonClicked(@NotNull Button button) { + switch (button.getLabel().toLowerCase()) { + case "new game": + CaveGame.MENU_STATE = MenuState.NEW_GAME; + break; + case "load game": + CaveGame.APP_STATE = AppState.LOAD; + break; + case "quit": + Gdx.app.exit(); + break; + case "survival": + newGame(0); + break; + case "creative": + newGame(1); + break; + case "back": + CaveGame.MENU_STATE = MenuState.MAIN; + break; } } @@ -85,37 +108,27 @@ public class MenuRenderer extends Renderer { } spriter.draw(Assets.gameLogo, getWidth() / 2 - (float) Assets.gameLogo.getWidth() / 2, 8); - switch (CaveGame.STATE) { - case MENU_MAIN: + switch (CaveGame.MENU_STATE) { + case MAIN: drawButtons(menuMainBtns); break; - case MENU_NEW_GAME: + case NEW_GAME: drawButtons(menuNGBtns); break; - case GOTO_NEW_GAME: - case GOTO_LOAD_GAME: + case LOADING: drawLabel("Generating World..."); + CaveGame.APP_STATE = AppState.GAME; + CaveGame.GAME_STATE = GameState.PLAY; break; - case GOTO_MENU: + case SAVING: drawLabel("Saving Game..."); + CaveGame.APP_STATE = AppState.MENU; + CaveGame.MENU_STATE = MenuState.MAIN; break; } drawString("CaveDroid " + CaveGame.VERSION, 0, getHeight() - Assets.getStringHeight("CaveDroid " + CaveGame.VERSION) * 1.5f); spriter.end(); - - switch (CaveGame.STATE) { - case GOTO_NEW_GAME: - CaveGame.STATE = AppState.NEW_GAME; - break; - case GOTO_LOAD_GAME: - CaveGame.STATE = AppState.LOAD_GAME; - break; - case GOTO_MENU: - CaveGame.STATE = AppState.SAVE_GAME; - break; - } - } }