comparison pyntnclick/gamescreen.py @ 667:c71530b8a19d pyntnclick

More toolbar work.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 12 Feb 2012 17:28:20 +0200
parents 12149ea1c18e
children 562f8133bb07
comparison
equal deleted inserted replaced
666:de3f6ad0da9d 667:c71530b8a19d
19 SCREEN = constants.screen 19 SCREEN = constants.screen
20 LEAVE = constants.leave 20 LEAVE = constants.leave
21 21
22 22
23 class InventoryView(Widget): 23 class InventoryView(Widget):
24 # TODO: Make this work again 24 MIN_UPDOWN_WIDTH = 16
25 25
26 sel_color = Color("yellow") 26 sel_color = Color("yellow")
27 sel_width = 2 27 sel_width = 2
28 28
29 def __init__(self, rect, gd, screen): 29 def __init__(self, rect, gd, screen):
30 self.bsize = gd.constants.button_size 30 self.bsize = gd.constants.button_size
31 super(InventoryView, self).__init__(rect, gd) 31 super(InventoryView, self).__init__(rect, gd)
32 self.inv_slots = (self.rect.width - self.MIN_UPDOWN_WIDTH) / self.bsize
33 self.updown_width = self.rect.width - self.inv_slots * self.bsize
32 self.screen = screen 34 self.screen = screen
33 self.game = screen.game 35 self.game = screen.game
34 self.state_widget = screen.state_widget 36 self.state_widget = screen.state_widget
35 self.add_callback(MOUSEBUTTONDOWN, self.mouse_down) 37 self.add_callback(MOUSEBUTTONDOWN, self.mouse_down)
36 self.update_surface() 38 self.update_surface()
39 self.surface = Surface(self.rect.size) 41 self.surface = Surface(self.rect.size)
40 for item_no in range(self.num_items()): 42 for item_no in range(self.num_items()):
41 self.draw_item(self.surface, item_no, 43 self.draw_item(self.surface, item_no,
42 Rect((item_no * self.bsize, 0), 44 Rect((item_no * self.bsize, 0),
43 (self.bsize, self.bsize))) 45 (self.bsize, self.bsize)))
46 self.draw_updown(self.surface)
44 47
45 def draw(self, surface): 48 def draw(self, surface):
46 self.update_surface() 49 self.update_surface()
47 surface.blit(self.surface, self.rect) 50 surface.blit(self.surface, self.rect)
48 51
51 54
52 def draw_item(self, surface, item_no, rect): 55 def draw_item(self, surface, item_no, rect):
53 item_image = self.game.inventory[item_no].get_inventory_image() 56 item_image = self.game.inventory[item_no].get_inventory_image()
54 surface.blit(item_image, rect, None) 57 surface.blit(item_image, rect, None)
55 58
59 def draw_updown(self, surface):
60 rect = Rect((self.rect.width - self.updown_width, 0),
61 (self.updown_width, self.rect.height))
62 s = Surface(rect.size)
63 s.fill(Color("blue"))
64 surface.blit(s, rect)
65
56 def click_item(self, item_no, event): 66 def click_item(self, item_no, event):
57 item = self.game.inventory[item_no] 67 item = self.game.inventory[item_no]
58 print "Using:", item
59 if self.item_is_selected(item_no): 68 if self.item_is_selected(item_no):
60 self.unselect() 69 self.unselect()
61 elif item.is_interactive(self.game.tool): 70 elif item.is_interactive(self.game.tool):
62 result = item.interact(self.game.tool) 71 result = item.interact(self.game.tool)
63 handle_result(result, self.state_widget) 72 handle_result(result, self.state_widget)
69 return self.game.cancel_doodah(self.screen) 78 return self.game.cancel_doodah(self.screen)
70 x, y = self.global_to_local(event.pos) 79 x, y = self.global_to_local(event.pos)
71 item_no = x / self.bsize 80 item_no = x / self.bsize
72 if item_no < self.num_items(): 81 if item_no < self.num_items():
73 self.click_item(item_no, event) 82 self.click_item(item_no, event)
74 else:
75 print "No item."
76 83
77 def item_is_selected(self, item_no): 84 def item_is_selected(self, item_no):
78 return self.game.tool is self.game.inventory[item_no] 85 return self.game.tool is self.game.inventory[item_no]
79 86
80 def unselect(self): 87 def unselect(self):