aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils/KeyboardManager.kt
diff options
context:
space:
mode:
authorThunderblade73 <85900443+Thunderblade73@users.noreply.github.com>2024-06-10 03:11:42 +0200
committerGitHub <noreply@github.com>2024-06-10 03:11:42 +0200
commit1fe45f026afeff9d87107380bf8c4cf58051b29f (patch)
tree362a2d3cf9f0e1c4dbfabb710cd51ab0c7c11ee3 /src/main/java/at/hannibal2/skyhanni/utils/KeyboardManager.kt
parentb1ff611e4f764c5fba338571540f0ad2389994ac (diff)
downloadskyhanni-1fe45f026afeff9d87107380bf8c4cf58051b29f.tar.gz
skyhanni-1fe45f026afeff9d87107380bf8c4cf58051b29f.tar.bz2
skyhanni-1fe45f026afeff9d87107380bf8c4cf58051b29f.zip
Backend: Graph Editor (#1454)
Co-authored-by: Cal <cwolfson58@gmail.com> Co-authored-by: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils/KeyboardManager.kt')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/KeyboardManager.kt39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/KeyboardManager.kt b/src/main/java/at/hannibal2/skyhanni/utils/KeyboardManager.kt
index c04057e72..9bf129be2 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/KeyboardManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/KeyboardManager.kt
@@ -133,4 +133,43 @@ object KeyboardManager {
}
fun getKeyName(keyCode: Int): String = KeybindHelper.getKeyName(keyCode)
+
+ object WasdInputMatrix : Iterable<KeyBinding> {
+ operator fun contains(keyBinding: KeyBinding) = when (keyBinding) {
+ w, a, s, d, up, down -> true
+ else -> false
+ }
+
+ val w get() = Minecraft.getMinecraft().gameSettings.keyBindForward!!
+ val a get() = Minecraft.getMinecraft().gameSettings.keyBindLeft!!
+ val s get() = Minecraft.getMinecraft().gameSettings.keyBindBack!!
+ val d get() = Minecraft.getMinecraft().gameSettings.keyBindRight!!
+
+ val up get() = Minecraft.getMinecraft().gameSettings.keyBindJump!!
+ val down get() = Minecraft.getMinecraft().gameSettings.keyBindSneak!!
+
+ override fun iterator(): Iterator<KeyBinding> =
+ object : Iterator<KeyBinding> {
+
+ var current = w
+
+ override fun hasNext(): Boolean =
+ current != down
+
+ override fun next(): KeyBinding {
+ return current.also {
+ current = when (it) {
+ w -> a
+ a -> s
+ s -> d
+ d -> up
+ up -> down
+ else -> throw java.lang.IndexOutOfBoundsException()
+ }
+ }
+ }
+
+ }
+
+ }
}