diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java b/core/src/ru/deadsoftware/cavedroid/game/GameScreen.java
index 00cfd3e6502b57c0be039514f0f25870f639d2f6..1d47b9074cb9f65144944486e024ad7462a579cd 100644 (file)
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());
}
@Override
public void show() {
-
+ Gdx.input.setInputProcessor(mGameInputProcessor);
}
@Override
@Override
public void dispose() {
+ if (mGameProc != null) {
+ mGameProc.dispose();
+ }
}
}