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.py22
1 files changed, 9 insertions, 13 deletions
diff --git a/asciifarm/client/gameclient.py b/asciifarm/client/gameclient.py
index 9903533..69380db 100644
--- a/asciifarm/client/gameclient.py
+++ b/asciifarm/client/gameclient.py
@@ -12,8 +12,8 @@ from .display.screen import Screen
import string
from .display.display import Display
-import hy
-from .inputhandling import InputHandler
+from .inputhandler import InputHandler
+from .keynames import nameFromKey
class Client:
@@ -26,9 +26,9 @@ class Client:
self.logFile = logFile
self.inputHandler = InputHandler(self, self.display, self.connection)
- self.inputHandler.readCommands(keybindings)
+ self.keybindings = keybindings["actions"]
- self.controlsString = self.inputHandler.getDocs()
+ self.controlsString = keybindings.get("help", "")
self.display.showInfo(self.controlsString)
@@ -106,26 +106,22 @@ class Client:
self.display.update()
def log(self, text):
+ if not isinstance(text, str):
+ text = str(text)
self.display.addMessage(text)
if self.logFile:
with(open(self.logFile, 'a')) as f:
f.write(text+'\n')
- def nameFromKey(self, keynum): # this probably belongs in inputhandler...
- prenamed = {
- 10: "KEY_ENTER"
- }
- if keynum in prenamed:
- return prenamed[keynum]
- return str(curses.keyname(keynum), "utf-8")
-
def command_loop(self):
while self.keepalive:
key = self.stdscr.getch()
if key == 27:
self.keepalive = False
return
- self.inputHandler.onKey(key)
+ keyName = nameFromKey(key)
+ if keyName in self.keybindings:
+ self.inputHandler.execute(self.keybindings[keyName])