X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGameProc.java;h=139a31ba61e8dbe98d54fb458944de45450a35f2;hb=894d9f1babeff18c9cbb5f83206ff2c549de0bdb;hp=f063f7a19a856c1f0d4b06e28f924f14574ced22;hpb=47099181db7f7d785c9c471cbaca474ebcb67d95;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameProc.java b/core/src/ru/deadsoftware/cavedroid/game/GameProc.java index f063f7a..139a31b 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GameProc.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GameProc.java @@ -1,8 +1,10 @@ package ru.deadsoftware.cavedroid.game; import com.badlogic.gdx.utils.Disposable; +import com.badlogic.gdx.utils.Timer; import ru.deadsoftware.cavedroid.game.mobs.MobsController; -import ru.deadsoftware.cavedroid.game.world.GameWorld; +import ru.deadsoftware.cavedroid.game.world.GameWorldBlocksLogicControllerTask; +import ru.deadsoftware.cavedroid.game.world.GameWorldFluidsLogicControllerTask; import javax.inject.Inject; @@ -11,24 +13,34 @@ public class GameProc implements Disposable { public static final int MAX_CREATIVE_SCROLL = GameItems.getItemsSize() / 8; - private final GameWorld mGameWorld; private final GamePhysics mGamePhysics; private final GameInput mGameInput; private final GameRenderer mGameRenderer; private final MobsController mMobsController; + private final GameWorldFluidsLogicControllerTask mGameWorldFluidsLogicControllerTask; + private final GameWorldBlocksLogicControllerTask mGameWorldBlocksLogicControllerTask; + + private final Timer mWorldLogicTimer = new Timer(); @Inject - public GameProc(GameWorld gameWorld, - GamePhysics gamePhysics, + public GameProc(GamePhysics gamePhysics, GameInput gameInput, GameRenderer gameRenderer, - MobsController mobsController + MobsController mobsController, + GameWorldFluidsLogicControllerTask gameWorldFluidsLogicControllerTask, + GameWorldBlocksLogicControllerTask gameWorldBlocksLogicControllerTask ) { - mGameWorld = gameWorld; mGamePhysics = gamePhysics; mGameInput = gameInput; mGameRenderer = gameRenderer; mMobsController = mobsController; + mGameWorldFluidsLogicControllerTask = gameWorldFluidsLogicControllerTask; + mGameWorldBlocksLogicControllerTask = gameWorldBlocksLogicControllerTask; + + mWorldLogicTimer.scheduleTask(gameWorldFluidsLogicControllerTask, 0, + GameWorldFluidsLogicControllerTask.FLUID_UPDATE_INTERVAL_SEC); + mWorldLogicTimer.scheduleTask(gameWorldBlocksLogicControllerTask, 0, + GameWorldBlocksLogicControllerTask.WORLD_BLOCKS_LOGIC_UPDATE_INTERVAL_SEC); } public void setPlayerGameMode(int gameMode) { @@ -38,12 +50,13 @@ public class GameProc implements Disposable { public void update(float delta) { mGamePhysics.update(delta); mGameInput.update(); - mGameWorld.update(); mGameRenderer.render(delta); } @Override public void dispose() { - mGameWorld.dispose(); + mWorldLogicTimer.stop(); + mGameWorldFluidsLogicControllerTask.cancel(); + mGameWorldBlocksLogicControllerTask.cancel(); } }