changeset 408:d04981e24fda

Move hard-coded starting point to levels meta file
author Stefano Rivera <stefano@rivera.za.net>
date Sat, 07 Sep 2013 12:32:40 +0200
parents 314ddad2d6d2
children 180c27514619
files data/levels/LEVELS data/levels/meta nagslang/level.py nagslang/world.py
diffstat 4 files changed, 17 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/data/levels/LEVELS	Sat Sep 07 12:10:42 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-levels:
-  - start
-  - level1
-  - level2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/levels/meta	Sat Sep 07 12:32:40 2013 +0200
@@ -0,0 +1,2 @@
+starting_level: start
+starting_position: [350, 300]
--- a/nagslang/level.py	Sat Sep 07 12:10:42 2013 +0200
+++ b/nagslang/level.py	Sat Sep 07 12:32:40 2013 +0200
@@ -1,3 +1,5 @@
+import os
+
 import pygame
 import pygame.locals as pgl
 
@@ -61,9 +63,17 @@
 
     @classmethod
     def list_levels(cls):
-        with resources.get_file('levels', 'LEVELS') as f:
-            levels = load(f)
-            return levels['levels']
+        dir_ = resources.get_resource_path('levels')
+        for file_ in os.listdir(dir_):
+            if file_ == 'meta':
+                continue
+            yield file_
+
+    @classmethod
+    def game_starting_point(cls):
+        with resources.get_file('levels', 'meta') as f:
+            data = load(f)
+        return (data['starting_level'], data['starting_position'])
 
     def load(self, space):
         data = self._get_data()
--- a/nagslang/world.py	Sat Sep 07 12:10:42 2013 +0200
+++ b/nagslang/world.py	Sat Sep 07 12:32:40 2013 +0200
@@ -18,20 +18,18 @@
         self.reset()
 
     def reset(self):
-        first_level = Level.list_levels()[0]
-        starting_position = (350, 300)
         self.__dict__['_data'] = {
             'attacks': 0,
             'deaths': 0,
             'transformations': 0,
             'kills': 0,
             'rooms': 0,
-            'level': (first_level, starting_position),
+            'level': Level.game_starting_point(),
             'level_state': {},
             'inventory': set(),
         }
         self.__dict__['protagonist'] = Protagonist(
-            pymunk.Space(), self, starting_position)
+            pymunk.Space(), self, self.level[1])
 
     def __getattr__(self, name):
         try: