Push universe into events

This commit is contained in:
2021-11-28 12:29:57 +00:00
parent 98e0ea971a
commit 0723def26a
2 changed files with 35 additions and 37 deletions
+6 -4
View File
@@ -23,10 +23,12 @@ On release, remove scancode from the 'Set' of pressed keys.
On press, adds the scancode, and perhaps applies a direct effect:
see 'handlePressedKeyInGame'.
-}
handleKeyboardEvent :: KeyboardEventData -> World -> Maybe World
handleKeyboardEvent kev w = case keyboardEventKeyMotion kev of
Released -> Just $ w & keys %~ S.delete kcode
Pressed -> handlePressedKey (keyboardEventRepeat kev) kcode (w & keys %~ S.insert kcode)
handleKeyboardEvent :: KeyboardEventData -> Universe -> Maybe Universe
handleKeyboardEvent kev u = case keyboardEventKeyMotion kev of
Released -> Just $ u & uvWorld . keys %~ S.delete kcode
Pressed -> uvWorld
(handlePressedKey (keyboardEventRepeat kev) kcode)
(u & uvWorld . keys %~ S.insert kcode)
where
kcode = (keysymScancode . keyboardEventKeysym) kev