diff --git a/core/src/ru/deadsoftware/cavedroid/CaveGame.java b/core/src/ru/deadsoftware/cavedroid/CaveGame.java
index 57704d98f94f56d186c6c2c845f0dfd2f699d8d6..9ca34b8e0507a5a42523accf769469847185661a 100644 (file)
package ru.deadsoftware.cavedroid;
package ru.deadsoftware.cavedroid;
+import com.badlogic.gdx.Application;
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
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 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;
public class CaveGame extends Game {
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.9.2";
+
+ 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,
+ PreferencesStore preferencesStore,
+ @Nullable String assetsPackPath) {
+ mGameFolder = gameFolder;
+ mTouch = touch;
+ mAssetsPackPath = assetsPackPath;
- public static String GAME_FOLDER;
- public static boolean TOUCH;
+ mMainComponent = DaggerMainComponent
+ .builder()
+ .caveGame(this)
+ .preferencesStore(preferencesStore)
+ .build();
- public CaveGame(String gameFolder) {
- this(gameFolder, false);
+ mMainConfig = mMainComponent.getMainConfig();
+ mAssetLoader = mMainComponent.getAssetLoader();
}
}
- 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 setDebug(boolean debug) {
+ mDebug = debug;
+ }
+
+ private void initConfig() {
+ int width = 480;
+ int height = (int) (width * ((float) Gdx.graphics.getHeight() / Gdx.graphics.getWidth()));
+
+ mMainConfig.setMainComponent(mMainComponent);
+ mMainConfig.setGameFolder(mGameFolder);
+ mMainConfig.setTouch(mTouch);
+ mMainConfig.setWidth(width);
+ 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(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() {
}
@Override
public void create() {
- Gdx.app.log("CaveGame", GAME_FOLDER);
- Gdx.files.absolute(GAME_FOLDER).mkdirs();
- setScreen(new GameScreen());
+ Gdx.files.absolute(mGameFolder).mkdirs();
+ initConfig();
+
+ Gdx.app.debug(TAG, mGameFolder);
+ Assets.load(mAssetLoader);
+ setScreen(mMainComponent.getMenuScreen());
}
}
+ @Override
+ public void dispose() {
+ if (screen != null) {
+ screen.dispose();
+ }
+ Assets.dispose();
+ }
}
}