Mercurial > boomslang
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) |