summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortroido <troido@hotmail.com>2018-04-19 00:10:47 +0200
committertroido <troido@hotmail.com>2018-04-19 00:10:47 +0200
commite03f6096b3fdd75575ff12a2bc98205b8069b043 (patch)
treecca413207c6bbd837e8690ad23f56e713ebef895
parent1bf981b4836dc7d48535fcfcdf0d1a4e6d8ffb84 (diff)
tab now returns to game keeping entered string; / starts string with text /
-rw-r--r--asciifarm/client/commandhandler.py4
-rw-r--r--asciifarm/client/inputhandler.py11
-rw-r--r--asciifarm/keybindings/azerty.json3
-rw-r--r--asciifarm/keybindings/keybindings.json3
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"
}