summaryrefslogtreecommitdiff
path: root/asciifarm/client/commandhandler.py
diff options
context:
space:
mode:
Diffstat (limited to 'asciifarm/client/commandhandler.py')
-rw-r--r--asciifarm/client/commandhandler.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/asciifarm/client/commandhandler.py b/asciifarm/client/commandhandler.py
index 0b5351a..1f5177b 100644
--- a/asciifarm/client/commandhandler.py
+++ b/asciifarm/client/commandhandler.py
@@ -24,6 +24,9 @@ class CommandHandler:
"selectwidget": self.selectWidget,
"selectitem": self.selectItem,
"inputwithselected": self.actWithSelected,
+ "use": self.useSelected,
+ "unuse": self.unUseSelected,
+ "take": self.takeSelected,
"eval": self.eval,
"exec": self.exec,
"scrollchat": self.scrollChat,
@@ -82,6 +85,37 @@ class CommandHandler:
def actWithSelected(self, action, widget):
self.input([action, self.client.display.getWidget(widget).getSelected()])
+ def useSelected(self):
+ widget = self.client.display.getWidget("switch").getSelectedItem()
+ selected = widget.getImpl().getSelected()
+ if widget.name in ("inventory", "equipment"):
+ action = "use"
+ elif widget.name == "ground":
+ action = "interact",
+ else:
+ return
+ self.input([action, selected])
+
+ def unUseSelected(self):
+ widget = self.client.display.getWidget("switch").getSelectedItem()
+ selected = widget.getImpl().getSelected()
+ if widget.name == "inventory":
+ action = "drop"
+ elif widget.name == "equipment":
+ action = "unequip"
+ else:
+ return
+ self.input([action, selected])
+
+ def takeSelected(self):
+ widget = self.client.display.getWidget("switch").getSelectedItem()
+ selected = widget.getImpl().getSelected()
+ if widget.name == "ground":
+ action = "take"
+ else:
+ return
+ self.input([action, selected])
+
def eval(self, *texts):
text = " ".join(texts)
self.log(eval(text, {"self": self, "client": self.client, "connection": self.client.connection, "display": self.client.display}))