summaryrefslogtreecommitdiff
path: root/asciifarm/client/gameclient.py
diff options
context:
space:
mode:
Diffstat (limited to 'asciifarm/client/gameclient.py')
-rw-r--r--asciifarm/client/gameclient.py24
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)