diff options
Diffstat (limited to 'asciifarm/client/commandhandler.py')
| -rw-r--r-- | asciifarm/client/commandhandler.py | 34 |
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})) |
