summaryrefslogtreecommitdiff
path: root/asciifarm
diff options
context:
space:
mode:
Diffstat (limited to 'asciifarm')
-rw-r--r--asciifarm/client/display/display.py10
-rw-r--r--asciifarm/client/display/field.py14
-rw-r--r--asciifarm/client/display/health.py10
-rw-r--r--asciifarm/client/display/info.py9
-rw-r--r--asciifarm/client/display/inventory.py12
-rw-r--r--asciifarm/client/display/messages.py13
-rw-r--r--asciifarm/client/display/textinput.py11
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()