Split level scene for game play extensions
[koperkapel.git] / koperkapel / scenes / menu.py
index 9769ff602f65be54d5cf19eca52501765f3c6b58..ce09cb5ccb2afa8b9505affb6b7b02172ba12db5 100644 (file)
@@ -3,9 +3,7 @@
 from pgzero.constants import keys
 from ..actors.buttons import TextButton
 from ..actors.navigator import ActorNavigator
-from .base import Scene, ChangeSceneEvent, QuitEvent
-
-
+from .base import Scene, ChangeSceneEvent, WorldEvent, QuitEvent
 
 
 class MenuScene(Scene):
@@ -14,7 +12,7 @@ class MenuScene(Scene):
     def __init__(self):
         super().__init__()
         self._title = self.actors.add(TextButton("Main Menu"))
-        self._title.pos = (300, 200)
+        self._title.pos = (300, 100)
         self._nav = ActorNavigator()
         self._menu = [
             TextButton("Play", action=self.change_to_level),
@@ -25,7 +23,7 @@ class MenuScene(Scene):
             TextButton("Quit", action=self.quit),
         ]
         for i, item in enumerate(self._menu):
-            item.pos = (300, 300 + (i * 100))
+            item.pos = (300, 200 + (i * 100))
             self.actors.add(item)
         self._nav.connect(
             self._menu, [keys.DOWN, keys.RIGHT], [keys.UP, keys.LEFT],
@@ -33,12 +31,15 @@ class MenuScene(Scene):
         self._nav.current.select()
 
     def change_to_level(self):
-        from .level import LevelScene
-        return [ChangeSceneEvent(LevelScene('level1'))]
+        from .level import GameLevelScene
+        return [ChangeSceneEvent(GameLevelScene())]
 
     def change_to_viewer(self):
         from .viewlevel import ViewLevelScene
-        return [ChangeSceneEvent(ViewLevelScene('map'))]
+        return [
+            WorldEvent("set", {"level.name": "map"}),
+            ChangeSceneEvent(ViewLevelScene())
+        ]
 
     def change_to_roaches(self):
         from .roaches import RoachesScene