DEADSOFTWARE

MainComponent in kotlin
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / input / action / keys / MouseInputActionKey.kt
1 package ru.deadsoftware.cavedroid.game.input.action.keys
3 sealed interface MouseInputActionKey {
5 val touchUp: Boolean
7 sealed interface Touch : MouseInputActionKey {
8 val pointer: Int
9 }
11 data object None : MouseInputActionKey {
12 override val touchUp: Boolean
13 get() = throw IllegalAccessException("not applicable for mouse move action")
14 }
16 data class Dragged(
17 override val pointer: Int
18 ) : Touch {
19 override val touchUp: Boolean
20 get() = throw IllegalAccessException("not applicable for mouse dragged action")
21 }
23 data class Left(
24 override val touchUp: Boolean
25 ) : MouseInputActionKey
27 data class Right(
28 override val touchUp: Boolean
29 ) : MouseInputActionKey
31 data class Middle(
32 override val touchUp: Boolean
33 ) : MouseInputActionKey
35 data class Screen(
36 override val touchUp: Boolean,
37 override val pointer: Int,
38 ) : Touch
40 data class Scroll(
41 val amountX: Float,
42 val amountY: Float
43 ) : MouseInputActionKey {
44 override val touchUp: Boolean
45 get() = throw IllegalAccessException("not applicable for mouse scroll action")
46 }
48 }