From 44c26befaab94781e35d159db82d875bff2ed31e Mon Sep 17 00:00:00 2001 From: troido Date: Tue, 2 Jan 2018 21:26:46 +0100 Subject: keybindings are now executed a bit smarter as hy code --- asciifarm/client/gameclient.py | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'asciifarm/client/gameclient.py') 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) -- cgit