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]