From 39cdf6a02fb3de73c436f51bb2666834cf2b861d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Fri, 19 Aug 2016 13:51:09 +0200 Subject: [PATCH] size, sources, levels --- src/c3nav/mapdata/classes.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/c3nav/mapdata/classes.py b/src/c3nav/mapdata/classes.py index ac60a302..c731c277 100644 --- a/src/c3nav/mapdata/classes.py +++ b/src/c3nav/mapdata/classes.py @@ -11,6 +11,7 @@ class MapManager: def __init__(self): self.main_pkg = None self.pkgs = OrderedDict() + self.levels = [] def add_map_dir(self, path): pkg = MapDataPackage(path) @@ -22,6 +23,8 @@ class MapManager: raise MapInitError('There can not be more than one root map package: tried to add '+pkg.name+', ' 'but '+self.main_pkg.name+' was there first.') self.main_pkg = pkg + self.levels = pkg.levels + self.size = pkg.size else: if pkg.extends not in self.pkgs: raise MapInitError('map package'+pkg.name+' extends '+pkg.exends+', which was not imported ' @@ -29,6 +32,10 @@ class MapManager: self.pkgs[pkg.name] = pkg + @property + def all_sources(self): + return sum((pkg.sources for pkg in self.pkgs), []) + class MapDataPackage: def __init__(self, path): @@ -47,3 +54,17 @@ class MapDataPackage: raise MapInitError('Map package '+path+' has no name in map.json.') self.extends = data.get('extends') + + self.size = data.get('size') + + self.sources = tuple(MapSource(self, name, source) + for name, source in data.get('sources', {}).items()) + + self.levels = data.get('levels') + + +class MapSource: + def __init__(self, pkg, name, data): + self.name = name + self.src = os.path.join(pkg.path, data['src']) + self.bounds = data['bounds']