diff options
| -rw-r--r-- | asciifarm/client/display/display.py | 10 | ||||
| -rw-r--r-- | asciifarm/client/display/field.py | 14 | ||||
| -rw-r--r-- | asciifarm/client/display/health.py | 10 | ||||
| -rw-r--r-- | asciifarm/client/display/info.py | 9 | ||||
| -rw-r--r-- | asciifarm/client/display/inventory.py | 12 | ||||
| -rw-r--r-- | asciifarm/client/display/messages.py | 13 | ||||
| -rw-r--r-- | asciifarm/client/display/textinput.py | 11 |
7 files changed, 31 insertions, 48 deletions
diff --git a/asciifarm/client/display/display.py b/asciifarm/client/display/display.py index da76b95..e681945 100644 --- a/asciifarm/client/display/display.py +++ b/asciifarm/client/display/display.py @@ -68,11 +68,11 @@ class Display: self.update() def addWidget(self, w, name, winname=None): - if not winname: - winname = name - widget = Widget(w) - self.widgets[name] = widget - widget.setWin(winname, self.screen) + if not winname: + winname = name + widget = Widget(w) + self.widgets[name] = widget + widget.setWin(winname, self.screen) def getWidget(self, name): if name in self.widgets: diff --git a/asciifarm/client/display/field.py b/asciifarm/client/display/field.py index d18516d..712169e 100644 --- a/asciifarm/client/display/field.py +++ b/asciifarm/client/display/field.py @@ -1,8 +1,8 @@ import curses +from .widimp import WidImp - -class Field: +class Field(WidImp): def __init__(self, size=(1,1), charSize=1, colours=False): @@ -12,15 +12,11 @@ class Field: self.center = (0, 0) self.colours = colours self.changed = False - self.widget = None - - def setWidget(self, widget): - self.widget = widget def resize(self, width, height): self.size = (width, height) self.pad.resize(height+1, width*self.charSize) - self.widget.change() + self.change() def changeCell(self, x, y, sprites): """ sprites must always have at least one element """ @@ -37,11 +33,11 @@ class Field: self.pad.addstr(y, x*self.charSize, char, self.colours.get(colour, bgcolour)) else: self.pad.addstr(y, x*self.charSize, char) - self.widget.change() + self.change() def setCenter(self, pos): self.center = pos - self.widget.change() + self.change() def getWidth(self): return self.size[0]*self.charSize diff --git a/asciifarm/client/display/health.py b/asciifarm/client/display/health.py index 3a3595b..3f149ea 100644 --- a/asciifarm/client/display/health.py +++ b/asciifarm/client/display/health.py @@ -1,6 +1,8 @@ -class Health: +from .widimp import WidImp + +class Health(WidImp): def __init__(self, char=('@',7,0), emptyChar=('-',7,0), colours=False): self.char = char @@ -9,15 +11,11 @@ class Health: self.colours = colours self.health = 0 self.maxHealth = 0 - self.widget = None - - def setWidget(self, widget): - self.widget = widget def setHealth(self, health, maxHealth): self.health = health or 0 self.maxHealth = maxHealth or 0 - self.widget.change() + self.change() def update(self, win): width, height = win.getSize() diff --git a/asciifarm/client/display/info.py b/asciifarm/client/display/info.py index e049b83..599627c 100644 --- a/asciifarm/client/display/info.py +++ b/asciifarm/client/display/info.py @@ -1,21 +1,18 @@ +from .widimp import WidImp -class Info: +class Info(WidImp): def __init__(self): self.changed = False self.lines = [] - self.widget = None self.lastString = None - def setWidget(self, widget): - self.widget = widget - def showString(self, string): if string == self.lastString: return self.lines = string.split('\n') - self.widget.change() + self.change() self.lastString = string def update(self, win): diff --git a/asciifarm/client/display/inventory.py b/asciifarm/client/display/inventory.py index f2ef19d..06cc633 100644 --- a/asciifarm/client/display/inventory.py +++ b/asciifarm/client/display/inventory.py @@ -1,17 +1,15 @@ from asciifarm.common import utils -class Inventory: +from .widimp import WidImp + +class Inventory(WidImp): def __init__(self, title): self.title = title - self.widget = None self.items = [] self.selector = 0 - def setWidget(self, widget): - self.widget = widget - def getSelected(self): return self.selector @@ -27,12 +25,12 @@ class Inventory: value = invLen-1 if value in range(invLen): self.selector = value - self.widget.change() + self.change() def setInventory(self, items): self.items = items self.selector = utils.clamp(self.selector, 0, len(items)-1) - self.widget.change() + self.change() def setTitle(self, title): self.title = title diff --git a/asciifarm/client/display/messages.py b/asciifarm/client/display/messages.py index 356b8e2..19cbc5d 100644 --- a/asciifarm/client/display/messages.py +++ b/asciifarm/client/display/messages.py @@ -1,22 +1,20 @@ import textwrap -class Messages(): +from .widimp import WidImp + +class Messages(WidImp): def __init__(self): self.changed = False self.messages = [] - self.widget = None self.scrolledBack = 0 - def setWidget(self, widget): - self.widget = widget - def addMessage(self, message): self.messages.append(message) if self.scrolledBack: self.scrolledBack += 1 - self.widget.change() + self.change() def scroll(self, amount, relative=True): if relative: @@ -24,8 +22,7 @@ class Messages(): else: self.scrolledBack = amount self.scrolledBack = max(self.scrolledBack, 0) - self.widget.update() - self.widget.doUpdate() + self.change() def update(self, win): width, height = win.getSize() diff --git a/asciifarm/client/display/textinput.py b/asciifarm/client/display/textinput.py index 3b5def2..cb0ed61 100644 --- a/asciifarm/client/display/textinput.py +++ b/asciifarm/client/display/textinput.py @@ -1,20 +1,17 @@ import curses +from .widimp import WidImp -class TextInput: +class TextInput(WidImp): def __init__(self): - self.widget = None self.text = "" self.cursor = 0 - - def setWidget(self, widget): - self.widget = widget - + def setText(self, text, cursor): self.text = text self.cursor = cursor - self.widget.change() + self.change() def update(self, win): width, height = win.getSize() |
