DEADSOFTWARE

Add menu screen and game logo
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / GameScreen.java
index 2a2c262a6f4fe3cb0a36feb45f33f996080cc091..6daa039bdb5043143300029941094c1b18a10ff5 100644 (file)
@@ -1,23 +1,23 @@
 package ru.deadsoftware.cavecraft;
 
 import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.Input;
-import com.badlogic.gdx.InputProcessor;
 import com.badlogic.gdx.Screen;
-import ru.deadsoftware.cavecraft.game.GameInputHandler;
 import ru.deadsoftware.cavecraft.game.GameProc;
+import ru.deadsoftware.cavecraft.menu.MenuRenderer;
 
 public class GameScreen implements Screen {
 
     public static int FPS;
 
     private GameProc gameProc;
+    private Renderer renderer;
 
     public GameScreen() {
         Assets.load();
         Items.load();
         gameProc = new GameProc();
-        Gdx.input.setInputProcessor(new InputHandler(gameProc));
+        renderer = new MenuRenderer();
+        Gdx.input.setInputProcessor(new InputHandlerMenu());
     }
 
     public static int getWidth() {
@@ -28,6 +28,13 @@ public class GameScreen implements Screen {
         return Gdx.graphics.getHeight();
     }
 
+    private void game(float delta) {
+        gameProc.update(delta);
+    }
+
+    private void menu() {
+    }
+
     @Override
     public void show() {
 
@@ -35,19 +42,35 @@ public class GameScreen implements Screen {
 
     @Override
     public void render(float delta) {
-        if (CaveGame.STATE == GameState.RESTART) {
-            gameProc = new GameProc();
-            Gdx.input.setInputProcessor(new InputHandler(gameProc));
-            CaveGame.STATE = GameState.GAME_PLAY;
-        }
         FPS = (int)(1/delta);
-        gameProc.update(delta);
-        gameProc.renderer.render();
+        switch (CaveGame.STATE) {
+            case GAME_PLAY: case GAME_CREATIVE_INV:
+                game(delta);
+                break;
+
+            case MENU_MAIN:
+                menu();
+                break;
+
+            case RESTART:
+                gameProc = new GameProc();
+                Gdx.input.setInputProcessor(new InputHandlerGame(gameProc));
+                CaveGame.STATE = GameState.GAME_PLAY;
+                break;
+        }
+        renderer.render();
     }
 
     @Override
     public void resize(int width, int height) {
-        gameProc.resetRenderer();
+        switch (CaveGame.STATE) {
+            case MENU_MAIN:
+                renderer = new MenuRenderer();
+                break;
+            case GAME_PLAY: case GAME_CREATIVE_INV:
+                gameProc.resetRenderer();
+                break;
+        }
     }
 
     @Override