Mercurial > mamba
diff mamba/habitats/userlevelmenu.py @ 399:12d67f69e6b2
Support for user levels.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 17 Sep 2011 11:28:18 +0200 |
parents | d759f49c477d |
children | 001c3797a63b |
line wrap: on
line diff
--- a/mamba/habitats/userlevelmenu.py Sat Sep 17 11:02:37 2011 +0200 +++ b/mamba/habitats/userlevelmenu.py Sat Sep 17 11:28:18 2011 +0200 @@ -1,10 +1,12 @@ """Level menu.""" +import os +import urllib2 + from mamba.habitats.levelmenu import LevelMenu from mamba.level import Level from mamba.constants import LEVEL_SERVER - -import urllib2 +from mamba.gamestate import get_user_levels_dir class UserLevelApi(object): @@ -61,12 +63,32 @@ return self.cache[name] -class UserLevelMenu(LevelMenu): +class NetworkLevelMenu(LevelMenu): API = UserLevelApi("curated") + @property + def level_namespace(self): + self.API.level_namespace + def list_levels(self): return self.API.list_levels() def get_level(self, name): return self.API.get_level(name) + + +class UserLevelMenu(LevelMenu): + + level_namespace = "user" + + def list_levels(self): + levels_dir = get_user_levels_dir() + levels = [os.path.splitext(fn)[0] for fn in os.listdir(levels_dir) + if fn.lower().endswith('.txt')] + return levels + + def get_level(self, name): + levels_dir = get_user_levels_dir() + source = open(os.path.join(levels_dir, name + '.txt')).read() + return Level(name, self.level_namespace, source)