DEADSOFTWARE

Implement DI for menu and refactor #13
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / CaveGame.java
1 package ru.deadsoftware.cavedroid;
2
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;
8
9 public class CaveGame extends Game {
10
11 private static final String TAG = "CaveGame";
12
13 public static final String VERSION = "alpha 0.4";
14
15 private final MainConfig mMainConfig;
16 private final MainComponent mMainComponent;
17
18 private final String mGameFolder;
19 private final boolean mTouch;
20 private boolean mDebug;
21
22 public CaveGame(String gameFolder, boolean touch) {
23 mGameFolder = gameFolder;
24 mTouch = touch;
25
26 mMainComponent = DaggerMainComponent.builder().caveGame(this).build();
27 mMainConfig = mMainComponent.getMainConfig();
28 }
29
30 public void setDebug(boolean debug) {
31 mDebug = debug;
32 }
33
34 private void initConfig() {
35 int width = mTouch ? 320 : 480;
36 int height = (int) (width * ((float) Gdx.graphics.getHeight() / Gdx.graphics.getWidth()));
37
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 }
45
46 public void newGame() {
47 GameScreen gameScreen = mMainComponent.getGameScreen();
48 gameScreen.newGame();
49 setScreen(gameScreen);
50 }
51
52 public void loadGame() {
53 GameScreen gameScreen = mMainComponent.getGameScreen();
54 gameScreen.loadGame();
55 setScreen(gameScreen);
56 }
57
58 public void quitGame() {
59 setScreen(mMainComponent.getMenuScreen());
60 }
61
62 @Override
63 public void create() {
64 Gdx.app.log(TAG, mGameFolder);
65 Gdx.files.absolute(mGameFolder).mkdirs();
66
67 Assets.load();
68 GameItems.load();
69
70 initConfig();
71
72 setScreen(mMainComponent.getMenuScreen());
73 }
74
75 }