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
.game
.world
.GameWorldMobDamageControllerTask
;
10 import javax
.inject
.Inject
;
13 public class GameProc
implements Disposable
{
15 private final GamePhysics mGamePhysics
;
16 private final GameInput mGameInput
;
17 private final GameRenderer mGameRenderer
;
18 private final MobsController mMobsController
;
19 private final GameWorldFluidsLogicControllerTask mGameWorldFluidsLogicControllerTask
;
20 private final GameWorldBlocksLogicControllerTask mGameWorldBlocksLogicControllerTask
;
21 private final GameWorldMobDamageControllerTask mGameWorldMobDamageControllerTask
;
23 private final Timer mWorldLogicTimer
= new Timer();
26 public GameProc(GamePhysics gamePhysics
,
28 GameRenderer gameRenderer
,
29 MobsController mobsController
,
30 GameWorldFluidsLogicControllerTask gameWorldFluidsLogicControllerTask
,
31 GameWorldBlocksLogicControllerTask gameWorldBlocksLogicControllerTask
,
32 GameWorldMobDamageControllerTask gameWorldMobDamageControllerTask
34 mGamePhysics
= gamePhysics
;
35 mGameInput
= gameInput
;
36 mGameRenderer
= gameRenderer
;
37 mMobsController
= mobsController
;
38 mGameWorldFluidsLogicControllerTask
= gameWorldFluidsLogicControllerTask
;
39 mGameWorldBlocksLogicControllerTask
= gameWorldBlocksLogicControllerTask
;
40 mGameWorldMobDamageControllerTask
= gameWorldMobDamageControllerTask
;
44 mWorldLogicTimer
.scheduleTask(gameWorldFluidsLogicControllerTask
, 0,
45 GameWorldFluidsLogicControllerTask
.FLUID_UPDATE_INTERVAL_SEC
);
46 mWorldLogicTimer
.scheduleTask(gameWorldBlocksLogicControllerTask
, 0,
47 GameWorldBlocksLogicControllerTask
.WORLD_BLOCKS_LOGIC_UPDATE_INTERVAL_SEC
);
48 mWorldLogicTimer
.scheduleTask(gameWorldMobDamageControllerTask
, 0,
49 GameWorldMobDamageControllerTask
.ENVIRONMENTAL_MOB_DAMAGE_INTERVAL_SEC
);
52 public void setPlayerGameMode(int gameMode
) {
53 mMobsController
.getPlayer().gameMode
= gameMode
;
56 public void update(float delta
) {
57 mGamePhysics
.update(delta
);
59 mGameRenderer
.render(delta
);
63 public void dispose() {
64 mWorldLogicTimer
.stop();
65 mGameWorldFluidsLogicControllerTask
.cancel();
66 mGameWorldBlocksLogicControllerTask
.cancel();
67 mGameWorldMobDamageControllerTask
.cancel();