From e03f6096b3fdd75575ff12a2bc98205b8069b043 Mon Sep 17 00:00:00 2001 From: troido Date: Thu, 19 Apr 2018 00:10:47 +0200 Subject: tab now returns to game keeping entered string; / starts string with text / --- asciifarm/client/commandhandler.py | 4 ++-- asciifarm/client/inputhandler.py | 11 ++++++++++- asciifarm/keybindings/azerty.json | 3 ++- asciifarm/keybindings/keybindings.json | 3 ++- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/asciifarm/client/commandhandler.py b/asciifarm/client/commandhandler.py index ebb773e..550484c 100644 --- a/asciifarm/client/commandhandler.py +++ b/asciifarm/client/commandhandler.py @@ -61,8 +61,8 @@ class CommandHandler: for action in actions: self.execute(action) - def runInput(self): - self.client.inputHandler.startTyping() + def runInput(self, startText=""): + self.client.inputHandler.startTyping(startText) def select(self, widget, value, relative=False, modular=False): self.client.display.getWidget(widget).select(value, relative, modular) diff --git a/asciifarm/client/inputhandler.py b/asciifarm/client/inputhandler.py index 5296f9d..1db594d 100644 --- a/asciifarm/client/inputhandler.py +++ b/asciifarm/client/inputhandler.py @@ -41,8 +41,12 @@ class InputHandler: else: self.commandHandler.chat(message) - def startTyping(self): + def startTyping(self, startText=""): self.typing = True + if startText and not self.string: + self.string = startText + self.cursor = len(self.string) + self.showString() def showString(self): @@ -67,15 +71,20 @@ class InputHandler: self.cursor = len(self.string) elif key == curses.ascii.ESC or key == curses.KEY_DL: + # throw away entered string and go back to game self.typing = False self.string = "" self.cursor = 0 elif key == curses.ascii.LF or key == curses.ascii.CR: + # process entered string and reset it message = self.string self.string = "" self.cursor = 0 self.typing = False self.processString(message) + elif key == curses.ascii.TAB: + # return to game but keep entered string + self.typing = False self.showString() diff --git a/asciifarm/keybindings/azerty.json b/asciifarm/keybindings/azerty.json index 32664af..547a181 100644 --- a/asciifarm/keybindings/azerty.json +++ b/asciifarm/keybindings/azerty.json @@ -40,7 +40,8 @@ "t": ["runinput"], "NEWLINE": ["runinput"], "KEY_PPAGE": ["scrollchat", 1], -"KEY_NPAGE": ["scrollchat", -1] +"KEY_NPAGE": ["scrollchat", -1], +"/": ["runinput", "/"] }, "help": "Controls:\n zqsd or arrows:\n Move around\n e: Grab\n q: Drop\n E: Use/Equip\n r: Interact\n f: Attack\n t: Chat\n w: Unequip\n xcv: scroll\n ctrl-c: close client" } diff --git a/asciifarm/keybindings/keybindings.json b/asciifarm/keybindings/keybindings.json index 7e58dd2..f43515e 100644 --- a/asciifarm/keybindings/keybindings.json +++ b/asciifarm/keybindings/keybindings.json @@ -40,7 +40,8 @@ "t": ["runinput"], "NEWLINE": ["runinput"], "KEY_PPAGE": ["scrollchat", 1], -"KEY_NPAGE": ["scrollchat", -1] +"KEY_NPAGE": ["scrollchat", -1], +"/": ["runinput", "/"] }, "help": "Controls:\n wasd or arrows:\n Move around\n e: Grab\n q: Drop\n E: Use/Equip\n r: Interact\n f: Attack\n t: Chat\n z: Unequip\n xcv: scroll\n ctrl-c: close client" } -- cgit