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
;
9 import javax
.inject
.Inject
;
12 public class GameProc
implements Disposable
{
14 public static final int MAX_CREATIVE_SCROLL
= GameItems
.getItemsSize() / 8;
16 private final GamePhysics mGamePhysics
;
17 private final GameInput mGameInput
;
18 private final GameRenderer mGameRenderer
;
19 private final MobsController mMobsController
;
20 private final GameWorldFluidsLogicControllerTask mGameWorldFluidsLogicControllerTask
;
21 private final GameWorldBlocksLogicControllerTask mGameWorldBlocksLogicControllerTask
;
23 private final Timer mWorldLogicTimer
= new Timer();
26 public GameProc(GamePhysics gamePhysics
,
28 GameRenderer gameRenderer
,
29 MobsController mobsController
,
30 GameWorldFluidsLogicControllerTask gameWorldFluidsLogicControllerTask
,
31 GameWorldBlocksLogicControllerTask gameWorldBlocksLogicControllerTask
33 mGamePhysics
= gamePhysics
;
34 mGameInput
= gameInput
;
35 mGameRenderer
= gameRenderer
;
36 mMobsController
= mobsController
;
37 mGameWorldFluidsLogicControllerTask
= gameWorldFluidsLogicControllerTask
;
38 mGameWorldBlocksLogicControllerTask
= gameWorldBlocksLogicControllerTask
;
40 mWorldLogicTimer
.scheduleTask(gameWorldFluidsLogicControllerTask
, 0,
41 GameWorldFluidsLogicControllerTask
.FLUID_UPDATE_INTERVAL_SEC
);
42 mWorldLogicTimer
.scheduleTask(gameWorldBlocksLogicControllerTask
, 0,
43 GameWorldBlocksLogicControllerTask
.WORLD_BLOCKS_LOGIC_UPDATE_INTERVAL_SEC
);
46 public void setPlayerGameMode(int gameMode
) {
47 mMobsController
.getPlayer().gameMode
= gameMode
;
50 public void update(float delta
) {
51 mGamePhysics
.update(delta
);
53 mGameRenderer
.render(delta
);
57 public void dispose() {
58 mWorldLogicTimer
.stop();
59 mGameWorldFluidsLogicControllerTask
.cancel();
60 mGameWorldBlocksLogicControllerTask
.cancel();