diff options
Diffstat (limited to 'asciifarm/client/display/display.py')
| -rw-r--r-- | asciifarm/client/display/display.py | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/asciifarm/client/display/display.py b/asciifarm/client/display/display.py deleted file mode 100644 index 80850b3..0000000 --- a/asciifarm/client/display/display.py +++ /dev/null @@ -1,154 +0,0 @@ - -import curses - -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 .messages import Messages -from .switcher import Switcher -from .textinput import TextInput -from .widget import Widget - -from asciifarm.common.utils import get - - -SIDEWIDTH = 20 - -ALPHABET = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" - -class Display: - - def __init__(self, stdscr, charMap, colours=False): - - if colours and curses.has_colors and curses.COLORS > 1: - self.colours = Colours() - else: - self.colours = None - self.characters = {} - - def parseSprite(sprite): - if isinstance(sprite, str): - return (sprite, None, None) - char = get(sprite, 0, " ") - fg = get(sprite, 1) - bg = get(sprite, 2) - return (char, fg, bg) - for name, sprite in charMap["mapping"].items(): - vals = parseSprite(sprite) - if vals: - self.characters[name] = vals - - for name, colours in charMap.get("writable", {}).items(): - fg = get(colours, 0) - bg = get(colours, 1) - for i in range(min(len(ALPHABET), len(charMap.get("alphabet", [])))): - self.characters[name + '-' + ALPHABET[i]] = (charMap["alphabet"][i], fg, bg) - - self.defaultChar = parseSprite(charMap.get("default", "?")) - screen = Screen(self, stdscr, self.colours) - self.screen = screen - - self.widgets = {} - - 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)) - ), - "health") - self.addWidget(Inventory("Inventory"), "inventory") - self.addWidget(Inventory("Ground"), "ground") - self.addWidget(Inventory("Equipment"), "equipment") - - - #switcher = Switcher([self.widgets["ground"], self.widgets["inventory"], self.widgets["equipment"]], 1) - self.addWidget(Inventory(""), "switch") - self.addWidget(Messages(charMap.get("msgcolours", {})), "msg") - self.addWidget(TextInput(), "textinput") - - self.forced = False - - def addWidget(self, w, name, winname=None): - if not winname: - winname = name - widget = Widget(w, name) - self.widgets[name] = widget - widget.setWin(winname, self.screen) - - def getWidget(self, name): - if name in self.widgets: - return self.widgets[name].getImpl() - else: - return None - - def resizeField(self, size): - self.getWidget("field").resize(*size) - self.forced = True - - def drawFieldCells(self, cells): - field = self.getWidget("field") - for cell in cells: - (x, y), spriteNames = cell - sprites = [self.getChar(spriteName) for spriteName in spriteNames] - if not len(sprites): - sprites = [self.getChar(" ")] - field.changeCell(x, y, sprites) - - - def setFieldCenter(self, pos): - self.getWidget("field").setCenter(pos) - - def setHealth(self, health, maxHealth): - self.getWidget("health").setHealth(health, maxHealth) - - - def showInfo(self, infostring): - self.getWidget("info").showString(infostring) - - - #def setInventory(self, items): - #self.getWidget("inventory").setInventory(items) - - - #def setEquipment(self, slots): - #self.getWidget("equipment").setInventory( - #sorted([ - #slot + ": " + (item if item else "") - #for slot, item in slots.items() - #]) - #) - - #def setGround(self, items): - #self.getWidget("ground").setInventory(items) - - - def addMessage(self, message, type): - self.getWidget("msg").addMessage(message, type) - - def scrollBack(self, amount, relative=True): - self.getWidget("msg").scroll(amount, relative) - - def getChar(self, sprite): - """This returns the character belonging to some spritename. This does not read a character""" - return self.characters.get(sprite, self.defaultChar) - - def setInputString(self, string, cursor): - self.getWidget("textinput").setText(string, cursor) - - def update(self): - changed = False - for widget in self.widgets.values(): - if self.forced or widget.isChanged(): - widget.update() - changed = True - if changed: - self.screen.update() - self.forced = False - - def forceUpdate(self): - self.forced = True - |
