package ru.deadsoftware.cavedroid.game.input.handler.keyboard import ru.deadsoftware.cavedroid.MainConfig import ru.deadsoftware.cavedroid.game.GameScope import ru.deadsoftware.cavedroid.game.input.IGameInputHandler import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey import ru.deadsoftware.cavedroid.game.mobs.MobsController import ru.deadsoftware.cavedroid.game.mobs.player.Player import javax.inject.Inject @GameScope class TurnOnFlyModeKeyboardInputHandler @Inject constructor( private val mainConfig: MainConfig, private val mobsController: MobsController, ) : IGameInputHandler { override fun checkConditions(action: KeyboardInputAction): Boolean { return mobsController.player.gameMode == 1 && action.actionKey is KeyboardInputActionKey.Up && !mobsController.player.swim && !mobsController.player.isFlyMode && !mobsController.player.canJump() && action.isKeyDown && (mobsController.player.controlMode == Player.ControlMode.WALK || !mainConfig.isTouch) } override fun handle(action: KeyboardInputAction) { mobsController.player.isFlyMode = true mobsController.player.velocity.y = 0f } }