diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameProc.java b/core/src/ru/deadsoftware/cavedroid/game/GameProc.java
index f063f7a19a856c1f0d4b06e28f924f14574ced22..139a31ba61e8dbe98d54fb458944de45450a35f2 100644 (file)
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;
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) {
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();
}
}