DEADSOFTWARE

Implement DI for menu and refactor #13
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / GameScreen.java
1 package ru.deadsoftware.cavedroid.game;
3 import com.badlogic.gdx.Gdx;
4 import com.badlogic.gdx.Screen;
5 import ru.deadsoftware.cavedroid.MainConfig;
7 import javax.annotation.CheckForNull;
8 import javax.inject.Inject;
9 import javax.inject.Singleton;
11 @Singleton
12 public class GameScreen implements Screen {
14 private final MainConfig mMainConfig;
16 @CheckForNull
17 private GameProc mGameProc;
18 @CheckForNull
19 private GameInputProcessor mGameInputProcessor;
21 @Inject
22 public GameScreen(MainConfig mainConfig) {
23 mMainConfig = mainConfig;
24 }
26 public void newGame() {
27 if (mGameProc != null) {
28 mGameProc.dispose();
29 }
31 GameComponent gameComponent = DaggerGameComponent.builder()
32 .mainComponent(mMainConfig.getMainComponent()).build();
34 mGameProc = gameComponent.getGameProc();
35 mGameInputProcessor = gameComponent.getGameInputProcessor();
37 Gdx.input.setInputProcessor(gameComponent.getGameInputProcessor());
38 }
40 public void loadGame() {
41 if (mGameProc != null) {
42 mGameProc.dispose();
43 }
45 GameModule.load(mMainConfig);
47 GameComponent gameComponent = DaggerGameComponent.builder()
48 .mainComponent(mMainConfig.getMainComponent()).build();
50 mGameProc = gameComponent.getGameProc();
51 mGameInputProcessor = gameComponent.getGameInputProcessor();
53 Gdx.input.setInputProcessor(gameComponent.getGameInputProcessor());
54 }
56 @Override
57 public void render(float delta) {
58 mGameProc.update(delta);
59 }
61 @Override
62 public void show() {
63 Gdx.input.setInputProcessor(mGameInputProcessor);
64 }
66 @Override
67 public void resize(int width, int height) {
69 }
71 @Override
72 public void pause() {
74 }
76 @Override
77 public void resume() {
79 }
81 @Override
82 public void hide() {
84 }
86 @Override
87 public void dispose() {
88 }
90 }