1 package ru
.deadsoftware
.cavedroid
.game
;
3 import com
.badlogic
.gdx
.utils
.Disposable
;
4 import com
.badlogic
.gdx
.utils
.Timer
;
5 import ru
.deadsoftware
.cavedroid
.game
.mobs
.MobsController
;
6 import ru
.deadsoftware
.cavedroid
.game
.world
.GameWorldBlocksLogicControllerTask
;
7 import ru
.deadsoftware
.cavedroid
.game
.world
.GameWorldFluidsLogicControllerTask
;
8 import ru
.deadsoftware
.cavedroid
.misc
.utils
.AssetLoader
;
10 import javax
.inject
.Inject
;
13 public class GameProc
implements Disposable
{
15 public static final int MAX_CREATIVE_SCROLL
= GameItems
.getItemsSize() / 8;
17 private final GamePhysics mGamePhysics
;
18 private final GameInput mGameInput
;
19 private final GameRenderer mGameRenderer
;
20 private final MobsController mMobsController
;
21 private final GameWorldFluidsLogicControllerTask mGameWorldFluidsLogicControllerTask
;
22 private final GameWorldBlocksLogicControllerTask mGameWorldBlocksLogicControllerTask
;
23 private final GameItemsHolder mGameItemsHolder
;
25 private final Timer mWorldLogicTimer
= new Timer();
28 public GameProc(GamePhysics gamePhysics
,
30 GameRenderer gameRenderer
,
31 MobsController mobsController
,
32 GameWorldFluidsLogicControllerTask gameWorldFluidsLogicControllerTask
,
33 GameWorldBlocksLogicControllerTask gameWorldBlocksLogicControllerTask
,
34 GameItemsHolder gameItemsHolder
,
35 AssetLoader assetLoader
37 mGamePhysics
= gamePhysics
;
38 mGameInput
= gameInput
;
39 mGameRenderer
= gameRenderer
;
40 mMobsController
= mobsController
;
41 mGameWorldFluidsLogicControllerTask
= gameWorldFluidsLogicControllerTask
;
42 mGameWorldBlocksLogicControllerTask
= gameWorldBlocksLogicControllerTask
;
43 mGameItemsHolder
= gameItemsHolder
;
45 mGameItemsHolder
.initialize();
47 mWorldLogicTimer
.scheduleTask(gameWorldFluidsLogicControllerTask
, 0,
48 GameWorldFluidsLogicControllerTask
.FLUID_UPDATE_INTERVAL_SEC
);
49 mWorldLogicTimer
.scheduleTask(gameWorldBlocksLogicControllerTask
, 0,
50 GameWorldBlocksLogicControllerTask
.WORLD_BLOCKS_LOGIC_UPDATE_INTERVAL_SEC
);
53 public void setPlayerGameMode(int gameMode
) {
54 mMobsController
.getPlayer().gameMode
= gameMode
;
57 public void update(float delta
) {
58 mGamePhysics
.update(delta
);
60 mGameRenderer
.render(delta
);
64 public void dispose() {
65 mWorldLogicTimer
.stop();
66 mGameWorldFluidsLogicControllerTask
.cancel();
67 mGameWorldBlocksLogicControllerTask
.cancel();