Mercurial > boomslang
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,