diff --git a/core/src/ru/deadsoftware/cavecraft/GameScreen.java b/core/src/ru/deadsoftware/cavecraft/GameScreen.java
index 9ad88f6eb4517c61f7c437ce202a6e5c49158d9c..c77c9e08032e6efe725cb6be42d07f248873464d 100644 (file)
package ru.deadsoftware.cavecraft;
import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.Screen;
-import ru.deadsoftware.cavecraft.game.GameInputHandler;
+import ru.deadsoftware.cavecraft.game.GameItems;
import ru.deadsoftware.cavecraft.game.GameProc;
-import ru.deadsoftware.cavecraft.game.GameRenderer;
+import ru.deadsoftware.cavecraft.game.GameSaver;
+import ru.deadsoftware.cavecraft.menu.MenuRenderer;
+import ru.deadsoftware.cavecraft.misc.*;
public class GameScreen implements Screen {
- private GameProc gameProc;
- private GameInputHandler gameInput;
+ public static int FPS;
+ public static boolean SHOW_DEBUG = false;
+ public static int NEW_GAME_MODE = 0;
+
+ private GameProc gp;
+ private Renderer renderer;
+ private MenuRenderer menuRenderer;
public GameScreen() {
Assets.load();
- gameProc = new GameProc();
- gameInput = new GameInputHandler(gameProc);
- Gdx.input.setInputProcessor(new InputHandler());
+ GameItems.load();
+ menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480);
+ renderer = menuRenderer;
+ Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer));
}
public static int getWidth() {
return Gdx.graphics.getHeight();
}
+ private void game(float delta) {
+ gp.update(delta);
+ }
+
+ private void menu() {
+ }
+
@Override
public void show() {
-
}
@Override
public void render(float delta) {
- gameProc.update(delta);
- gameProc.renderer.render();
+ FPS = (int) (1 / delta);
+ switch (CaveGame.STATE) {
+ case GAME_PLAY:
+ case GAME_CREATIVE_INV:
+ game(delta);
+ break;
+
+ case MENU_MAIN:
+ menu();
+ break;
+
+ case NEW_GAME:
+ gp = new GameProc(NEW_GAME_MODE);
+ renderer = gp.renderer;
+ Gdx.input.setInputProcessor(new InputHandlerGame(gp));
+ CaveGame.STATE = AppState.GAME_PLAY;
+ break;
+
+ case LOAD_GAME:
+ gp = GameSaver.load();
+ renderer = gp.renderer;
+ Gdx.input.setInputProcessor(new InputHandlerGame(gp));
+ CaveGame.STATE = AppState.GAME_PLAY;
+ break;
+
+ case SAVE_GAME:
+ GameSaver.save(gp);
+ CaveGame.STATE = AppState.MENU_MAIN;
+ break;
+
+ case GOTO_MENU:
+ menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480);
+ renderer = menuRenderer;
+ Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer));
+ break;
+ }
+ renderer.render();
}
@Override
public void resize(int width, int height) {
- gameProc.resetRenderer();
+ switch (CaveGame.STATE) {
+ case MENU_MAIN:
+
+ menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480);
+ renderer = menuRenderer;
+ break;
+ case GAME_PLAY:
+ case GAME_CREATIVE_INV:
+ gp.resetRenderer();
+ renderer = gp.renderer;
+ break;
+ }
}
@Override
}
- private class InputHandler implements InputProcessor {
-
- @Override
- public boolean keyDown(int keycode) {
- gameInput.keyDown(keycode);
- return false;
- }
-
- @Override
- public boolean keyUp(int keycode) {
- gameInput.keyUp(keycode);
- return false;
- }
-
- @Override
- public boolean keyTyped(char character) {
- return false;
- }
-
- @Override
- public boolean touchDown(int screenX, int screenY, int pointer, int button) {
- screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
- screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
- gameInput.touchDown(screenX, screenY, button);
- return false;
- }
-
- @Override
- public boolean touchUp(int screenX, int screenY, int pointer, int button) {
- screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
- screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
- gameInput.touchUp(screenX, screenY, button);
- return false;
- }
-
- @Override
- public boolean touchDragged(int screenX, int screenY, int pointer) {
- screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
- screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
- gameInput.touchDragged(screenX, screenY);
- return false;
- }
-
- @Override
- public boolean mouseMoved(int screenX, int screenY) {
- screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
- screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
- gameInput.mouseMoved(screenX,screenY);
- return false;
- }
-
- @Override
- public boolean scrolled(int amount) {
- return false;
- }
- }
}