diff gamelib/gamescreen.py @ 166:0db92b3b5833

Add inventory interactions
author Neil Muller <neil@dip.sun.ac.za>
date Wed, 25 Aug 2010 12:03:08 +0200
parents 5184d30669b5
children 5845a3ed4dad
line wrap: on
line diff
--- a/gamelib/gamescreen.py	Wed Aug 25 11:19:30 2010 +0200
+++ b/gamelib/gamescreen.py	Wed Aug 25 12:03:08 2010 +0200
@@ -22,9 +22,10 @@
     sel_color = Color("yellow")
     sel_width = 2
 
-    def __init__(self, state):
+    def __init__(self, state, scene_widget):
         PaletteView.__init__(self, (BUTTON_SIZE, BUTTON_SIZE), 1, 6, scrolling=True)
         self.state = state
+        self.scene_widget = scene_widget
 
     def num_items(self):
         return len(self.state.inventory)
@@ -37,7 +38,12 @@
         if self.item_is_selected(item_no):
             self.unselect()
         else:
-            self.state.set_tool(self.state.inventory[item_no])
+            if self.state.tool:
+                result = self.state.inventory[item_no].interact(self.state.tool)
+                if result:
+                    result.process(self.scene_widget)
+            else:
+                self.state.set_tool(self.state.inventory[item_no])
 
     def item_is_selected(self, item_no):
         return self.state.tool is self.state.inventory[item_no]
@@ -164,7 +170,7 @@
 
         self.handbutton = HandButton(action=self.hand_pressed)
 
-        self.inventory = InventoryView(self.state)
+        self.inventory = InventoryView(self.state, self.state_widget)
 
         self.toolbar = ToolBar([
                 self.menubutton,