DEADSOFTWARE

287b67dbf5eb355a0c81a2048387e3c7ff9d6fef
[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;
8 import ru.deadsoftware.cavedroid.misc.utils.AssetLoader;
10 import javax.annotation.Nullable;
12 public class CaveGame extends Game {
14 private static final String TAG = "CaveGame";
16 public static final String VERSION = "alpha 0.4.1";
18 private final MainConfig mMainConfig;
19 private final MainComponent mMainComponent;
20 private final AssetLoader mAssetLoader;
22 private final String mGameFolder;
23 private final boolean mTouch;
24 private boolean mDebug;
26 @Nullable
27 private final String mAssetsPackPath;
29 public CaveGame(String gameFolder, boolean touch, @Nullable String assetsPackPath) {
30 mGameFolder = gameFolder;
31 mTouch = touch;
32 mAssetsPackPath = assetsPackPath;
34 mMainComponent = DaggerMainComponent.builder().caveGame(this).build();
36 mMainConfig = mMainComponent.getMainConfig();
37 mAssetLoader = mMainComponent.getAssetLoader();
38 }
40 public void setDebug(boolean debug) {
41 mDebug = debug;
42 }
44 private void initConfig() {
45 int width = mTouch ? 320 : 480;
46 int height = (int) (width * ((float) Gdx.graphics.getHeight() / Gdx.graphics.getWidth()));
48 mMainConfig.setMainComponent(mMainComponent);
49 mMainConfig.setGameFolder(mGameFolder);
50 mMainConfig.setTouch(mTouch);
51 mMainConfig.setWidth(width);
52 mMainConfig.setHeight(height);
53 mMainConfig.setShowInfo(mDebug);
54 mMainConfig.setAssetsPackPath(mAssetsPackPath);
55 }
57 public void newGame() {
58 GameScreen gameScreen = mMainComponent.getGameScreen();
59 gameScreen.newGame();
60 setScreen(gameScreen);
61 }
63 public void loadGame() {
64 GameScreen gameScreen = mMainComponent.getGameScreen();
65 gameScreen.loadGame();
66 setScreen(gameScreen);
67 }
69 public void quitGame() {
70 setScreen(mMainComponent.getMenuScreen());
71 }
73 @Override
74 public void create() {
75 Gdx.app.log(TAG, mGameFolder);
76 Gdx.files.absolute(mGameFolder).mkdirs();
78 initConfig();
80 Assets.load(mAssetLoader);
81 GameItems.load(mAssetLoader);
83 setScreen(mMainComponent.getMenuScreen());
84 }
86 }