Skip to content

Commit

Permalink
Create input_handlers.py
Browse files Browse the repository at this point in the history
  • Loading branch information
EmperorPenguin18 committed Jun 30, 2021
1 parent bf30283 commit 44c7ad3
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions input_handlers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
from typing import Optional

import tcod.event

from actions import Action, EscapeAction, MovementAction


class EventHandler(tcod.event.EventDispatch[Action]):
def ev_quit(self, event: tcod.event.Quit) -> Optional[Action]:
raise SystemExit()

def ev_keydown(self, event: tcod.event.KeyDown) -> Optional[Action]:
action: Optional[Action] = None

key = event.sym

if key == tcod.event.K_UP:
action = MovementAction(dx=0, dy=-1)
elif key == tcod.event.K_DOWN:
action = MovementAction(dx=0, dy=1)
elif key == tcod.event.K_LEFT:
action = MovementAction(dx=-1, dy=0)
elif key == tcod.event.K_RIGHT:
action = MovementAction(dx=1, dy=0)

elif key == tcod.event.K_ESCAPE:
action = EscapeAction()

# No valid key was pressed
return action

0 comments on commit 44c7ad3

Please sign in to comment.