From: Neil Date: Tue, 13 May 2014 13:41:53 +0000 (+0200) Subject: Display some info about the current tile X-Git-Tag: 0.1~340 X-Git-Url: https://git.ctpug.org.za/?a=commitdiff_plain;ds=sidebyside;h=6cb822e79f40bf9708d0034d0816e8310e423431;p=naja.git Display some info about the current tile --- diff --git a/naja/scenes/game.py b/naja/scenes/game.py index 1f95a77..cca363f 100644 --- a/naja/scenes/game.py +++ b/naja/scenes/game.py @@ -23,7 +23,7 @@ class GameScene(Scene): self.add(PlayerBitsWidget((0, 0), state)) self.add(BoardWidget((0, 60), state)) self.add(GameBitsWidget((0, 540), state)) - self.add(InfoAreaWidget((480, 0))) + self.add(InfoAreaWidget((480, 0), state)) self.add(RobotWidget(state)) def handle_scene_event(self, ev): diff --git a/naja/widgets/info_area.py b/naja/widgets/info_area.py index ee9fccf..906e9d5 100644 --- a/naja/widgets/info_area.py +++ b/naja/widgets/info_area.py @@ -1,22 +1,49 @@ """ Widget for the game board information area. """ +import pygame -from naja.constants import INFO_SIZE +from naja.constants import INFO_SIZE, EIGHT_BIT_SCALE +from naja.resources import resources +from naja.resources.mutators import EIGHT_BIT from naja.widgets.base import Widget +from naja.widgets.tile import BIT_MAP +from naja.widgets.text import TextBoxWidget class InfoAreaWidget(Widget): """ Widget for the game board information area. """ - def __init__(self, pos, image=None): + def __init__(self, pos, state): super(InfoAreaWidget, self).__init__(pos, INFO_SIZE) + self.card = None + self.state = state def prepare(self): - pass + self.surface = pygame.surface.Surface(INFO_SIZE) + self.surface.fill((0, 0, 0)) + # Quick hack for testing + self.card = self.state.board_locations[self.state.player.position] + # Extract actions and such from the card + y_offset = 0 + for action in self.card.actions: + if action.required_bits: + img_name = BIT_MAP[action.required_bits].replace('.png', '_small.png') + img = resources.get_image(img_name, + transforms=(EIGHT_BIT,)) + self.surface.blit(img, (0, y_offset)) + y_offset += 8 + text = TextBoxWidget((12, y_offset), action.TEXT, + box_width= (INFO_SIZE[0] - 12) // EIGHT_BIT_SCALE, + fontsize = 28, padding = 4) + text.render(self.surface) + y_offset += text.surface.get_rect().height + 16 + + + def set_card(self, card): + self.card = card def draw(self, surface): - pass - #surface.blit(self.surface, self.pos) + surface.blit(self.surface, self.pos)