diff options
author | Linnea Gräf <nea@nea.moe> | 2024-10-18 00:41:25 +0200 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-10-18 14:36:51 +0200 |
commit | c89b663acad487caeb15f7521be3dd14342dd4e7 (patch) | |
tree | ae21daabaf5de1ac5281509c6fa9446259169ae5 /src/main/kotlin/events | |
parent | 7de0e8e7e09e3428c17ca9717c21c02469c31b76 (diff) | |
download | Firmament-c89b663acad487caeb15f7521be3dd14342dd4e7.tar.gz Firmament-c89b663acad487caeb15f7521be3dd14342dd4e7.tar.bz2 Firmament-c89b663acad487caeb15f7521be3dd14342dd4e7.zip |
Add slot binding
Diffstat (limited to 'src/main/kotlin/events')
-rw-r--r-- | src/main/kotlin/events/HandledScreenKeyPressedEvent.kt | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/src/main/kotlin/events/HandledScreenKeyPressedEvent.kt b/src/main/kotlin/events/HandledScreenKeyPressedEvent.kt index 7ec2abb..183ec71 100644 --- a/src/main/kotlin/events/HandledScreenKeyPressedEvent.kt +++ b/src/main/kotlin/events/HandledScreenKeyPressedEvent.kt @@ -1,24 +1,38 @@ - - package moe.nea.firmament.events import net.minecraft.client.gui.screen.ingame.HandledScreen import net.minecraft.client.option.KeyBinding import moe.nea.firmament.keybindings.IKeyBinding -data class HandledScreenKeyPressedEvent( - val screen: HandledScreen<*>, - val keyCode: Int, - val scanCode: Int, - val modifiers: Int -) : FirmamentEvent.Cancellable() { - companion object : FirmamentEventBus<HandledScreenKeyPressedEvent>() +sealed interface HandledScreenKeyEvent { + val screen: HandledScreen<*> + val keyCode: Int + val scanCode: Int + val modifiers: Int + + fun matches(keyBinding: KeyBinding): Boolean { + return matches(IKeyBinding.minecraft(keyBinding)) + } - fun matches(keyBinding: KeyBinding): Boolean { - return matches(IKeyBinding.minecraft(keyBinding)) - } + fun matches(keyBinding: IKeyBinding): Boolean { + return keyBinding.matches(keyCode, scanCode, modifiers) + } +} + +data class HandledScreenKeyPressedEvent( + override val screen: HandledScreen<*>, + override val keyCode: Int, + override val scanCode: Int, + override val modifiers: Int +) : FirmamentEvent.Cancellable(), HandledScreenKeyEvent { + companion object : FirmamentEventBus<HandledScreenKeyPressedEvent>() +} - fun matches(keyBinding: IKeyBinding): Boolean { - return keyBinding.matches(keyCode, scanCode, modifiers) - } +data class HandledScreenKeyReleasedEvent( + override val screen: HandledScreen<*>, + override val keyCode: Int, + override val scanCode: Int, + override val modifiers: Int +) : FirmamentEvent.Cancellable(), HandledScreenKeyEvent { + companion object : FirmamentEventBus<HandledScreenKeyReleasedEvent>() } |