# HG changeset patch # User Simon Cross # Date 1251655890 0 # Node ID 7584453f494452eb7dfc2f618ce5d5a0dfe645b1 # Parent df537fecf84443037ec715d8c1d2e593d768dfe3 Add support for PNG tiles. diff -r df537fecf844 -r 7584453f4944 gamelib/gameboard.py --- a/gamelib/gameboard.py Sun Aug 30 18:00:44 2009 +0000 +++ b/gamelib/gameboard.py Sun Aug 30 18:11:30 2009 +0000 @@ -1,9 +1,9 @@ import random -from pgu import gui, tilevid from pygame.locals import MOUSEBUTTONDOWN import data +import tiles class GameBoard(object): @@ -11,12 +11,14 @@ TOOLBAR_WIDTH = 22 def __init__(self): - self.tv = tilevid.Tilevid() + self.tv = tiles.FarmVid() self.tv.tga_load_tiles(data.filepath('tiles.tga'), self.TILE_DIMENSIONS) + self.tv.png_folder_load_tiles(data.filepath('tiles')) self.tv.tga_load_level(data.filepath('level1.tga')) - self.tools = tilevid.Tilevid() + self.tools = tiles.FarmVid() self.tools.tga_load_tiles(data.filepath('tiles.tga'), self.TILE_DIMENSIONS) + self.tools.png_folder_load_tiles(data.filepath('tiles')) self.populate_toolbar() self.selected_tool = None diff -r df537fecf844 -r 7584453f4944 gamelib/tiles.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gamelib/tiles.py Sun Aug 30 18:11:30 2009 +0000 @@ -0,0 +1,37 @@ +"""Extension to pgu's tilevid.""" + +from pgu import tilevid, vid +import pygame +import os + +TILE_MAP = { + 0: "woodland", + 1: "grassland", + 2: "fence", + 3: "henhouse", + 4: "chicken", +} + +REVERSE_TILE_MAP = dict((v, k) for k, v in TILE_MAP.iteritems()) + +class FarmVid(tilevid.Tilevid): + """Extension of pgu's TileVid class to handle the complications + of raising chickens. + """ + def __init__(self): + tilevid.Tilevid.__init__(self) + + def png_folder_load_tiles(self, path): + """Load tiles from a folder of PNG files.""" + for dirpath, dirnames, filenames in os.walk(path): + for filename in filenames: + basename, ext = os.path.splitext(filename) + if ext != ".png": + continue + if basename in REVERSE_TILE_MAP: + n = REVERSE_TILE_MAP[basename] + img = pygame.image.load(os.path.join(dirpath, filename)).convert_alpha() + self.tiles[n] = FarmTile(img) + +class FarmTile(vid.Tile): + pass