changeset 321:0d7885e2f063

Add means for listing levels and areas.
author Simon Cross <hodgestar@gmail.com>
date Fri, 06 Sep 2013 02:03:16 +0200
parents d13d5425da95
children a4e93b1086b8
files nagslang/level.py nagslang/screens/area.py
diffstat 2 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/nagslang/level.py	Fri Sep 06 02:08:03 2013 +0200
+++ b/nagslang/level.py	Fri Sep 06 02:03:16 2013 +0200
@@ -56,6 +56,12 @@
             'enemies': self._enemies,
         }, f)
 
+    @classmethod
+    def list_levels(cls):
+        with resources.get_file('levels', 'LEVELS') as f:
+            levels = load(f)
+            return levels['levels']
+
     def load(self, space):
         data = self._get_data()
         self.x, self.y = data['size']
--- a/nagslang/screens/area.py	Fri Sep 06 02:08:03 2013 +0200
+++ b/nagslang/screens/area.py	Fri Sep 06 02:03:16 2013 +0200
@@ -83,6 +83,10 @@
     def teardown(self):
         sound.stop()
 
+    @classmethod
+    def list_areas(self):
+        return Level.list_levels()
+
     def _player_collision_pre_solve_handler(self, space, arbiter):
         gobj = arbiter.shapes[1].physicser.game_object
         result = gobj.collide_with_protagonist(self.protagonist)