Orientate the doors
[koperkapel.git] / koperkapel / loaders / levelloader.py
index 0addeccf5c54d678dadbaa8d796e904e26ebf01e..9bb85e41ebf89fd57084d00cdd7f01522e318d23 100644 (file)
@@ -6,6 +6,8 @@ from pgzero.loaders import ResourceLoader
 
 from ..gamelib.tiles import Wall, Floor, Tunnel, Underground, Grate
 from ..gamelib.level import Level
+from ..gamelib.door import Door
+from ..gamelib.keypad import Keypad
 
         
 
@@ -40,6 +42,23 @@ class LevelLoader(ResourceLoader):
         for tile in TILES.values():
             tile.TILESET = self._level.tileset
         self._load_tile_images()
+        for door_info in level_data['door_info']:
+            # Create the doors first
+            doors = []
+            for door in door_info['doors']:
+                x, y = door
+                # is this the right check
+                if self._level.can_walk(x + 1, y, 'floor') and self._level.can_walk(x - 1, y, 'floor'):
+                    # vertical door
+                    angle = 90
+                else:
+                    angle = 0
+                new_door = Door(x, y, angle)
+                self._level.doors.append(new_door)
+            # Add the keypads
+            for keypad in door_info['keypads']:
+                new_keypad = Keypad(keypad[0], keypad[1], doors)
+                self._level.keypads.append(new_keypad)
         return self._level
 
     def _load_tile_images(self):