Mercurial > mamba
changeset 507:f4f883418ac2
Better user level habitat things.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 18 Sep 2011 00:04:42 +0200 |
parents | 6c1d44c12454 |
children | 6c61d5862310 |
files | mamba/habitats/userlevelmenu.py |
diffstat | 1 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/habitats/userlevelmenu.py Sun Sep 18 00:04:46 2011 +0200 +++ b/mamba/habitats/userlevelmenu.py Sun Sep 18 00:04:42 2011 +0200 @@ -81,9 +81,23 @@ level_namespace = "user" + def on_enter(self): + super(UserLevelMenu, self).on_enter() + self._levels = {} + self._level_list = [] + def list_levels(self): - return get_level_list('user_levels', is_user_dir=True) + if not self._level_list: + for name in get_level_list('user_levels', is_user_dir=True): + try: + self.get_level(name) + self._level_list.append(name) + except: + print "Invalid user level:", name + return self._level_list[:] def get_level(self, name): - source = load_file('user_levels/%s.txt' % (name,), is_user_dir=True) - return Level(name, self.level_namespace, source.read()) + if name not in self._levels: + src = load_file('user_levels/%s.txt' % (name,), is_user_dir=True) + self._levels[name] = Level(name, self.level_namespace, src.read()) + return self._levels[name]