changeset 73:932b0956e77a

Make tools usable.
author Simon Cross <hodgestar+bzr@gmail.com>
date Mon, 23 Aug 2010 21:19:34 +0200
parents d2250cf40ee7
children 75e1040a1121
files gamelib/gamescreen.py gamelib/state.py
diffstat 2 files changed, 14 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- 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()
--- 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