X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGameProc.java;h=a3fcabbbf4ccfd65466d78e83e46fea7ce428266;hb=9606fce8cc7c9b264abd7cb38583faaebb610540;hp=0c3947b499e789a144cad218de8bf294b90e0e9c;hpb=63ffd8af5e9788f36fc75b6d5c29ae525eb74692;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameProc.java b/core/src/ru/deadsoftware/cavedroid/game/GameProc.java index 0c3947b..a3fcabb 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GameProc.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GameProc.java @@ -1,53 +1,60 @@ package ru.deadsoftware.cavedroid.game; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.Disposable; import com.badlogic.gdx.utils.Timer; +import ru.deadsoftware.cavedroid.MainConfig; import ru.deadsoftware.cavedroid.game.mobs.MobsController; +import ru.deadsoftware.cavedroid.game.mobs.player.Player; +import ru.deadsoftware.cavedroid.game.objects.furnace.FurnaceController; import ru.deadsoftware.cavedroid.game.world.GameWorldBlocksLogicControllerTask; import ru.deadsoftware.cavedroid.game.world.GameWorldFluidsLogicControllerTask; -import ru.deadsoftware.cavedroid.misc.utils.AssetLoader; +import ru.deadsoftware.cavedroid.game.world.GameWorldMobDamageControllerTask; import javax.inject.Inject; @GameScope public class GameProc implements Disposable { - public static final int MAX_CREATIVE_SCROLL = GameItems.getItemsSize() / 8; - private final GamePhysics mGamePhysics; - private final GameInput mGameInput; private final GameRenderer mGameRenderer; private final MobsController mMobsController; + private final FurnaceController mFurnaceController; + private final GameItemsHolder mGameItemsHolder; private final GameWorldFluidsLogicControllerTask mGameWorldFluidsLogicControllerTask; private final GameWorldBlocksLogicControllerTask mGameWorldBlocksLogicControllerTask; - private final GameItemsHolder mGameItemsHolder; + private final GameWorldMobDamageControllerTask mGameWorldMobDamageControllerTask; private final Timer mWorldLogicTimer = new Timer(); @Inject - public GameProc(GamePhysics gamePhysics, - GameInput gameInput, + public GameProc(MainConfig mainConfig, + GamePhysics gamePhysics, GameRenderer gameRenderer, MobsController mobsController, + FurnaceController furnaceController, + GameItemsHolder gameItemsHolder, GameWorldFluidsLogicControllerTask gameWorldFluidsLogicControllerTask, GameWorldBlocksLogicControllerTask gameWorldBlocksLogicControllerTask, - GameItemsHolder gameItemsHolder, - AssetLoader assetLoader + GameWorldMobDamageControllerTask gameWorldMobDamageControllerTask ) { mGamePhysics = gamePhysics; - mGameInput = gameInput; mGameRenderer = gameRenderer; mMobsController = mobsController; + mFurnaceController = furnaceController; + mGameItemsHolder = gameItemsHolder; mGameWorldFluidsLogicControllerTask = gameWorldFluidsLogicControllerTask; mGameWorldBlocksLogicControllerTask = gameWorldBlocksLogicControllerTask; - mGameItemsHolder = gameItemsHolder; + mGameWorldMobDamageControllerTask = gameWorldMobDamageControllerTask; - mGameItemsHolder.initialize(assetLoader); + mobsController.getPlayer().controlMode = mainConfig.isTouch() ? Player.ControlMode.WALK : Player.ControlMode.CURSOR; mWorldLogicTimer.scheduleTask(gameWorldFluidsLogicControllerTask, 0, GameWorldFluidsLogicControllerTask.FLUID_UPDATE_INTERVAL_SEC); mWorldLogicTimer.scheduleTask(gameWorldBlocksLogicControllerTask, 0, GameWorldBlocksLogicControllerTask.WORLD_BLOCKS_LOGIC_UPDATE_INTERVAL_SEC); + mWorldLogicTimer.scheduleTask(gameWorldMobDamageControllerTask, 0, + GameWorldMobDamageControllerTask.ENVIRONMENTAL_MOB_DAMAGE_INTERVAL_SEC); } public void setPlayerGameMode(int gameMode) { @@ -56,8 +63,12 @@ public class GameProc implements Disposable { public void update(float delta) { mGamePhysics.update(delta); - mGameInput.update(); mGameRenderer.render(delta); + mFurnaceController.update(mGameItemsHolder); + } + + public void show() { + Gdx.input.setInputProcessor(mGameRenderer); } @Override @@ -65,5 +76,6 @@ public class GameProc implements Disposable { mWorldLogicTimer.stop(); mGameWorldFluidsLogicControllerTask.cancel(); mGameWorldBlocksLogicControllerTask.cancel(); + mGameWorldMobDamageControllerTask.cancel(); } }