DEADSOFTWARE

Rewrite menu
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / GameScreen.java
index 4717818a46d3f008f2c8383f20350bcce9ac34b4..286ba49ed846779c741b282246d9f3bbb9e0e6ef 100644 (file)
@@ -5,27 +5,33 @@ import com.badlogic.gdx.Screen;
 import ru.deadsoftware.cavedroid.game.GameItems;
 import ru.deadsoftware.cavedroid.game.GameProc;
 import ru.deadsoftware.cavedroid.game.GameSaver;
-import ru.deadsoftware.cavedroid.menu.MenuRenderer;
-import ru.deadsoftware.cavedroid.misc.*;
+import ru.deadsoftware.cavedroid.menu.MenuProc;
+import ru.deadsoftware.cavedroid.misc.Assets;
+import ru.deadsoftware.cavedroid.misc.InputHandlerGame;
+import ru.deadsoftware.cavedroid.misc.Renderer;
+import ru.deadsoftware.cavedroid.misc.states.AppState;
+import ru.deadsoftware.cavedroid.misc.states.GameState;
+import ru.deadsoftware.cavedroid.misc.states.MenuState;
 
 public class GameScreen implements Screen {
 
+    public static GameProc GP;
+
     public static int FPS;
-    public static boolean SHOW_DEBUG = true;
+    public static boolean SHOW_DEBUG = false;
     public static boolean SHOW_MAP = false;
-    public static int NEW_GAME_MODE = 0;
-
-    public static GameProc GP;
 
     private Renderer renderer;
-    private MenuRenderer menuRenderer;
+    private MenuProc menuProc;
+
+    private InputHandlerGame inputHandlerGame;
 
     public GameScreen() {
         Assets.load();
         GameItems.load();
-        menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480);
-        renderer = menuRenderer;
-        Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer));
+        menuProc = new MenuProc(CaveGame.TOUCH ? 320 : 480);
+        renderer = menuProc;
+        Gdx.input.setInputProcessor(menuProc);
     }
 
     public static float getWidth() {
@@ -36,8 +42,8 @@ public class GameScreen implements Screen {
         return Gdx.graphics.getHeight();
     }
 
-    private void game(float delta) {
-        GP.update(delta);
+    private void game() {
+        GP.update();
     }
 
     private void menu() {
@@ -50,41 +56,33 @@ public class GameScreen implements Screen {
     @Override
     public void render(float delta) {
         FPS = (int) (1 / delta);
-        switch (CaveGame.STATE) {
-            case GAME_PLAY:
-            case GAME_CREATIVE_INV:
-                game(delta);
+        switch (CaveGame.APP_STATE) {
+            case GAME:
+                game();
                 break;
 
-            case MENU_MAIN:
+            case MENU:
                 menu();
                 break;
 
-            case NEW_GAME:
-                GP = new GameProc();
-                GP.initGame(NEW_GAME_MODE);
-                renderer = GP.renderer;
-                Gdx.input.setInputProcessor(new InputHandlerGame());
-                CaveGame.STATE = AppState.GAME_PLAY;
-                break;
-
-            case LOAD_GAME:
-                GP = GameSaver.load();
+            case LOAD:
+                GP.resetRenderer();
                 renderer = GP.renderer;
-                Gdx.input.setInputProcessor(new InputHandlerGame());
-                CaveGame.STATE = AppState.GAME_PLAY;
+                if (inputHandlerGame == null) {
+                    inputHandlerGame = new InputHandlerGame();
+                }
+                Gdx.input.setInputProcessor(inputHandlerGame);
+                CaveGame.APP_STATE = AppState.GAME;
+                CaveGame.GAME_STATE = GameState.PLAY;
                 break;
 
-            case SAVE_GAME:
+            case SAVE:
                 GameSaver.save(GP);
-                CaveGame.STATE = AppState.MENU_MAIN;
-                break;
-
-            case GOTO_MENU:
+                CaveGame.APP_STATE = AppState.MENU;
+                CaveGame.MENU_STATE = MenuState.MAIN;
                 GP.dispose();
-                menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480);
-                renderer = menuRenderer;
-                Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer));
+                renderer = menuProc;
+                Gdx.input.setInputProcessor(menuProc);
                 break;
         }
         renderer.render();
@@ -92,14 +90,13 @@ public class GameScreen implements Screen {
 
     @Override
     public void resize(int width, int height) {
-        switch (CaveGame.STATE) {
-            case MENU_MAIN:
-                menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480);
-                Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer));
-                renderer = menuRenderer;
+        switch (CaveGame.APP_STATE) {
+            case MENU:
+                menuProc = new MenuProc(CaveGame.TOUCH ? 320 : 480);
+                Gdx.input.setInputProcessor(menuProc);
+                renderer = menuProc;
                 break;
-            case GAME_PLAY:
-            case GAME_CREATIVE_INV:
+            case GAME:
                 GP.resetRenderer();
                 renderer = GP.renderer;
                 break;