DEADSOFTWARE

Some refactor and javadocs
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / menu / MenuRenderer.java
index 28da58e783551f08a5f9d00461685252b01a4fa2..ee626202a851f48839c3e7250883a9b1e17f9716 100644 (file)
@@ -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;
-        }
-
     }
 }