diff options
Diffstat (limited to 'asciifarm/client/gameclient.py')
| -rw-r--r-- | asciifarm/client/gameclient.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/asciifarm/client/gameclient.py b/asciifarm/client/gameclient.py index 2bd5420..d9d0c89 100644 --- a/asciifarm/client/gameclient.py +++ b/asciifarm/client/gameclient.py @@ -1,4 +1,4 @@ -#! /usr/bin/python3 + import os import sys @@ -10,13 +10,14 @@ import argparse import string from queue import Queue +import ratuil.inputs from .inputhandler import InputHandler class Client: - def __init__(self, stdscr, display, name, connection, keybindings, logFile=None): - self.stdscr = stdscr + def __init__(self, display, name, connection, keybindings, logFile=None): + self.display = display self.name = name self.keepalive = True @@ -54,7 +55,7 @@ class Client: def getInput(self): while True: - key = self.stdscr.getch() + key = ratuil.inputs.get_key() self.queue.put(("input", key)) def close(self, msg=None): @@ -138,12 +139,19 @@ class Client: if action[0] == "message": self.update(action[1]) elif action[0] == "input": + if action[1] == "^C": + raise KeyboardInterrupt self.inputHandler.onInput(action[1]) elif action[0] == "error": raise action[1] + elif action[0] == "sigwinch": + self.display.update_size() else: raise Exception("invalid action in queue") + def onSigwinch(self, signum, frame): + self.queue.put(("sigwinch", (signum, frame))) + |
