summaryrefslogtreecommitdiff
path: root/asciifarm/client/display/fieldpad.py
diff options
context:
space:
mode:
authortroido <troido@hotmail.com>2018-01-17 20:26:16 +0100
committertroido <troido@hotmail.com>2018-01-17 20:26:16 +0100
commitf72c658220a78ec058ceca25118e3e9a499a6c2b (patch)
tree2a965a693d95f0ee651732ddc47b7e22bd188030 /asciifarm/client/display/fieldpad.py
parent0bed6616326348b41c6a907552fff62956ce6f18 (diff)
updated maps and refactored client: renamed display parts and removed selector
Diffstat (limited to 'asciifarm/client/display/fieldpad.py')
-rw-r--r--asciifarm/client/display/fieldpad.py72
1 files changed, 0 insertions, 72 deletions
diff --git a/asciifarm/client/display/fieldpad.py b/asciifarm/client/display/fieldpad.py
deleted file mode 100644
index f64634e..0000000
--- a/asciifarm/client/display/fieldpad.py
+++ /dev/null
@@ -1,72 +0,0 @@
-
-import curses
-
-
-class FieldPad:
-
-
- def __init__(self, size=(1,1), charSize=1, colours=False):
- self.pad = curses.newpad(size[1]+1, (size[0]+1)*charSize)
- self.size = size
- self.charSize = charSize
- 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()
- win = self.widget.getWin()
- if win:
- win.erase()
- win.noutrefresh()
-
- def changeCell(self, x, y, sprites):
- """ sprites must always have at least one element """
- char, colour, bgcolour = sprites[0]
- if bgcolour is None:
- for (ch, co, bg) in sprites:
- if bg is not None:
- bgcolour = bg
- break
- else:
- bgcolour = 0
- if colour is not None and self.colours:
- 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()
-
- def setCenter(self, pos):
- self.center = pos
- self.widget.change()
-
- def getWidth(self):
- return self.size[0]*self.charSize
-
- def getHeight(self):
- return self.size[1]
-
- def _roundWidth(self, x):
- return x // self.charSize * self.charSize
-
- def update(self):
- win = self.widget.getWin()
- width, height = win.getSize()
- x, y = win.getPos()
- xmax = x + width
- ymax = y + height
- self.pad.noutrefresh(
- max(0, min(self.getHeight()-height, self.center[1] - int(height/2))),
- max(0, min(
- self._roundWidth(self.getWidth()-width),
- self._roundWidth(self.center[0]*self.charSize - int(width/2)))),
- y,
- x + max(0, (width - self.getWidth()) // 2),
- ymax,
- xmax)