From 3a8afeb369d4ef66c9b991e64febe66a35338177 Mon Sep 17 00:00:00 2001 From: Wango Fett Date: Thu, 26 Oct 2017 17:05:49 +0000 Subject: Pip installable! --- asciifarm/client/display/screen.py | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 asciifarm/client/display/screen.py (limited to 'asciifarm/client/display/screen.py') diff --git a/asciifarm/client/display/screen.py b/asciifarm/client/display/screen.py new file mode 100644 index 0000000..ec49d34 --- /dev/null +++ b/asciifarm/client/display/screen.py @@ -0,0 +1,44 @@ + +import curses +from .fieldpad import FieldPad + +import signal + +SIDEWIDTH = 20 +HEALTHHEIGHT = 1 + +class Screen: + + + def __init__(self, stdscr, maxSize=(float("inf"),float("inf")), charSize=1): + curses.curs_set(0) + self.stdscr = stdscr + self.height, self.width = self.stdscr.getmaxyx() + self.changed = False + signal.signal(signal.SIGWINCH, self.updateSize) + + def updateSize(self, *args): + curses.endwin() + curses.initscr() + self.height, self.width = self.stdscr.getmaxyx() + self.stdscr.clear() + self.change() + + def getWidth(self): + return self.width + + def getHeight(self): + return self.height + + def change(self): + self.changed = True + + def update(self, fieldPad, infoPad, healthPad): + if self.changed: + fieldEnd = min(fieldPad.getWidth(), self.getWidth()-SIDEWIDTH-1) + fieldPad.update(self, 0,0,fieldEnd, min(fieldPad.getHeight(), self.getHeight())) + healthPad.update(self, fieldEnd+1,0, self.getWidth(), HEALTHHEIGHT) + infoPad.update(self, fieldEnd+1,HEALTHHEIGHT, self.getWidth(), self.getHeight()) + curses.doupdate() + self.changed = False + -- cgit