# HG changeset patch # User Simon Cross # Date 1282591174 -7200 # Node ID 932b0956e77a66a52127a653c75eaa7f05201b19 # Parent d2250cf40ee7afe1bcf0c401d22a22e02da82c71 Make tools usable. diff -r d2250cf40ee7 -r 932b0956e77a gamelib/gamescreen.py --- a/gamelib/gamescreen.py Mon Aug 23 21:08:15 2010 +0200 +++ b/gamelib/gamescreen.py Mon Aug 23 21:19:34 2010 +0200 @@ -23,7 +23,6 @@ def __init__(self, state, handbutton): PaletteView.__init__(self, (BUTTON_SIZE, BUTTON_SIZE), 1, 6, scrolling=True) self.state = state - self.selection = None self.handbutton = handbutton def num_items(self): @@ -34,14 +33,14 @@ surface.blit(item_image, rect, None, BLEND_ADD) def click_item(self, item_no, event): - self.selection = item_no + self.state.set_tool(self.state.inventory[item_no]) self.handbutton.unselect() def item_is_selected(self, item_no): - return self.selection == item_no + return self.state.tool is self.state.inventory[item_no] def unselect(self): - self.selection = None + self.state.set_tool(None) class StateWidget(CursorWidget): @@ -66,12 +65,10 @@ print desc def mouse_down(self, event): - # TODO: replace None with the correct item - self.state.interact(None, event.pos) + self.state.interact(event.pos) def mouse_move(self, event): - # TODO: replace None with the correct item - self.state.mouse_move(None, event.pos) + self.state.mouse_move(event.pos) if self.state.check_for_new_description(event.pos): # queue a redraw self.invalidate() diff -r d2250cf40ee7 -r 932b0956e77a gamelib/state.py --- a/gamelib/state.py Mon Aug 23 21:08:15 2010 +0200 +++ b/gamelib/state.py Mon Aug 23 21:19:34 2010 +0200 @@ -38,6 +38,8 @@ self.items = {} # list of item objects in inventory self.inventory = [] + # currently selected tool (item) + self.tool = None # Result of the most recent action self.msg = None self.description = None @@ -64,14 +66,17 @@ def remove_inventory_item(self, name): self.inventory.remove(self.items[name]) + def set_tool(self, item): + self.tool = item + def draw(self, surface): self.current_scene.draw(surface) - def interact(self, item, pos): - self.current_scene.interact(item, pos) + def interact(self, pos): + self.current_scene.interact(self.tool, pos) - def mouse_move(self, item, pos): - self.current_scene.mouse_move(item, pos) + def mouse_move(self, pos): + self.current_scene.mouse_move(self.tool, pos) def get_message(self): return self.msg