Mercurial > boomslang
comparison 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 |
comparison
equal
deleted
inserted
replaced
165:9b3bba5e65f3 | 166:0db92b3b5833 |
---|---|
20 class InventoryView(PaletteView): | 20 class InventoryView(PaletteView): |
21 | 21 |
22 sel_color = Color("yellow") | 22 sel_color = Color("yellow") |
23 sel_width = 2 | 23 sel_width = 2 |
24 | 24 |
25 def __init__(self, state): | 25 def __init__(self, state, scene_widget): |
26 PaletteView.__init__(self, (BUTTON_SIZE, BUTTON_SIZE), 1, 6, scrolling=True) | 26 PaletteView.__init__(self, (BUTTON_SIZE, BUTTON_SIZE), 1, 6, scrolling=True) |
27 self.state = state | 27 self.state = state |
28 self.scene_widget = scene_widget | |
28 | 29 |
29 def num_items(self): | 30 def num_items(self): |
30 return len(self.state.inventory) | 31 return len(self.state.inventory) |
31 | 32 |
32 def draw_item(self, surface, item_no, rect): | 33 def draw_item(self, surface, item_no, rect): |
35 | 36 |
36 def click_item(self, item_no, event): | 37 def click_item(self, item_no, event): |
37 if self.item_is_selected(item_no): | 38 if self.item_is_selected(item_no): |
38 self.unselect() | 39 self.unselect() |
39 else: | 40 else: |
40 self.state.set_tool(self.state.inventory[item_no]) | 41 if self.state.tool: |
42 result = self.state.inventory[item_no].interact(self.state.tool) | |
43 if result: | |
44 result.process(self.scene_widget) | |
45 else: | |
46 self.state.set_tool(self.state.inventory[item_no]) | |
41 | 47 |
42 def item_is_selected(self, item_no): | 48 def item_is_selected(self, item_no): |
43 return self.state.tool is self.state.inventory[item_no] | 49 return self.state.tool is self.state.inventory[item_no] |
44 | 50 |
45 def unselect(self): | 51 def unselect(self): |
162 self.menubutton = PopupMenuButton('Menu', | 168 self.menubutton = PopupMenuButton('Menu', |
163 action=self.popup_menu.show_menu) | 169 action=self.popup_menu.show_menu) |
164 | 170 |
165 self.handbutton = HandButton(action=self.hand_pressed) | 171 self.handbutton = HandButton(action=self.hand_pressed) |
166 | 172 |
167 self.inventory = InventoryView(self.state) | 173 self.inventory = InventoryView(self.state, self.state_widget) |
168 | 174 |
169 self.toolbar = ToolBar([ | 175 self.toolbar = ToolBar([ |
170 self.menubutton, | 176 self.menubutton, |
171 self.handbutton, | 177 self.handbutton, |
172 self.inventory, | 178 self.inventory, |