DEADSOFTWARE

Implement DI for menu and refactor #13
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / CaveGame.java
1 package ru.deadsoftware.cavedroid;
3 import com.badlogic.gdx.Game;
4 import com.badlogic.gdx.Gdx;
5 import ru.deadsoftware.cavedroid.game.GameItems;
6 import ru.deadsoftware.cavedroid.game.GameScreen;
7 import ru.deadsoftware.cavedroid.misc.Assets;
9 public class CaveGame extends Game {
11 private static final String TAG = "CaveGame";
13 public static final String VERSION = "alpha 0.4";
15 private final MainConfig mMainConfig;
16 private final MainComponent mMainComponent;
18 private final String mGameFolder;
19 private final boolean mTouch;
20 private boolean mDebug;
22 public CaveGame(String gameFolder, boolean touch) {
23 mGameFolder = gameFolder;
24 mTouch = touch;
26 mMainComponent = DaggerMainComponent.builder().caveGame(this).build();
27 mMainConfig = mMainComponent.getMainConfig();
28 }
30 public void setDebug(boolean debug) {
31 mDebug = debug;
32 }
34 private void initConfig() {
35 int width = mTouch ? 320 : 480;
36 int height = (int) (width * ((float) Gdx.graphics.getHeight() / Gdx.graphics.getWidth()));
38 mMainConfig.setMainComponent(mMainComponent);
39 mMainConfig.setGameFolder(mGameFolder);
40 mMainConfig.setTouch(mTouch);
41 mMainConfig.setWidth(width);
42 mMainConfig.setHeight(height);
43 mMainConfig.setShowInfo(mDebug);
44 }
46 public void newGame() {
47 GameScreen gameScreen = mMainComponent.getGameScreen();
48 gameScreen.newGame();
49 setScreen(gameScreen);
50 }
52 public void loadGame() {
53 GameScreen gameScreen = mMainComponent.getGameScreen();
54 gameScreen.loadGame();
55 setScreen(gameScreen);
56 }
58 public void quitGame() {
59 setScreen(mMainComponent.getMenuScreen());
60 }
62 @Override
63 public void create() {
64 Gdx.app.log(TAG, mGameFolder);
65 Gdx.files.absolute(mGameFolder).mkdirs();
67 Assets.load();
68 GameItems.load();
70 initConfig();
72 setScreen(mMainComponent.getMenuScreen());
73 }
75 }