X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fwidgets%2Ftile.py;h=4a88e121fb01dfeb688ec68c119e7e52b6a0595d;hb=67e79ba3fbe96590efa50a73fe983c2810efdd0f;hp=6750584f071f1587052f09396964bdd5c8eae2fd;hpb=be75518bbe5076736a7a1c75d981449b5ca8d016;p=naja.git diff --git a/naja/widgets/tile.py b/naja/widgets/tile.py index 6750584..4a88e12 100644 --- a/naja/widgets/tile.py +++ b/naja/widgets/tile.py @@ -1,15 +1,50 @@ -#from naja.constants import TILE_SIZE -from naja.widgets.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): - super(TileWidget, self).__init__(pos, (96, 96)) + def __init__(self, pos, state=None, board_pos=None): + super(TileWidget, self).__init__(pos, TILE_SIZE) + self.state = state + self.board_pos = board_pos def prepare(self): - pass + # Placeholder logic - just draw the outline of a square + self.surface = pygame.surface.Surface(TILE_SIZE) + 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)