Move various bits into gamelib
[koperkapel.git] / koperkapel / gamelib / level.py
diff --git a/koperkapel/gamelib/level.py b/koperkapel/gamelib/level.py
new file mode 100644 (file)
index 0000000..dd89f7e
--- /dev/null
@@ -0,0 +1,23 @@
+""" Class holding the level info """
+
+
+class Level(object):
+
+    def __init__(self):
+        self.width = self.height = 0
+        self.tiles = []
+        self.tileset = None
+
+    def get_neighbors(self, x, y):
+        # 4 -connected neighbors
+        return [self.tiles[y][x-1] if x > 0 else None,
+                self.tiles[y][x+1] if x < self.width - 1 else None,
+                self.tiles[y-1][x] if y > 0 else None,
+                self.tiles[y+1][x] if y < self.height- 1 else None,
+               ]
+
+    def can_walk(self, x, y, layer):
+        return 'walk' in self.tiles[y][x][layer]['behaviour']
+
+    def can_fly(self, x, y, layer):
+        return 'fly' in self.tiles[y][x][layer]['behaviour']