diff options
Diffstat (limited to 'asciifarm/client/display')
| -rw-r--r-- | asciifarm/client/display/display.py | 9 | ||||
| -rw-r--r-- | asciifarm/client/display/inventory.py | 11 | ||||
| -rw-r--r-- | asciifarm/client/display/screen.py | 19 | ||||
| -rw-r--r-- | asciifarm/client/display/switcher.py | 8 | ||||
| -rw-r--r-- | asciifarm/client/display/widget.py | 7 |
5 files changed, 30 insertions, 24 deletions
diff --git a/asciifarm/client/display/display.py b/asciifarm/client/display/display.py index 1d5f542..0660bb9 100644 --- a/asciifarm/client/display/display.py +++ b/asciifarm/client/display/display.py @@ -63,20 +63,19 @@ class Display: self.addWidget(Inventory("Inventory"), "inventory") self.addWidget(Inventory("Ground"), "ground") self.addWidget(Inventory("Equipment"), "equipment") - self.addWidget(Messages(), "msg") - self.addWidget(TextInput(), "textinput") - switcher = Switcher([self.widgets["ground"], self.widgets["inventory"]], 1) + switcher = Switcher([self.widgets["ground"], self.widgets["inventory"], self.widgets["equipment"]], 1) self.addWidget(switcher, "switch") + self.addWidget(Messages(), "msg") + self.addWidget(TextInput(), "textinput") self.forced = False - self.update() def addWidget(self, w, name, winname=None): if not winname: winname = name - widget = Widget(w) + widget = Widget(w, name) self.widgets[name] = widget widget.setWin(winname, self.screen) diff --git a/asciifarm/client/display/inventory.py b/asciifarm/client/display/inventory.py index 4ad7719..9e62eff 100644 --- a/asciifarm/client/display/inventory.py +++ b/asciifarm/client/display/inventory.py @@ -5,8 +5,9 @@ from .widimp import WidImp class Inventory(WidImp): - def __init__(self, title): + def __init__(self, title, titlebar="{}:"): self.title = title + self.titlebar = titlebar self.items = [] self.selector = 0 @@ -47,7 +48,11 @@ class Inventory(WidImp): def getNumItems(self): return len(self.items) + def itemName(self, item): + return item + def update(self, win): + width, height = win.getSize() height -= 1 selected = self.selector @@ -55,11 +60,11 @@ class Inventory(WidImp): start = max(start, 0) end = start + height win.erase() - win.addLine((0,0), (self.title + ":")[:width]) + win.addLine((0,0), (self.titlebar.format(self.title))[:width]) for i, item in enumerate(self.items[start:end]): if i + start == selected: win.addLine((0, i+1), '*') - win.addLine((1, i+1), item) + win.addLine((1, i+1), self.itemName(item)) if end < len(self.items): win.addLine((width-1, height), "+") if start > 0: diff --git a/asciifarm/client/display/screen.py b/asciifarm/client/display/screen.py index 31b50c8..438e818 100644 --- a/asciifarm/client/display/screen.py +++ b/asciifarm/client/display/screen.py @@ -43,13 +43,11 @@ class Screen: healthY = 0 healthH = self._limitHeight(2, healthY) - groundY = healthY + healthH - groundH = self._limitHeight(6, groundY) - invY = groundY + groundH - invH = self._limitHeight(9, invY) - eqY = invY + invH - eqH = self._limitHeight(5, eqY) - infoY = eqY + eqH + indexY = healthY + healthH + indexH = self._limitHeight(4, indexY) + listY = indexY + indexH + 1 + listH = self._limitHeight(12, listY) + infoY = listY + listH infoH = self._limitHeight(20, infoY) self.windows = { @@ -58,9 +56,10 @@ class Screen: "textinput": self.makeWin(0, inputY, sideX - 1, inputH), "health": self.makeWin(sideX, healthY, sideW, healthH), - "ground": self.makeWin(sideX, groundY, sideW, invH), - "inventory": self.makeWin(sideX, groundY, sideW, invH), - "equipment": self.makeWin(sideX, eqY, sideW, eqH), + "switch": self.makeWin(sideX, indexY, sideW, indexH), + "ground": self.makeWin(sideX, listY, sideW, listH), + "inventory": self.makeWin(sideX, listY, sideW, listH), + "equipment": self.makeWin(sideX, listY, sideW, listH), "info": self.makeWin(sideX, infoY, sideW, infoH) } diff --git a/asciifarm/client/display/switcher.py b/asciifarm/client/display/switcher.py index 196aa88..b62e650 100644 --- a/asciifarm/client/display/switcher.py +++ b/asciifarm/client/display/switcher.py @@ -1,5 +1,5 @@ -from .widimp import WidImp + from .inventory import Inventory class Switcher(Inventory): @@ -8,7 +8,7 @@ class Switcher(Inventory): """ def __init__(self, widgets, initial=0): - Inventory.__init__(self, " ") + Inventory.__init__(self, "", "") self.setInventory(widgets) for wid in widgets: @@ -19,7 +19,11 @@ class Switcher(Inventory): def doSelect(self, value): self.getSelectedItem().hidden = True self.selector = value + self.change() newWid = self.getSelectedItem() newWid.hidden = False newWid.change() + def itemName(self, item): + return item.getImpl().title + diff --git a/asciifarm/client/display/widget.py b/asciifarm/client/display/widget.py index 59bed62..31bb093 100644 --- a/asciifarm/client/display/widget.py +++ b/asciifarm/client/display/widget.py @@ -1,17 +1,16 @@ - - class Widget: - def __init__(self, impl): + def __init__(self, impl, name=None): self.impl = impl - self.impl.setWidget(self) self.win = None self.screen = None self.changed = False self.hidden = False + self.name = name + self.impl.setWidget(self) def setWin(self, win, screen): self.win = win |
