# HG changeset patch # User Stefano Rivera # Date 1378549960 -7200 # Node ID d04981e24fdaf37b7832e00175038def7a71d06a # Parent 314ddad2d6d2374cf366f9d4a188fa5e471e9e7b Move hard-coded starting point to levels meta file diff -r 314ddad2d6d2 -r d04981e24fda data/levels/LEVELS --- 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 diff -r 314ddad2d6d2 -r d04981e24fda data/levels/meta --- /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] diff -r 314ddad2d6d2 -r d04981e24fda nagslang/level.py --- 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() diff -r 314ddad2d6d2 -r d04981e24fda nagslang/world.py --- 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: