diff options
Diffstat (limited to 'asciifarm/client/display')
| -rw-r--r-- | asciifarm/client/display/display.py | 34 | ||||
| -rw-r--r-- | asciifarm/client/display/field.py (renamed from asciifarm/client/display/fieldpad.py) | 2 | ||||
| -rw-r--r-- | asciifarm/client/display/health.py (renamed from asciifarm/client/display/healthpad.py) | 2 | ||||
| -rw-r--r-- | asciifarm/client/display/info.py (renamed from asciifarm/client/display/infopad.py) | 6 | ||||
| -rw-r--r-- | asciifarm/client/display/inventory.py (renamed from asciifarm/client/display/inventorypad.py) | 22 | ||||
| -rw-r--r-- | asciifarm/client/display/messages.py (renamed from asciifarm/client/display/messagepad.py) | 2 | ||||
| -rw-r--r-- | asciifarm/client/display/screen.py | 1 | ||||
| -rw-r--r-- | asciifarm/client/display/selector.py | 25 |
8 files changed, 34 insertions, 60 deletions
diff --git a/asciifarm/client/display/display.py b/asciifarm/client/display/display.py index 8cf7d32..8056a14 100644 --- a/asciifarm/client/display/display.py +++ b/asciifarm/client/display/display.py @@ -1,13 +1,13 @@ import curses -from .fieldpad import FieldPad -from .infopad import InfoPad -from .healthpad import HealthPad -from .inventorypad import InventoryPad +from .field import Field +from .info import Info +from .health import Health +from .inventory import Inventory from .screen import Screen from .colours import Colours -from .messagepad import MessagePad +from .messages import Messages from .textinput import TextInput from .widget import Widget @@ -43,17 +43,17 @@ class Display: self.widgets = {} - self.addWidget(FieldPad((1, 1), charMap.get("charwidth", 1), self.colours), "field") - self.addWidget(InfoPad(), "info") - self.addWidget(HealthPad( + self.addWidget(Field((1, 1), charMap.get("charwidth", 1), self.colours), "field") + self.addWidget(Info(), "info") + self.addWidget(Health( charMap.get("healthfull", ("@",7, 2)), charMap.get("healthempty", ("-",7, 1)), self.colours), "health") - self.addWidget(InventoryPad("Inventory"), "inventory") - self.addWidget(InventoryPad("Ground"), "ground") - self.addWidget(InventoryPad("Equipment"), "equipment") - self.addWidget(MessagePad(), "msg") + self.addWidget(Inventory("Inventory"), "inventory") + self.addWidget(Inventory("Ground"), "ground") + self.addWidget(Inventory("Equipment"), "equipment") + self.addWidget(Messages(), "msg") self.addWidget(TextInput(), "textinput") self.lastinfostring = None @@ -61,10 +61,10 @@ class Display: self.forced = False self.update() - def addWidget(self, pad, name, winname=None): + def addWidget(self, w, name, winname=None): if not winname: winname = name - widget = Widget(pad) + widget = Widget(w) self.widgets[name] = widget widget.setWin(winname, self.screen) @@ -114,12 +114,6 @@ class Display: def setGround(self, items): self.getWidget("ground").setInventory(items) - - def getSelector(self, name): - widget = self.getWidget(name) - if not widget or not hasattr(widget, "getSelector"): - return None - return widget.getSelector() def addMessage(self, message): diff --git a/asciifarm/client/display/fieldpad.py b/asciifarm/client/display/field.py index f64634e..c38a82b 100644 --- a/asciifarm/client/display/fieldpad.py +++ b/asciifarm/client/display/field.py @@ -2,7 +2,7 @@ import curses -class FieldPad: +class Field: def __init__(self, size=(1,1), charSize=1, colours=False): diff --git a/asciifarm/client/display/healthpad.py b/asciifarm/client/display/health.py index 7b756a5..10d6594 100644 --- a/asciifarm/client/display/healthpad.py +++ b/asciifarm/client/display/health.py @@ -1,7 +1,7 @@ import curses -class HealthPad: +class Health: def __init__(self, char=('@',7,0), emptyChar=('-',7,0), colours=False): self.char = char diff --git a/asciifarm/client/display/infopad.py b/asciifarm/client/display/info.py index 974e3fc..da23ac1 100644 --- a/asciifarm/client/display/infopad.py +++ b/asciifarm/client/display/info.py @@ -1,11 +1,7 @@ import curses - - -class InfoPad: - - +class Info: def __init__(self): self.changed = False diff --git a/asciifarm/client/display/inventorypad.py b/asciifarm/client/display/inventory.py index fd600e6..0db9037 100644 --- a/asciifarm/client/display/inventorypad.py +++ b/asciifarm/client/display/inventory.py @@ -1,14 +1,13 @@ import curses -from .selector import Selector -class InventoryPad: +class Inventory: def __init__(self, title): self.title = title - self.selector = Selector(self) self.widget = None self.items = [] + self.selector = 0 def setWidget(self, widget): self.widget = widget @@ -16,8 +15,19 @@ class InventoryPad: def getSelector(self): return self.selector - def change(self): - self.widget.change() + def select(self, value, relative=False, modular=False): + invLen = len(self.items) + if relative: + value += self.selector + if modular and invLen: + value %= invLen + if value < 0: + value = 0 + if value >= invLen: + value = invLen-1 + if value in range(invLen): + self.selector = value + self.widget.change() def setInventory(self, items): self.items = items @@ -33,7 +43,7 @@ class InventoryPad: win = self.widget.getWin() width, height = win.getSize() height -= 1 - selected = self.selector.getValue() + selected = self.selector start = min(selected - height//2, len(self.items)-height) start = max(start, 0) end = start + height diff --git a/asciifarm/client/display/messagepad.py b/asciifarm/client/display/messages.py index 4992b15..e72c831 100644 --- a/asciifarm/client/display/messagepad.py +++ b/asciifarm/client/display/messages.py @@ -2,7 +2,7 @@ import curses import textwrap -class MessagePad(): +class Messages(): def __init__(self): self.changed = False diff --git a/asciifarm/client/display/screen.py b/asciifarm/client/display/screen.py index dd80044..e806b2d 100644 --- a/asciifarm/client/display/screen.py +++ b/asciifarm/client/display/screen.py @@ -1,6 +1,5 @@ import curses -from .fieldpad import FieldPad from asciifarm.common.utils import clamp from .window import Window diff --git a/asciifarm/client/display/selector.py b/asciifarm/client/display/selector.py deleted file mode 100644 index 50e778b..0000000 --- a/asciifarm/client/display/selector.py +++ /dev/null @@ -1,25 +0,0 @@ - - -class Selector: - - - def __init__(self, inventory): - self.value = 0 - self.inventory = inventory - - def getValue(self): - return min(self.value, self.inventory.getNumItems()-1) - - def select(self, value, relative=False, modular=False): - invLen = self.inventory.getNumItems() - if relative: - value += self.value - if modular and invLen: - value %= invLen - if value < 0: - value = 0 - if value >= invLen: - value = invLen-1 - if value in range(invLen): - self.value = value - self.inventory.change() |
