X-Git-Url: https://deadsoftware.ru/gitweb?p=cavedroid.git;a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2FCaveGame.java;h=8b2d66b4622d80190e4a7f83e5347210e749f6b5;hp=287b67dbf5eb355a0c81a2048387e3c7ff9d6fef;hb=HEAD;hpb=47a220e29bea530ffab9ca8d9efcc13a7e0610f3 diff --git a/core/src/ru/deadsoftware/cavedroid/CaveGame.java b/core/src/ru/deadsoftware/cavedroid/CaveGame.java index 287b67d..9ca34b8 100644 --- a/core/src/ru/deadsoftware/cavedroid/CaveGame.java +++ b/core/src/ru/deadsoftware/cavedroid/CaveGame.java @@ -1,11 +1,13 @@ package ru.deadsoftware.cavedroid; +import com.badlogic.gdx.Application; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; -import ru.deadsoftware.cavedroid.game.GameItems; +import com.badlogic.gdx.Graphics; import ru.deadsoftware.cavedroid.game.GameScreen; import ru.deadsoftware.cavedroid.misc.Assets; import ru.deadsoftware.cavedroid.misc.utils.AssetLoader; +import ru.deadsoftware.cavedroid.prefs.PreferencesStore; import javax.annotation.Nullable; @@ -13,7 +15,7 @@ public class CaveGame extends Game { private static final String TAG = "CaveGame"; - public static final String VERSION = "alpha 0.4.1"; + public static final String VERSION = "alpha 0.9.2"; private final MainConfig mMainConfig; private final MainComponent mMainComponent; @@ -26,12 +28,19 @@ public class CaveGame extends Game { @Nullable private final String mAssetsPackPath; - public CaveGame(String gameFolder, boolean touch, @Nullable String assetsPackPath) { + public CaveGame(String gameFolder, + boolean touch, + PreferencesStore preferencesStore, + @Nullable String assetsPackPath) { mGameFolder = gameFolder; mTouch = touch; mAssetsPackPath = assetsPackPath; - mMainComponent = DaggerMainComponent.builder().caveGame(this).build(); + mMainComponent = DaggerMainComponent + .builder() + .caveGame(this) + .preferencesStore(preferencesStore) + .build(); mMainConfig = mMainComponent.getMainConfig(); mAssetLoader = mMainComponent.getAssetLoader(); @@ -42,7 +51,7 @@ public class CaveGame extends Game { } private void initConfig() { - int width = mTouch ? 320 : 480; + int width = 480; int height = (int) (width * ((float) Gdx.graphics.getHeight() / Gdx.graphics.getWidth())); mMainConfig.setMainComponent(mMainComponent); @@ -52,11 +61,25 @@ public class CaveGame extends Game { mMainConfig.setHeight(height); mMainConfig.setShowInfo(mDebug); mMainConfig.setAssetsPackPath(mAssetsPackPath); + + if (mDebug) { + Gdx.app.setLogLevel(Application.LOG_DEBUG); + } else { + Gdx.app.setLogLevel(Application.LOG_ERROR); + } + + mMainConfig.setFullscreenToggleListener((value) -> { + if (value) { + Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode()); + } else { + Gdx.graphics.setWindowedMode(width, height); + } + }); } - public void newGame() { + public void newGame(int gameMode) { GameScreen gameScreen = mMainComponent.getGameScreen(); - gameScreen.newGame(); + gameScreen.newGame(gameMode); setScreen(gameScreen); } @@ -67,20 +90,27 @@ public class CaveGame extends Game { } public void quitGame() { + if (screen != null) { + screen.dispose(); + } setScreen(mMainComponent.getMenuScreen()); } @Override public void create() { - Gdx.app.log(TAG, mGameFolder); Gdx.files.absolute(mGameFolder).mkdirs(); - initConfig(); + Gdx.app.debug(TAG, mGameFolder); Assets.load(mAssetLoader); - GameItems.load(mAssetLoader); - setScreen(mMainComponent.getMenuScreen()); } + @Override + public void dispose() { + if (screen != null) { + screen.dispose(); + } + Assets.dispose(); + } }