summaryrefslogtreecommitdiff
path: root/asciifarm/client/display/display.py
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2019-09-18 12:07:58 +0200
committertroido <troido@protonmail.com>2019-09-18 12:07:58 +0200
commitb95a08c303c08d955142312a72f0e51a5edcffdf (patch)
tree891e612690f6618f85b48dda30a6b89bfa23bf56 /asciifarm/client/display/display.py
parente2ecd2b2c5b6bc2bc1dbce6f669c96707683313d (diff)
cleanup!
Diffstat (limited to 'asciifarm/client/display/display.py')
-rw-r--r--asciifarm/client/display/display.py154
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
-