Mercurial > skaapsteker
changeset 65:bcf3d0b2a6d8
Some tile parameters.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 03 Apr 2011 22:46:25 +0200 |
parents | 13b9031febeb |
children | 12ec95a2e8ea |
files | skaapsteker/level.py |
diffstat | 1 files changed, 27 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/skaapsteker/level.py Sun Apr 03 22:38:10 2011 +0200 +++ b/skaapsteker/level.py Sun Apr 03 22:46:25 2011 +0200 @@ -13,33 +13,38 @@ class TileSet(object): def __init__(self, dirname): self.dirname = 'tiles/' + dirname + self.tile_factories = { + '.': lambda pos: None, + '-': self.tile_factory('floor.png', True), + 'X': self.tile_factory('solid.png', True, True), + '<': self.tile_factory('floor-cap-w.png', True), + '>': self.tile_factory('floor-cap-e.png', True), + '=': self.tile_factory('floor-cnr-l.png'), + '+': self.tile_factory('floor-cnr-r.png'), + '(': self.tile_factory('solid-cap-w.png', True, True), + ')': self.tile_factory('solid-cap-e.png', True, True), + 'q': self.tile_factory('solid-cap-ne.png', True, True), + 'd': self.tile_factory('solid-cap-se.png', True, True), + 'p': self.tile_factory('solid-cap-nw.png', True, True), + 'b': self.tile_factory('solid-cap-sw.png', True, True), + '{': self.tile_factory('solid-cnr-l.png'), + '}': self.tile_factory('solid-cnr-r.png'), + } def get_tile(self, tilechar, pos): - if tilechar == '.': - return None - return Geography(pos, self.get_image(tilechar)) + return self.tile_factories[tilechar](pos) - def get_image(self, tilechar): - image_name = { - '-': 'floor.png', - 'X': 'solid.png', - '<': 'floor-cap-w.png', - '>': 'floor-cap-e.png', - '=': 'floor-cnr-l.png', - '+': 'floor-cnr-r.png', - '(': 'solid-cap-w.png', - ')': 'solid-cap-e.png', - 'q': 'solid-cap-ne.png', - 'd': 'solid-cap-se.png', - 'p': 'solid-cap-nw.png', - 'b': 'solid-cap-sw.png', - '{': 'solid-cnr-l.png', - '}': 'solid-cnr-r.png', - }[tilechar] - image_file = self.dirname + '/' + image_name - return data.load_image(image_file) + def tile_factory(self, image_name, floor=False, block=False, foreground=False): + image = data.load_image(self.dirname + '/' + image_name) + def _tilefac(pos): + tile = Geography(pos, image) + tile.block = block + tile.floor = floor + tile.foreground = foreground + return tile + return _tilefac