Display some info about the current tile
[naja.git] / naja / widgets / info_area.py
index e0789ef47f45767f86b9b0e64358153b70b1257e..906e9d57d39d850e254f4e32bfb1e0c1f918d211 100644 (file)
@@ -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.rect)
+        surface.blit(self.surface, self.pos)