X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Ftile.py;h=4a88e121fb01dfeb688ec68c119e7e52b6a0595d;hb=67e79ba3fbe96590efa50a73fe983c2810efdd0f;hp=1950996aea0dd70391e6986d26d5cd242781fa2b;hpb=7ce9a5e2cbdc5a2dbdea5d000cad3e59628e9720;p=naja.git diff --git a/naja/widgets/tile.py b/naja/widgets/tile.py index 1950996..4a88e12 100644 --- a/naja/widgets/tile.py +++ b/naja/widgets/tile.py @@ -1,18 +1,25 @@ -from naja.constants import TILE_SIZE -from naja.resources import resources - -from .base import Widget - # These will probably need to go away when we have images import pygame import pygame.locals as pgl +from naja.constants import TILE_SIZE, BITS +from naja.resources import resources +from naja.widgets.base import Widget + + +BIT_MAP = { + BITS.CYAN: 'board/tile_cyan.png', + BITS.MAGENTA: 'board/tile_magenta.png', + BITS.YELLOW: 'board/tile_yellow.png', + } + class TileWidget(Widget): """Widget which holds a tile on the game board.""" - def __init__(self, pos, image=None): + def __init__(self, pos, state=None, board_pos=None): super(TileWidget, self).__init__(pos, TILE_SIZE) - self.image = image + self.state = state + self.board_pos = board_pos def prepare(self): # Placeholder logic - just draw the outline of a square @@ -20,7 +27,24 @@ class TileWidget(Widget): pygame.draw.lines(self.surface, pgl.color.THECOLORS['yellow'], True, [(1, 1), (1, 95), (95, 95), (95, 1)], 2) self.surface.convert_alpha(pygame.display.get_surface()) + # Look up the required bits on the board location + card = self.state.board_locations[self.board_pos] + bits = [] + for action in card.actions: + if action.required_bits: + bits.append(action.required_bits) + # Sort so we have longer lists of bits later self.size = self.surface.get_rect().size + if bits: + bits.sort(key=lambda x: len(x)) + y_offset = TILE_SIZE[1] - 32 * len(bits) + for pattern in bits: + x_offset = 10 + for bit in pattern: + img = resources.get_image(BIT_MAP[bit]) + self.surface.blit(img, (x_offset, y_offset)) + x_offset += 32 + y_offset += 32 def draw(self, surface): - surface.blit(self.surface, self.rect) + surface.blit(self.surface, self.pos)