diff options
Diffstat (limited to 'asciifarm/client/gameclient.py')
| -rw-r--r-- | asciifarm/client/gameclient.py | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/asciifarm/client/gameclient.py b/asciifarm/client/gameclient.py index b3b046b..6a80572 100644 --- a/asciifarm/client/gameclient.py +++ b/asciifarm/client/gameclient.py @@ -13,11 +13,7 @@ import string from .display.display import Display import hy - -hywrapper = """\ -(do - (require [asciifarm.client.keymacros [*]]) - {{ {} }})""" +from .inputhandling import InputHandler class Client: @@ -29,8 +25,10 @@ class Client: self.connection = connection self.logFile = logFile - self.commands = hy.eval(hy.read_str(hywrapper.format(keybindings))) - self.controlsString = self.commands.get("help", "") + self.inputHandler = InputHandler(self, self.display, self.connection) + self.inputHandler.readCommands(keybindings) + + self.controlsString = self.inputHandler.getDocs() self.display.showInfo(self.controlsString) @@ -38,15 +36,6 @@ class Client: def send(self, data): self.connection.send(json.dumps(data)) - def getDisplay(self): - return self.display - - def readString(self): - text = self.display.getString() - string = str(text, "utf-8") - if string: - self.connection.send(json.dumps(["input", ["say", string]])) - def start(self): threading.Thread(target=self.listen, daemon=True).start() self.connection.send(json.dumps(["name", self.name])) @@ -126,8 +115,7 @@ class Client: keyname = str(curses.keyname(key), "utf-8") except ValueError: continue - if keyname in self.commands: - self.commands[keyname](self) + self.inputHandler.onKey(keyname) |
