Display some info about the current tile
authorNeil <neil@dip.sun.ac.za>
Tue, 13 May 2014 13:41:53 +0000 (15:41 +0200)
committerNeil <neil@dip.sun.ac.za>
Tue, 13 May 2014 13:41:53 +0000 (15:41 +0200)
naja/scenes/game.py
naja/widgets/info_area.py

index 1f95a77402c53333d9a82489d084022d103b09fb..cca363f797d18b2a4f2774b9f90d530eba0b3260 100644 (file)
@@ -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):
index ee9fccfdb5abd6d422f3855c549718ea4af9e6fe..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.pos)
+        surface.blit(self.surface, self.pos)