# HG changeset patch # User Jeremy Thurgood # Date 1316297082 -7200 # Node ID f4f883418ac215117a160c5b690855794fbbc87c # Parent 6c1d44c1245422380339f7ae55fd378624b650c1 Better user level habitat things. diff -r 6c1d44c12454 -r f4f883418ac2 mamba/habitats/userlevelmenu.py --- 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]