X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2FCaveGame.java;h=4fa6b0e972871687ea9ed154d0733f5b0f7bdb48;hb=b62c3a39c63a5a558352627026c6019ff6110071;hp=57704d98f94f56d186c6c2c845f0dfd2f699d8d6;hpb=2948fcd9c40ebf588ef7d0e7cd8dd34ecaa1f9b2;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/CaveGame.java b/core/src/ru/deadsoftware/cavedroid/CaveGame.java index 57704d9..4fa6b0e 100644 --- a/core/src/ru/deadsoftware/cavedroid/CaveGame.java +++ b/core/src/ru/deadsoftware/cavedroid/CaveGame.java @@ -2,38 +2,94 @@ package ru.deadsoftware.cavedroid; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; -import ru.deadsoftware.cavedroid.misc.states.AppState; -import ru.deadsoftware.cavedroid.misc.states.GameState; -import ru.deadsoftware.cavedroid.misc.states.MenuState; +import ru.deadsoftware.cavedroid.game.GameItems; +import ru.deadsoftware.cavedroid.game.GameScreen; +import ru.deadsoftware.cavedroid.misc.Assets; +import ru.deadsoftware.cavedroid.misc.utils.AssetLoader; + +import javax.annotation.Nullable; public class CaveGame extends Game { - public static final String VERSION = "alpha 0.4"; + private static final String TAG = "CaveGame"; + + public static final String VERSION = "alpha 0.5.1"; + + private final MainConfig mMainConfig; + private final MainComponent mMainComponent; + private final AssetLoader mAssetLoader; + + private final String mGameFolder; + private final boolean mTouch; + private boolean mDebug; + + @Nullable + private final String mAssetsPackPath; - public static AppState APP_STATE; - public static GameState GAME_STATE; - public static MenuState MENU_STATE; + public CaveGame(String gameFolder, boolean touch, @Nullable String assetsPackPath) { + mGameFolder = gameFolder; + mTouch = touch; + mAssetsPackPath = assetsPackPath; + + mMainComponent = DaggerMainComponent.builder().caveGame(this).build(); + + mMainConfig = mMainComponent.getMainConfig(); + mAssetLoader = mMainComponent.getAssetLoader(); + } + + public void setDebug(boolean debug) { + mDebug = debug; + } - public static String GAME_FOLDER; - public static boolean TOUCH; + private void initConfig() { + int width = mTouch ? 320 : 480; + int height = (int) (width * ((float) Gdx.graphics.getHeight() / Gdx.graphics.getWidth())); - public CaveGame(String gameFolder) { - this(gameFolder, false); + mMainConfig.setMainComponent(mMainComponent); + mMainConfig.setGameFolder(mGameFolder); + mMainConfig.setTouch(mTouch); + mMainConfig.setWidth(width); + mMainConfig.setHeight(height); + mMainConfig.setShowInfo(mDebug); + mMainConfig.setAssetsPackPath(mAssetsPackPath); } - public CaveGame(String gameFolder, boolean touch) { - GAME_FOLDER = gameFolder; - TOUCH = touch; - APP_STATE = AppState.MENU; - MENU_STATE = MenuState.MAIN; - GAME_STATE = GameState.PLAY; + public void newGame(int gameMode) { + GameScreen gameScreen = mMainComponent.getGameScreen(); + gameScreen.newGame(gameMode); + setScreen(gameScreen); + } + + public void loadGame() { + GameScreen gameScreen = mMainComponent.getGameScreen(); + gameScreen.loadGame(); + setScreen(gameScreen); + } + + public void quitGame() { + if (screen != null) { + screen.dispose(); + } + setScreen(mMainComponent.getMenuScreen()); } @Override public void create() { - Gdx.app.log("CaveGame", GAME_FOLDER); - Gdx.files.absolute(GAME_FOLDER).mkdirs(); - setScreen(new GameScreen()); + Gdx.app.log(TAG, mGameFolder); + Gdx.files.absolute(mGameFolder).mkdirs(); + + initConfig(); + + Assets.load(mAssetLoader); + GameItems.load(mAssetLoader); + + setScreen(mMainComponent.getMenuScreen()); } + @Override + public void dispose() { + if (screen != null) { + screen.dispose(); + } + } }