X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGameScreen.java;h=1d47b9074cb9f65144944486e024ad7462a579cd;hb=9e390d2131e2f1eaa886956b2b657b35d6d1b5f9;hp=00cfd3e6502b57c0be039514f0f25870f639d2f6;hpb=f4d52e3e4a3712050532786fca0aded5ff8b5a03;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java b/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java index 00cfd3e..1d47b90 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java @@ -4,28 +4,58 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; import ru.deadsoftware.cavedroid.MainConfig; +import javax.annotation.CheckForNull; import javax.inject.Inject; import javax.inject.Singleton; @Singleton public class GameScreen implements Screen { - private static final String TAG = "GameScreen"; - private final MainConfig mMainConfig; + @CheckForNull private GameProc mGameProc; + @CheckForNull + private GameInputProcessor mGameInputProcessor; + @CheckForNull + private GameItemsHolder mGameItemsHolder; @Inject public GameScreen(MainConfig mainConfig) { mMainConfig = mainConfig; - newGame(); } - public void newGame() { + public void newGame(int gameMode) { + if (mGameProc != null) { + mGameProc.dispose(); + } + + GameModule.loaded = true; + GameComponent gameComponent = DaggerGameComponent.builder() .mainComponent(mMainConfig.getMainComponent()).build(); + mGameProc = gameComponent.getGameProc(); + mGameInputProcessor = gameComponent.getGameInputProcessor(); + + mGameProc.setPlayerGameMode(gameMode); + + Gdx.input.setInputProcessor(gameComponent.getGameInputProcessor()); + } + + public void loadGame() { + if (mGameProc != null) { + mGameProc.dispose(); + } + + GameModule.loaded = false; + + GameComponent gameComponent = DaggerGameComponent.builder() + .mainComponent(mMainConfig.getMainComponent()).build(); + + mGameProc = gameComponent.getGameProc(); + mGameInputProcessor = gameComponent.getGameInputProcessor(); + Gdx.input.setInputProcessor(gameComponent.getGameInputProcessor()); } @@ -36,7 +66,7 @@ public class GameScreen implements Screen { @Override public void show() { - + Gdx.input.setInputProcessor(mGameInputProcessor); } @Override @@ -61,6 +91,9 @@ public class GameScreen implements Screen { @Override public void dispose() { + if (mGameProc != null) { + mGameProc.dispose(); + } } }