DEADSOFTWARE

Add desktop debug option
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / CaveGame.java
1 package ru.deadsoftware.cavedroid;
3 import com.badlogic.gdx.Application;
4 import com.badlogic.gdx.Game;
5 import com.badlogic.gdx.Gdx;
6 import ru.deadsoftware.cavedroid.game.GameItems;
7 import ru.deadsoftware.cavedroid.game.GameScreen;
8 import ru.deadsoftware.cavedroid.misc.Assets;
9 import ru.deadsoftware.cavedroid.misc.utils.AssetLoader;
11 import javax.annotation.Nullable;
13 public class CaveGame extends Game {
15 private static final String TAG = "CaveGame";
17 public static final String VERSION = "alpha 0.5.2";
19 private final MainConfig mMainConfig;
20 private final MainComponent mMainComponent;
21 private final AssetLoader mAssetLoader;
23 private final String mGameFolder;
24 private final boolean mTouch;
25 private boolean mDebug;
27 @Nullable
28 private final String mAssetsPackPath;
30 public CaveGame(String gameFolder, boolean touch, @Nullable String assetsPackPath) {
31 mGameFolder = gameFolder;
32 mTouch = touch;
33 mAssetsPackPath = assetsPackPath;
35 mMainComponent = DaggerMainComponent.builder().caveGame(this).build();
37 mMainConfig = mMainComponent.getMainConfig();
38 mAssetLoader = mMainComponent.getAssetLoader();
39 }
41 public void setDebug(boolean debug) {
42 mDebug = debug;
43 }
45 private void initConfig() {
46 int width = mTouch ? 320 : 480;
47 int height = (int) (width * ((float) Gdx.graphics.getHeight() / Gdx.graphics.getWidth()));
49 mMainConfig.setMainComponent(mMainComponent);
50 mMainConfig.setGameFolder(mGameFolder);
51 mMainConfig.setTouch(mTouch);
52 mMainConfig.setWidth(width);
53 mMainConfig.setHeight(height);
54 mMainConfig.setShowInfo(mDebug);
55 mMainConfig.setAssetsPackPath(mAssetsPackPath);
57 if (mDebug) {
58 Gdx.app.setLogLevel(Application.LOG_DEBUG);
59 } else {
60 Gdx.app.setLogLevel(Application.LOG_ERROR);
61 }
62 }
64 public void newGame(int gameMode) {
65 GameScreen gameScreen = mMainComponent.getGameScreen();
66 gameScreen.newGame(gameMode);
67 setScreen(gameScreen);
68 }
70 public void loadGame() {
71 GameScreen gameScreen = mMainComponent.getGameScreen();
72 gameScreen.loadGame();
73 setScreen(gameScreen);
74 }
76 public void quitGame() {
77 if (screen != null) {
78 screen.dispose();
79 }
80 setScreen(mMainComponent.getMenuScreen());
81 }
83 @Override
84 public void create() {
85 Gdx.app.log(TAG, mGameFolder);
86 Gdx.files.absolute(mGameFolder).mkdirs();
88 initConfig();
90 Assets.load(mAssetLoader);
91 GameItems.load(mAssetLoader);
93 setScreen(mMainComponent.getMenuScreen());
94 }
96 @Override
97 public void dispose() {
98 if (screen != null) {
99 screen.dispose();