comparison gamelib/gamescreen.py @ 384:56a05ae56574

Initial manual implementation.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 28 Aug 2010 19:04:30 +0200
parents 760f6a318d2e
children b1dc0caec668
comparison
equal deleted inserted replaced
383:30923e9408cd 384:56a05ae56574
33 def draw_item(self, surface, item_no, rect): 33 def draw_item(self, surface, item_no, rect):
34 item_image = self.state.inventory[item_no].get_inventory_image() 34 item_image = self.state.inventory[item_no].get_inventory_image()
35 surface.blit(item_image, rect, None, BLEND_ADD) 35 surface.blit(item_image, rect, None, BLEND_ADD)
36 36
37 def click_item(self, item_no, event): 37 def click_item(self, item_no, event):
38 item = self.state.inventory[item_no]
38 if self.item_is_selected(item_no): 39 if self.item_is_selected(item_no):
39 self.unselect() 40 self.unselect()
41 elif self.state.tool or hasattr(item, 'interact_without'):
42 result = item.interact(self.state.tool, self.state)
43 handle_result(result, self.state_widget)
40 else: 44 else:
41 if self.state.tool: 45 self.state.set_tool(self.state.inventory[item_no])
42 result = self.state.inventory[item_no].interact(self.state.tool, self.state)
43 handle_result(result, self.state_widget)
44 else:
45 self.state.set_tool(self.state.inventory[item_no])
46 46
47 def item_is_selected(self, item_no): 47 def item_is_selected(self, item_no):
48 return self.state.tool is self.state.inventory[item_no] 48 return self.state.tool is self.state.inventory[item_no]
49 49
50 def unselect(self): 50 def unselect(self):
102 self.subwidgets[0]._mouse_move(mouse.get_pos()) 102 self.subwidgets[0]._mouse_move(mouse.get_pos())
103 else: 103 else:
104 self._mouse_move(mouse.get_pos()) 104 self._mouse_move(mouse.get_pos())
105 105
106 def show_detail(self, detail): 106 def show_detail(self, detail):
107 self.clear_detail()
107 w, h = self.state.set_current_detail(detail) 108 w, h = self.state.set_current_detail(detail)
108 self.detail.set_image_rect(Rect(0, 0, w, h)) 109 self.detail.set_image_rect(Rect(0, 0, w, h))
109 self.add_centered(self.detail) 110 self.add_centered(self.detail)
110 self.state.do_enter_detail() 111 self.state.do_enter_detail()
111 112
112 def clear_detail(self): 113 def clear_detail(self):
113 """Hide the detail view""" 114 """Hide the detail view"""
114 self.remove(self.detail) 115 if self.state.current_detail is not None:
115 self.state.do_leave_detail() 116 self.remove(self.detail)
116 self.state.set_current_detail(None) 117 self.state.do_leave_detail()
118 self.state.set_current_detail(None)
117 119
118 120
119 class DetailWindow(Widget): 121 class DetailWindow(Widget):
120 def __init__(self, screen): 122 def __init__(self, screen):
121 Widget.__init__(self) 123 Widget.__init__(self)