DEADSOFTWARE

Fix touch controls
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / input / handler / mouse / CreativeInventoryScrollMouseInputHandler.kt
index 52e9f627071ea971fc8c148ed97730f316be6514..01cc4e23a5c1f78a38c7dd2ee6a4a8b47ef2e9b9 100644 (file)
@@ -1,6 +1,7 @@
 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
@@ -15,6 +16,7 @@ import kotlin.math.abs
 
 @GameScope
 class CreativeInventoryScrollMouseInputHandler @Inject constructor(
+    private val mainConfig: MainConfig,
     private val gameWindowsManager: GameWindowsManager,
     private val gameItemsHolder: GameItemsHolder,
 ) : IGameInputHandler<MouseInputAction> {
@@ -32,17 +34,17 @@ class CreativeInventoryScrollMouseInputHandler @Inject constructor(
     }
 
     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
     }
 
@@ -73,7 +75,7 @@ class CreativeInventoryScrollMouseInputHandler @Inject constructor(
 
     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