X-Git-Url: http://deadsoftware.ru/gitweb?p=cavedroid.git;a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGameScreen.java;h=370d8bd79066baf1db5c385f4d89556b53c6f740;hp=00cfd3e6502b57c0be039514f0f25870f639d2f6;hb=5b3244dceab39900a44eeb4d6108715c56735626;hpb=f4d52e3e4a3712050532786fca0aded5ff8b5a03 diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java b/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java index 00cfd3e..370d8bd 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java @@ -4,28 +4,52 @@ 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; @Inject public GameScreen(MainConfig mainConfig) { mMainConfig = mainConfig; - newGame(); } public void newGame() { + if (mGameProc != null) { + mGameProc.dispose(); + } + GameComponent gameComponent = DaggerGameComponent.builder() .mainComponent(mMainConfig.getMainComponent()).build(); + mGameProc = gameComponent.getGameProc(); + mGameInputProcessor = gameComponent.getGameInputProcessor(); + + Gdx.input.setInputProcessor(gameComponent.getGameInputProcessor()); + } + + public void loadGame() { + if (mGameProc != null) { + mGameProc.dispose(); + } + + GameModule.load(mMainConfig); + + GameComponent gameComponent = DaggerGameComponent.builder() + .mainComponent(mMainConfig.getMainComponent()).build(); + + mGameProc = gameComponent.getGameProc(); + mGameInputProcessor = gameComponent.getGameInputProcessor(); + Gdx.input.setInputProcessor(gameComponent.getGameInputProcessor()); } @@ -36,7 +60,7 @@ public class GameScreen implements Screen { @Override public void show() { - + Gdx.input.setInputProcessor(mGameInputProcessor); } @Override