DEADSOFTWARE

219f5b4a90f57c5c829e08aa1b893d7d2152a121
[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 org.jetbrains.annotations.Nullable;
7 import ru.deadsoftware.cavedroid.game.GameScreen;
8 import ru.deadsoftware.cavedroid.misc.Assets;
9 import ru.deadsoftware.cavedroid.misc.utils.AssetLoader;
10 import ru.deadsoftware.cavedroid.prefs.PreferencesStore;
12 public class CaveGame extends Game {
14 private static final String TAG = "CaveGame";
16 public static final String VERSION = "alpha 0.9.2";
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,
30 boolean touch,
31 PreferencesStore preferencesStore,
32 @Nullable String assetsPackPath) {
33 mGameFolder = gameFolder;
34 mTouch = touch;
35 mAssetsPackPath = assetsPackPath;
37 mMainComponent = DaggerMainComponent
38 .builder()
39 .caveGame(this)
40 .preferencesStore(preferencesStore)
41 .build();
43 mMainConfig = mMainComponent.getMainConfig();
44 mAssetLoader = mMainComponent.getAssetLoader();
45 }
47 public void setDebug(boolean debug) {
48 mDebug = debug;
49 }
51 private void initConfig() {
52 int width = 480;
53 int height = (int) (width * ((float) Gdx.graphics.getHeight() / Gdx.graphics.getWidth()));
55 mMainConfig.setMainComponent(mMainComponent);
56 mMainConfig.setGameFolder(mGameFolder);
57 mMainConfig.setTouch(mTouch);
58 mMainConfig.setWidth(width);
59 mMainConfig.setHeight(height);
60 mMainConfig.setShowInfo(mDebug);
61 mMainConfig.setAssetsPackPath(mAssetsPackPath);
63 if (mDebug) {
64 Gdx.app.setLogLevel(Application.LOG_DEBUG);
65 } else {
66 Gdx.app.setLogLevel(Application.LOG_ERROR);
67 }
69 mMainConfig.setFullscreenToggleListener((value) -> {
70 if (value) {
71 Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
72 } else {
73 Gdx.graphics.setWindowedMode(width, height);
74 }
75 });
76 }
78 public void newGame(int gameMode) {
79 GameScreen gameScreen = mMainComponent.getGameScreen();
80 gameScreen.newGame(gameMode);
81 setScreen(gameScreen);
82 }
84 public void loadGame() {
85 GameScreen gameScreen = mMainComponent.getGameScreen();
86 gameScreen.loadGame();
87 setScreen(gameScreen);
88 }
90 public void quitGame() {
91 if (screen != null) {
92 screen.dispose();
93 }
94 setScreen(mMainComponent.getMenuScreen());
95 }
97 @Override
98 public void create() {
99 Gdx.files.absolute(mGameFolder).mkdirs();
100 initConfig();
102 Gdx.app.debug(TAG, mGameFolder);
103 Assets.load(mAssetLoader);
104 setScreen(mMainComponent.getMenuScreen());
107 @Override
108 public void dispose() {
109 if (screen != null) {
110 screen.dispose();
112 Assets.dispose();