package ru.deadsoftware.cavedroid.game.input.handler.mouse
import com.badlogic.gdx.math.MathUtils
+import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
@GameScope
class CreativeInventoryScrollMouseInputHandler @Inject constructor(
+ private val mainConfig: MainConfig,
private val gameWindowsManager: GameWindowsManager,
private val gameItemsHolder: GameItemsHolder,
) : IGameInputHandler<MouseInputAction> {
}
private fun checkStartDragConditions(action: MouseInputAction): Boolean {
- return action.actionKey is MouseInputActionKey.Left &&
+ return (action.actionKey is MouseInputActionKey.Touch) &&
!action.actionKey.touchUp && !gameWindowsManager.isDragging
}
private fun checkEndDragConditions(action: MouseInputAction): Boolean {
- return action.actionKey is MouseInputActionKey.Left &&
+ return action.actionKey is MouseInputActionKey.Touch &&
action.actionKey.touchUp && gameWindowsManager.isDragging
}
private fun checkDragConditions(action: MouseInputAction): Boolean {
- return action.actionKey is MouseInputActionKey.Dragged &&
+ return mainConfig.isTouch && action.actionKey is MouseInputActionKey.Dragged &&
abs(action.screenY - dragStartY) >= DRAG_SENSITIVITY
}
override fun handle(action: MouseInputAction) {
when (action.actionKey) {
- is MouseInputActionKey.Left -> handleStartOrEndDrag(action)
+ is MouseInputActionKey.Touch -> handleStartOrEndDrag(action)
is MouseInputActionKey.Dragged -> handleDrag(action)
is MouseInputActionKey.Scroll -> handleScroll(action)
else -> return
override fun checkConditions(action: MouseInputAction): Boolean {
return gameWindowsManager.getCurrentWindow() == GameUiWindow.CREATIVE_INVENTORY &&
!gameWindowsManager.isDragging &&
- action.actionKey is MouseInputActionKey.Left &&
+ (action.actionKey is MouseInputActionKey.Left || action.actionKey is MouseInputActionKey.Touch) &&
action.actionKey.touchUp && isInsideWindow(action, creativeInventoryTexture)
}