Mercurial > nagslang
comparison nagslang/level.py @ 346:282113d86d75
Save door and lever state.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Fri, 06 Sep 2013 15:14:27 +0200 |
parents | 0d7885e2f063 |
children | f0e8970ab804 |
comparison
equal
deleted
inserted
replaced
345:4708e86a9a3c | 346:282113d86d75 |
---|---|
28 self.x = 800 | 28 self.x = 800 |
29 self.y = 600 | 29 self.y = 600 |
30 self.polygons = {} | 30 self.polygons = {} |
31 self.lines = [] | 31 self.lines = [] |
32 self.world = world | 32 self.world = world |
33 self.world.level_state.setdefault(name, {}) | |
33 self.basetile = 'tiles/floor.png' | 34 self.basetile = 'tiles/floor.png' |
34 self._tile_image = None | 35 self._tile_image = None |
35 self._surface = None | 36 self._surface = None |
36 self._exterior = False | 37 self._exterior = False |
37 self._glue = puzzle.PuzzleGlue() | 38 self._glue = puzzle.PuzzleGlue() |
91 | 92 |
92 if issubclass(cls, puzzle.Puzzler): | 93 if issubclass(cls, puzzle.Puzzler): |
93 gobj = cls(*args) | 94 gobj = cls(*args) |
94 elif issubclass(cls, go.GameObject): | 95 elif issubclass(cls, go.GameObject): |
95 gobj = cls(space, *args) | 96 gobj = cls(space, *args) |
97 level_state = self.world.level_state[self.name] | |
98 stored_state = level_state.get(name, {}) | |
99 should_save = bool(gobj.set_stored_state_dict(stored_state)) | |
100 if should_save: | |
101 if name is None: | |
102 raise Exception( | |
103 "Unnamed game object wants to save state:" % (gobj,)) | |
104 level_state[name] = stored_state | |
96 self.drawables.append(gobj) | 105 self.drawables.append(gobj) |
97 if gobj.overlay: | 106 if gobj.overlay: |
98 self.overlay_drawables.append(gobj.overlay) | 107 self.overlay_drawables.append(gobj.overlay) |
99 else: | 108 else: |
100 raise TypeError( | 109 raise TypeError( |