Split level scene for game play extensions
[koperkapel.git] / koperkapel / scenes / viewlevel.py
1 """Render a level and allow moving the scene"""
2
3 from pgzero.constants import keys
4 from .level import BaseLevelScene
5 from .base import MoveViewportEvent
6 from ..constants import TILE_SIZE
7
8
9 class ViewLevelScene(BaseLevelScene):
10     """ Level scene. """
11
12     def on_key_down(self, key, mod, unicode):
13         offset = None
14         if key == keys.DOWN:
15             offset = (0, TILE_SIZE)
16         elif key == keys.UP:
17             offset = (0, -TILE_SIZE)
18         elif key == keys.LEFT:
19             offset = (-TILE_SIZE, 0)
20         elif key == keys.RIGHT:
21             offset = (TILE_SIZE, 0)
22         elif key == keys.S:
23             if self._level_layer == 'floor':
24                 self._level_layer = 'tunnels'
25             else:
26                 self._level_layer = 'floor'
27             return
28         if offset:
29             return [MoveViewportEvent(offset)]
30         return super(ViewLevelScene, self).on_key_down(key, mod, unicode)