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(