comparison gamelib/state.py @ 119:d5f7cccfdb6c

Hook up "detail view" scenes.
author Jeremy Thurgood <firxen@gmail.com>
date Tue, 24 Aug 2010 17:04:56 +0200
parents 139864ce8bdb
children 48d24a48d0ce
comparison
equal deleted inserted replaced
118:e548f4a13741 119:d5f7cccfdb6c
69 69
70 def load_scenes(self, modname): 70 def load_scenes(self, modname):
71 mod = __import__("gamelib.scenes.%s" % (modname,), fromlist=[modname]) 71 mod = __import__("gamelib.scenes.%s" % (modname,), fromlist=[modname])
72 for scene_cls in mod.SCENES: 72 for scene_cls in mod.SCENES:
73 self.add_scene(scene_cls(self)) 73 self.add_scene(scene_cls(self))
74 if hasattr(mod, 'DETAIL_VIEWS'):
75 for scene_cls in mod.DETAIL_VIEWS:
76 self.add_detail_view(scene_cls(self))
74 77
75 def set_current_scene(self, name): 78 def set_current_scene(self, name):
76 self.current_scene = self.scenes[name] 79 self.current_scene = self.scenes[name]
80
81 def set_current_detail(self, name):
82 if name is None:
83 self.current_detail = None
84 else:
85 self.current_detail = self.detail_views[name]
86 return self.current_detail.SIZE
77 87
78 def add_inventory_item(self, name): 88 def add_inventory_item(self, name):
79 self.inventory.append(self.items[name]) 89 self.inventory.append(self.items[name])
80 90
81 def remove_inventory_item(self, name): 91 def remove_inventory_item(self, name):
88 self.tool = item 98 self.tool = item
89 99
90 def draw(self, surface): 100 def draw(self, surface):
91 self.current_scene.draw(surface) 101 self.current_scene.draw(surface)
92 102
103 def draw_detail(self, surface):
104 self.current_detail.draw(surface)
105
93 def interact(self, pos): 106 def interact(self, pos):
94 return self.current_scene.interact(self.tool, pos) 107 return self.current_scene.interact(self.tool, pos)
95 108
109 def interact_detail(self, pos):
110 return self.current_detail.interact(self.tool, pos)
111
96 def animate(self): 112 def animate(self):
97 return self.current_scene.animate() 113 return self.current_scene.animate()
98 114
99 def mouse_move(self, pos): 115 def mouse_move(self, pos):
100 self.current_scene.mouse_move(self.tool, pos) 116 self.current_scene.mouse_move(self.tool, pos)
117
118 def mouse_move_detail(self, pos):
119 self.current_detail.mouse_move(self.tool, pos)
101 120
102 121
103 class StatefulGizmo(object): 122 class StatefulGizmo(object):
104 123
105 # initial data (optional, defaults to none) 124 # initial data (optional, defaults to none)