Changeset 65:bcf3d0b2a6d8


Ignore:
Timestamp:
Apr 3, 2011, 8:46:25 PM (9 years ago)
Author:
Jeremy Thurgood <firxen@…>
Branch:
default
Message:

Some tile parameters.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • skaapsteker/level.py

    r64 r65  
    1414    def __init__(self, dirname):
    1515        self.dirname = 'tiles/' + dirname
     16        self.tile_factories = {
     17            '.': lambda pos: None,
     18            '-': self.tile_factory('floor.png', True),
     19            'X': self.tile_factory('solid.png', True, True),
     20            '<': self.tile_factory('floor-cap-w.png', True),
     21            '>': self.tile_factory('floor-cap-e.png', True),
     22            '=': self.tile_factory('floor-cnr-l.png'),
     23            '+': self.tile_factory('floor-cnr-r.png'),
     24            '(': self.tile_factory('solid-cap-w.png', True, True),
     25            ')': self.tile_factory('solid-cap-e.png', True, True),
     26            'q': self.tile_factory('solid-cap-ne.png', True, True),
     27            'd': self.tile_factory('solid-cap-se.png', True, True),
     28            'p': self.tile_factory('solid-cap-nw.png', True, True),
     29            'b': self.tile_factory('solid-cap-sw.png', True, True),
     30            '{': self.tile_factory('solid-cnr-l.png'),
     31            '}': self.tile_factory('solid-cnr-r.png'),
     32            }
    1633
    1734
    1835    def get_tile(self, tilechar, pos):
    19         if tilechar == '.':
    20             return None
    21         return Geography(pos, self.get_image(tilechar))
     36        return self.tile_factories[tilechar](pos)
    2237
    2338
    24     def get_image(self, tilechar):
    25         image_name = {
    26             '-': 'floor.png',
    27             'X': 'solid.png',
    28             '<': 'floor-cap-w.png',
    29             '>': 'floor-cap-e.png',
    30             '=': 'floor-cnr-l.png',
    31             '+': 'floor-cnr-r.png',
    32             '(': 'solid-cap-w.png',
    33             ')': 'solid-cap-e.png',
    34             'q': 'solid-cap-ne.png',
    35             'd': 'solid-cap-se.png',
    36             'p': 'solid-cap-nw.png',
    37             'b': 'solid-cap-sw.png',
    38             '{': 'solid-cnr-l.png',
    39             '}': 'solid-cnr-r.png',
    40             }[tilechar]
    41         image_file = self.dirname + '/' + image_name
    42         return data.load_image(image_file)
     39    def tile_factory(self, image_name, floor=False, block=False, foreground=False):
     40        image = data.load_image(self.dirname + '/' + image_name)
     41        def _tilefac(pos):
     42            tile = Geography(pos, image)
     43            tile.block = block
     44            tile.floor = floor
     45            tile.foreground = foreground
     46            return tile
     47        return _tilefac
    4348
    4449
Note: See TracChangeset for help on using the changeset viewer.