Merge
authorDavid Sharpe <decoydavid@gmail.com>
Thu, 3 Mar 2016 21:08:58 +0000 (23:08 +0200)
committerDavid Sharpe <decoydavid@gmail.com>
Thu, 3 Mar 2016 21:08:58 +0000 (23:08 +0200)
58 files changed:
images/roach/eyes_1.png [deleted file]
images/roach/eyes_2.png [deleted file]
images/roach/eyes_3.png [deleted file]
images/roach/eyes_4.png [deleted file]
images/roach/roach_1.png [deleted file]
images/roach/roach_2.png [deleted file]
images/roach/roach_3.png [deleted file]
images/roach/roach_4.png [deleted file]
koperkapel/constants.py [new file with mode: 0644]
koperkapel/generators/maps.py
koperkapel/images/roach/eyes_1.png [new file with mode: 0644]
koperkapel/images/roach/eyes_2.png [new file with mode: 0644]
koperkapel/images/roach/eyes_3.png [new file with mode: 0644]
koperkapel/images/roach/eyes_4.png [new file with mode: 0644]
koperkapel/images/roach/roach_1.png [new file with mode: 0644]
koperkapel/images/roach/roach_2.png [new file with mode: 0644]
koperkapel/images/roach/roach_3.png [new file with mode: 0644]
koperkapel/images/roach/roach_4.png [new file with mode: 0644]
koperkapel/images/roach_21/eyes_1.png [new file with mode: 0644]
koperkapel/images/roach_21/eyes_2.png [new file with mode: 0644]
koperkapel/images/roach_21/eyes_3.png [new file with mode: 0644]
koperkapel/images/roach_21/eyes_4.png [new file with mode: 0644]
koperkapel/images/roach_21/roach_1.png [new file with mode: 0644]
koperkapel/images/roach_21/roach_2.png [new file with mode: 0644]
koperkapel/images/roach_21/roach_3.png [new file with mode: 0644]
koperkapel/images/roach_21/roach_4.png [new file with mode: 0644]
koperkapel/images/roach_32/eyes_1.png [new file with mode: 0644]
koperkapel/images/roach_32/eyes_2.png [new file with mode: 0644]
koperkapel/images/roach_32/eyes_3.png [new file with mode: 0644]
koperkapel/images/roach_32/eyes_4.png [new file with mode: 0644]
koperkapel/images/roach_32/roach_1.png [new file with mode: 0644]
koperkapel/images/roach_32/roach_2.png [new file with mode: 0644]
koperkapel/images/roach_32/roach_3.png [new file with mode: 0644]
koperkapel/images/roach_32/roach_4.png [new file with mode: 0644]
koperkapel/images/roach_nonet/eyes_1.png [new file with mode: 0644]
koperkapel/images/roach_nonet/eyes_2.png [new file with mode: 0644]
koperkapel/images/roach_nonet/eyes_3.png [new file with mode: 0644]
koperkapel/images/roach_nonet/eyes_4.png [new file with mode: 0644]
koperkapel/images/roach_nonet/roach_1.png [new file with mode: 0644]
koperkapel/images/roach_nonet/roach_2.png [new file with mode: 0644]
koperkapel/images/roach_nonet/roach_3.png [new file with mode: 0644]
koperkapel/images/roach_nonet/roach_4.png [new file with mode: 0644]
koperkapel/images/roach_quartet/eyes_1.png [new file with mode: 0644]
koperkapel/images/roach_quartet/eyes_2.png [new file with mode: 0644]
koperkapel/images/roach_quartet/eyes_3.png [new file with mode: 0644]
koperkapel/images/roach_quartet/eyes_4.png [new file with mode: 0644]
koperkapel/images/roach_quartet/roach_1.png [new file with mode: 0644]
koperkapel/images/roach_quartet/roach_2.png [new file with mode: 0644]
koperkapel/images/roach_quartet/roach_3.png [new file with mode: 0644]
koperkapel/images/roach_quartet/roach_4.png [new file with mode: 0644]
koperkapel/levels/level1.json
koperkapel/loaders/levelloader.py [new file with mode: 0644]
koperkapel/pgzapp.py
koperkapel/scenes/constants.py [deleted file]
koperkapel/scenes/level.py
koperkapel/scenes/menu.py
koperkapel/scenes/viewlevel.py [new file with mode: 0644]
sources/vector/generate_bitmaps.sh

diff --git a/images/roach/eyes_1.png b/images/roach/eyes_1.png
deleted file mode 100644 (file)
index c77fa0c..0000000
Binary files a/images/roach/eyes_1.png and /dev/null differ
diff --git a/images/roach/eyes_2.png b/images/roach/eyes_2.png
deleted file mode 100644 (file)
index 3545635..0000000
Binary files a/images/roach/eyes_2.png and /dev/null differ
diff --git a/images/roach/eyes_3.png b/images/roach/eyes_3.png
deleted file mode 100644 (file)
index c77fa0c..0000000
Binary files a/images/roach/eyes_3.png and /dev/null differ
diff --git a/images/roach/eyes_4.png b/images/roach/eyes_4.png
deleted file mode 100644 (file)
index 6273074..0000000
Binary files a/images/roach/eyes_4.png and /dev/null differ
diff --git a/images/roach/roach_1.png b/images/roach/roach_1.png
deleted file mode 100644 (file)
index 7227eba..0000000
Binary files a/images/roach/roach_1.png and /dev/null differ
diff --git a/images/roach/roach_2.png b/images/roach/roach_2.png
deleted file mode 100644 (file)
index 4e4f5d6..0000000
Binary files a/images/roach/roach_2.png and /dev/null differ
diff --git a/images/roach/roach_3.png b/images/roach/roach_3.png
deleted file mode 100644 (file)
index c967f99..0000000
Binary files a/images/roach/roach_3.png and /dev/null differ
diff --git a/images/roach/roach_4.png b/images/roach/roach_4.png
deleted file mode 100644 (file)
index 314e742..0000000
Binary files a/images/roach/roach_4.png and /dev/null differ
diff --git a/koperkapel/constants.py b/koperkapel/constants.py
new file mode 100644 (file)
index 0000000..54f8a20
--- /dev/null
@@ -0,0 +1,7 @@
+# Various constants
+
+TITLE = "Koperkapel"
+
+TILE_SIZE = 64
+
+WIDTH, HEIGHT = 1024, 768
index 51aae6500f4ed313707fbb5353d185eae3f2ea77..4f917c68169ea454c9feb34d63ee4a2284ff70e7 100644 (file)
@@ -2,10 +2,13 @@
 
 import random
 import math
+import json
+import os
 
 i = random.randint(0,100)
 
 
+<<<<<<< HEAD
 class Room:
     def __init__(self, region):
         """
@@ -76,6 +79,16 @@ class Room:
         :return:
         """
         self.passages.append([local_tile, foriegn_tile])
+=======
+ATTRIBUTE_MAP = {
+    '#': {'base': 'cwall', 
+          'behaviour': [],
+         },
+    ' ': {'base': 'floor',
+          'behaviour': ['walk', 'fly'],
+         },
+}
+>>>>>>> 0b2149fff63b346192148b7eb334e00ad3b9283d
 
 
 class LevelGenerator:
@@ -214,9 +227,29 @@ class LevelGenerator:
             file.write(''.join(l))
             file.write('\n')
         file.close()
+<<<<<<< HEAD
         for l in self.region_map:
+=======
+        self._to_json()
+        for l in self.regions:
+>>>>>>> 0b2149fff63b346192148b7eb334e00ad3b9283d
             print(l)
 
+    def _to_json(self):
+        level = {}
+        level['tiles'] = []
+        for l in self.map:
+            row = []
+            for t in l:
+                row.append(ATTRIBUTE_MAP[t])
+            level['tiles'].append(row)
+        name = os.path.join(os.path.dirname(__file__), '..', 'levels', 'map.json')
+        # FIXME: Do a lot better here 
+        # Crude hack so the level is written into the levels folder
+        f = open(name, 'w')
+        json.dump(level, f)
+        f.close()
+
 
 if __name__ == '__main__':
     while True:
diff --git a/koperkapel/images/roach/eyes_1.png b/koperkapel/images/roach/eyes_1.png
new file mode 100644 (file)
index 0000000..c77fa0c
Binary files /dev/null and b/koperkapel/images/roach/eyes_1.png differ
diff --git a/koperkapel/images/roach/eyes_2.png b/koperkapel/images/roach/eyes_2.png
new file mode 100644 (file)
index 0000000..3545635
Binary files /dev/null and b/koperkapel/images/roach/eyes_2.png differ
diff --git a/koperkapel/images/roach/eyes_3.png b/koperkapel/images/roach/eyes_3.png
new file mode 100644 (file)
index 0000000..c77fa0c
Binary files /dev/null and b/koperkapel/images/roach/eyes_3.png differ
diff --git a/koperkapel/images/roach/eyes_4.png b/koperkapel/images/roach/eyes_4.png
new file mode 100644 (file)
index 0000000..6273074
Binary files /dev/null and b/koperkapel/images/roach/eyes_4.png differ
diff --git a/koperkapel/images/roach/roach_1.png b/koperkapel/images/roach/roach_1.png
new file mode 100644 (file)
index 0000000..7227eba
Binary files /dev/null and b/koperkapel/images/roach/roach_1.png differ
diff --git a/koperkapel/images/roach/roach_2.png b/koperkapel/images/roach/roach_2.png
new file mode 100644 (file)
index 0000000..4e4f5d6
Binary files /dev/null and b/koperkapel/images/roach/roach_2.png differ
diff --git a/koperkapel/images/roach/roach_3.png b/koperkapel/images/roach/roach_3.png
new file mode 100644 (file)
index 0000000..c967f99
Binary files /dev/null and b/koperkapel/images/roach/roach_3.png differ
diff --git a/koperkapel/images/roach/roach_4.png b/koperkapel/images/roach/roach_4.png
new file mode 100644 (file)
index 0000000..314e742
Binary files /dev/null and b/koperkapel/images/roach/roach_4.png differ
diff --git a/koperkapel/images/roach_21/eyes_1.png b/koperkapel/images/roach_21/eyes_1.png
new file mode 100644 (file)
index 0000000..4b964ee
Binary files /dev/null and b/koperkapel/images/roach_21/eyes_1.png differ
diff --git a/koperkapel/images/roach_21/eyes_2.png b/koperkapel/images/roach_21/eyes_2.png
new file mode 100644 (file)
index 0000000..71ee549
Binary files /dev/null and b/koperkapel/images/roach_21/eyes_2.png differ
diff --git a/koperkapel/images/roach_21/eyes_3.png b/koperkapel/images/roach_21/eyes_3.png
new file mode 100644 (file)
index 0000000..4b964ee
Binary files /dev/null and b/koperkapel/images/roach_21/eyes_3.png differ
diff --git a/koperkapel/images/roach_21/eyes_4.png b/koperkapel/images/roach_21/eyes_4.png
new file mode 100644 (file)
index 0000000..24a72d8
Binary files /dev/null and b/koperkapel/images/roach_21/eyes_4.png differ
diff --git a/koperkapel/images/roach_21/roach_1.png b/koperkapel/images/roach_21/roach_1.png
new file mode 100644 (file)
index 0000000..e38ccb7
Binary files /dev/null and b/koperkapel/images/roach_21/roach_1.png differ
diff --git a/koperkapel/images/roach_21/roach_2.png b/koperkapel/images/roach_21/roach_2.png
new file mode 100644 (file)
index 0000000..4ef0c77
Binary files /dev/null and b/koperkapel/images/roach_21/roach_2.png differ
diff --git a/koperkapel/images/roach_21/roach_3.png b/koperkapel/images/roach_21/roach_3.png
new file mode 100644 (file)
index 0000000..f8fb51b
Binary files /dev/null and b/koperkapel/images/roach_21/roach_3.png differ
diff --git a/koperkapel/images/roach_21/roach_4.png b/koperkapel/images/roach_21/roach_4.png
new file mode 100644 (file)
index 0000000..e8ad8d3
Binary files /dev/null and b/koperkapel/images/roach_21/roach_4.png differ
diff --git a/koperkapel/images/roach_32/eyes_1.png b/koperkapel/images/roach_32/eyes_1.png
new file mode 100644 (file)
index 0000000..c6bc80f
Binary files /dev/null and b/koperkapel/images/roach_32/eyes_1.png differ
diff --git a/koperkapel/images/roach_32/eyes_2.png b/koperkapel/images/roach_32/eyes_2.png
new file mode 100644 (file)
index 0000000..4132fe1
Binary files /dev/null and b/koperkapel/images/roach_32/eyes_2.png differ
diff --git a/koperkapel/images/roach_32/eyes_3.png b/koperkapel/images/roach_32/eyes_3.png
new file mode 100644 (file)
index 0000000..c6bc80f
Binary files /dev/null and b/koperkapel/images/roach_32/eyes_3.png differ
diff --git a/koperkapel/images/roach_32/eyes_4.png b/koperkapel/images/roach_32/eyes_4.png
new file mode 100644 (file)
index 0000000..7b38368
Binary files /dev/null and b/koperkapel/images/roach_32/eyes_4.png differ
diff --git a/koperkapel/images/roach_32/roach_1.png b/koperkapel/images/roach_32/roach_1.png
new file mode 100644 (file)
index 0000000..6dd6516
Binary files /dev/null and b/koperkapel/images/roach_32/roach_1.png differ
diff --git a/koperkapel/images/roach_32/roach_2.png b/koperkapel/images/roach_32/roach_2.png
new file mode 100644 (file)
index 0000000..b293fc7
Binary files /dev/null and b/koperkapel/images/roach_32/roach_2.png differ
diff --git a/koperkapel/images/roach_32/roach_3.png b/koperkapel/images/roach_32/roach_3.png
new file mode 100644 (file)
index 0000000..6a9237d
Binary files /dev/null and b/koperkapel/images/roach_32/roach_3.png differ
diff --git a/koperkapel/images/roach_32/roach_4.png b/koperkapel/images/roach_32/roach_4.png
new file mode 100644 (file)
index 0000000..ca3bffa
Binary files /dev/null and b/koperkapel/images/roach_32/roach_4.png differ
diff --git a/koperkapel/images/roach_nonet/eyes_1.png b/koperkapel/images/roach_nonet/eyes_1.png
new file mode 100644 (file)
index 0000000..ff82b8e
Binary files /dev/null and b/koperkapel/images/roach_nonet/eyes_1.png differ
diff --git a/koperkapel/images/roach_nonet/eyes_2.png b/koperkapel/images/roach_nonet/eyes_2.png
new file mode 100644 (file)
index 0000000..1ed3637
Binary files /dev/null and b/koperkapel/images/roach_nonet/eyes_2.png differ
diff --git a/koperkapel/images/roach_nonet/eyes_3.png b/koperkapel/images/roach_nonet/eyes_3.png
new file mode 100644 (file)
index 0000000..7b7f304
Binary files /dev/null and b/koperkapel/images/roach_nonet/eyes_3.png differ
diff --git a/koperkapel/images/roach_nonet/eyes_4.png b/koperkapel/images/roach_nonet/eyes_4.png
new file mode 100644 (file)
index 0000000..8c584f5
Binary files /dev/null and b/koperkapel/images/roach_nonet/eyes_4.png differ
diff --git a/koperkapel/images/roach_nonet/roach_1.png b/koperkapel/images/roach_nonet/roach_1.png
new file mode 100644 (file)
index 0000000..aa357aa
Binary files /dev/null and b/koperkapel/images/roach_nonet/roach_1.png differ
diff --git a/koperkapel/images/roach_nonet/roach_2.png b/koperkapel/images/roach_nonet/roach_2.png
new file mode 100644 (file)
index 0000000..4d1d8ef
Binary files /dev/null and b/koperkapel/images/roach_nonet/roach_2.png differ
diff --git a/koperkapel/images/roach_nonet/roach_3.png b/koperkapel/images/roach_nonet/roach_3.png
new file mode 100644 (file)
index 0000000..f0f1160
Binary files /dev/null and b/koperkapel/images/roach_nonet/roach_3.png differ
diff --git a/koperkapel/images/roach_nonet/roach_4.png b/koperkapel/images/roach_nonet/roach_4.png
new file mode 100644 (file)
index 0000000..d830eab
Binary files /dev/null and b/koperkapel/images/roach_nonet/roach_4.png differ
diff --git a/koperkapel/images/roach_quartet/eyes_1.png b/koperkapel/images/roach_quartet/eyes_1.png
new file mode 100644 (file)
index 0000000..1ee83f6
Binary files /dev/null and b/koperkapel/images/roach_quartet/eyes_1.png differ
diff --git a/koperkapel/images/roach_quartet/eyes_2.png b/koperkapel/images/roach_quartet/eyes_2.png
new file mode 100644 (file)
index 0000000..b1df069
Binary files /dev/null and b/koperkapel/images/roach_quartet/eyes_2.png differ
diff --git a/koperkapel/images/roach_quartet/eyes_3.png b/koperkapel/images/roach_quartet/eyes_3.png
new file mode 100644 (file)
index 0000000..d28b5ac
Binary files /dev/null and b/koperkapel/images/roach_quartet/eyes_3.png differ
diff --git a/koperkapel/images/roach_quartet/eyes_4.png b/koperkapel/images/roach_quartet/eyes_4.png
new file mode 100644 (file)
index 0000000..5af7a66
Binary files /dev/null and b/koperkapel/images/roach_quartet/eyes_4.png differ
diff --git a/koperkapel/images/roach_quartet/roach_1.png b/koperkapel/images/roach_quartet/roach_1.png
new file mode 100644 (file)
index 0000000..9654f1f
Binary files /dev/null and b/koperkapel/images/roach_quartet/roach_1.png differ
diff --git a/koperkapel/images/roach_quartet/roach_2.png b/koperkapel/images/roach_quartet/roach_2.png
new file mode 100644 (file)
index 0000000..dbb1ac0
Binary files /dev/null and b/koperkapel/images/roach_quartet/roach_2.png differ
diff --git a/koperkapel/images/roach_quartet/roach_3.png b/koperkapel/images/roach_quartet/roach_3.png
new file mode 100644 (file)
index 0000000..0ac48e4
Binary files /dev/null and b/koperkapel/images/roach_quartet/roach_3.png differ
diff --git a/koperkapel/images/roach_quartet/roach_4.png b/koperkapel/images/roach_quartet/roach_4.png
new file mode 100644 (file)
index 0000000..66d08c6
Binary files /dev/null and b/koperkapel/images/roach_quartet/roach_4.png differ
index 42e9782c2fffbf2ee6fe29f308fa01f24d2cdb98..c88d2c72514b3ab55d07df4e57ce8679ef4cdf69 100644 (file)
@@ -1,855 +1 @@
-{
- "tiles": [
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    0, 
-    9
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    1, 
-    9
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    2, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    2, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    2, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    2, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    2, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    2, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    2, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    2, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    2, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    2, 
-    9
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    3, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    3, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    3, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    3, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    3, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    3, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    3, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    3, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    3, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    3, 
-    9
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    4, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    4, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    4, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    4, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    4, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    4, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    4, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    4, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    4, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    4, 
-    9
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    5, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    5, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    5, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    5, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    5, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    5, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    5, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    5, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    5, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    5, 
-    9
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    6, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    6, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    6, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    6, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    6, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    6, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    6, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    6, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    6, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    6, 
-    9
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    7, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    7, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    7, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    7, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    7, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    7, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    7, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    7, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [
-    "walk", 
-    "fly"
-   ], 
-   "base": "floor", 
-   "pos": [
-    7, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    7, 
-    9
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    8, 
-    9
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    0
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    1
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    2
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    3
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    4
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    5
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    6
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    7
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    8
-   ]
-  }, 
-  {
-   "behaviour": [], 
-   "base": "cwall", 
-   "pos": [
-    9, 
-    9
-   ]
-  }
- ]
-}
+{"width": 32, "tiles": [[{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}], [{"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}], [{"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": ["walk", "fly"], "base": "floor"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}, {"behaviour": [], "base": "cwall"}]], "height": 32}
\ No newline at end of file
diff --git a/koperkapel/loaders/levelloader.py b/koperkapel/loaders/levelloader.py
new file mode 100644 (file)
index 0000000..124161f
--- /dev/null
@@ -0,0 +1,36 @@
+"""Loader a level, using the pygame-zero ResourceLoader infrastructure"""
+
+import json
+
+from pgzero.loaders import images, ResourceLoader
+
+
+class LevelLoader(ResourceLoader):
+    """ Level loader. """
+
+    EXTNS = ['json']
+    TYPE = 'level'
+
+    def _load(self, level_path):
+        f = open(level_path, 'r')
+        level_data = json.load(f)
+        f.close()
+        self._height = len(level_data['tiles'])
+        self._width = len(level_data['tiles'][0])
+        self._tiles = level_data['tiles']
+        # Consistency check, so we can assume things are correct
+        # in the level renderer
+        for row, row_data in enumerate(self._tiles):
+            if len(row_data) != self._width:
+                raise RuntimeError("Incorrect len for row %d" % row)
+        self._load_tile_images()
+        return level_data
+
+    def _load_tile_images(self):
+        """Load all the tile images"""
+        for row_data in self._tiles:
+            for tile in row_data:
+                tile['image'] = images.load(tile['base'])
+
+
+levels = LevelLoader('levels')
index 109e39e752c92e0e6a9b966d049b5cca1d701635..ca9a23f6d11faeb364cb208ff3becbb26a34ca74 100644 (file)
@@ -4,10 +4,8 @@ import sys
 
 from .scenes.base import Engine
 from .scenes.menu import MenuScene
+from .constants import WIDTH, HEIGHT, TITLE
 
-TITLE = "Koperkapel"
-WIDTH = 1024
-HEIGHT = 768
 
 engine = Engine(sys.modules[__name__], MenuScene())
 
diff --git a/koperkapel/scenes/constants.py b/koperkapel/scenes/constants.py
deleted file mode 100644 (file)
index cc6f1cb..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# Various constants
-
-import os
-
-TILE_SIZE = 64
-
-# FIXME: Do betterer
-LEVEL_PATH = os.path.join(os.path.dirname(__file__), '..', 'levels')
index 6537e5c05e46067306317548feb21ddf95a3c4df..71373c06a08a80c86f1d9368074d94ba53f9a6f9 100644 (file)
@@ -1,40 +1,30 @@
 """Render a level"""
 
-import json
-import os
-
 from pgzero.constants import keys
-from pgzero.loaders import images
+from ..loaders.levelloader import levels
 from .base import Scene, ChangeSceneEvent
-from .constants import TILE_SIZE, LEVEL_PATH
+from ..constants import TILE_SIZE, WIDTH, HEIGHT
 
 
 class LevelScene(Scene):
     """ Level scene. """
 
     def __init__(self, level_name):
-        self._level_name = level_name
-        f = open(os.path.join(LEVEL_PATH, level_name + '.json'))
-        level_data = json.load(f)
-        f.close()
-        self._tiles = level_data['tiles']
-        self._load_tile_images()
+        self._level_data = levels.load(level_name)
+        self._tiles = self._level_data['tiles']
 
-    def draw(self, screen):
+    def draw(self, screen, viewport=(0, 0)):
         screen.clear()
-        #screen.draw.text("This is level {}".format(self._level_name), (200, 100))
-        for tile in self._tiles:
-            pos = tile['pos']
-            pos = [pos[0] * TILE_SIZE, pos[1] * TILE_SIZE]
-            if not 'image' in tile:
-                # Skip broken tiles for now
-                continue
-            screen.blit(tile['image'], pos)
-
-    def _load_tile_images(self):
-        """Load all the tile images"""
-        for tile in self._tiles:
-            tile['image'] = getattr(images, tile['base'])
+        for y, row in enumerate(self._tiles):
+            for x, tile in enumerate(row):
+                pos = (x * TILE_SIZE - viewport[0],
+                       y * TILE_SIZE - viewport[1])
+                if 'image' not in tile:
+                    # Skip broken tiles for now
+                    continue
+                if 0 <= pos[0] < WIDTH:
+                    if 0 <= pos[1] < HEIGHT:
+                        screen.blit(tile['image'], pos)
 
     def on_key_down(self, key, mod, unicode):
         if key == keys.ESCAPE:
index 39ab12c1ff1e1615edc25dc191ce007ff84f97c7..c91c14213e99ae00226065d17129d96be90f1e55 100644 (file)
@@ -18,6 +18,8 @@ class MenuScene(Scene):
         self._nav = ActorNavigator()
         self._menu = [
             TextButton("Play", action=self.change_to_level),
+            TextButton("View Last Generated Level",
+                       action=self.change_to_viewer),
             TextButton("Credits", action=self.change_to_credits),
             TextButton("Quit", action=self.quit),
         ]
@@ -33,6 +35,10 @@ class MenuScene(Scene):
         from .level import LevelScene
         return [ChangeSceneEvent(LevelScene('level1'))]
 
+    def change_to_viewer(self):
+        from .viewlevel import ViewLevelScene
+        return [ChangeSceneEvent(ViewLevelScene('map'))]
+
     def change_to_credits(self):
         from .credits import CreditsScene
         return [ChangeSceneEvent(CreditsScene())]
diff --git a/koperkapel/scenes/viewlevel.py b/koperkapel/scenes/viewlevel.py
new file mode 100644 (file)
index 0000000..8a101df
--- /dev/null
@@ -0,0 +1,31 @@
+"""Render a level and allow moving the scene"""
+
+from pgzero.constants import keys
+from .level import LevelScene
+from ..constants import TILE_SIZE
+
+
+class ViewLevelScene(LevelScene):
+    """ Level scene. """
+
+    def __init__(self, level_name):
+        super(ViewLevelScene, self).__init__(level_name)
+        self._pos = (0, 0)
+
+    def draw(self, screen):
+        super(ViewLevelScene, self).draw(screen, self._pos)
+
+    def on_key_down(self, key, mod, unicode):
+        if key == keys.DOWN:
+            self._pos = self._pos[0], self._pos[1] + TILE_SIZE
+            return
+        elif key == keys.UP:
+            self._pos = self._pos[0], self._pos[1] - TILE_SIZE
+            return
+        elif key == keys.LEFT:
+            self._pos = self._pos[0] - TILE_SIZE, self._pos[1]
+            return
+        elif key == keys.RIGHT:
+            self._pos = self._pos[0] + TILE_SIZE, self._pos[1]
+            return
+        return super(ViewLevelScene, self).on_key_down(key, mod, unicode)
index bb1a2599e6a275ffe2879b9a9e84ceda4c111258..af9d37002056383044e005eaebbb2a9d19a48d79 100755 (executable)
@@ -1,10 +1,59 @@
 #!/bin/bash
 
+# Simple generation of 64x64 tiles
+
+imgdir=../../koperkapel/images
+
 for dir in roach
 do
-       mkdir -p ../../images/$dir
+       mkdir -p ${imgdir}/$dir
        for x in $dir/*
        do
-               inkscape -z -e ../../images/${x%.*}.png -w 64 -h 64 $x
+               inkscape -z -e ${imgdir}/${x%.*}.png -w 64 -h 64 $x
        done
 done
+
+# Smaller roaches
+
+for size in 32 21
+do
+       mkdir -p ${imgdir}/roach_${size}
+
+       for x in roach/*
+       do
+               xbase=`basename $x`
+               inkscape -z -e ${imgdir}/roach_${size}/${xbase%.*}.png -w ${size} -h ${size} $x
+       done
+done
+
+# Roach quartet
+
+mkdir -p ${imgdir}/roach_quartet
+
+function quartet_tile {
+       for tile in roach eyes
+       do
+               montage ${imgdir}/roach_32/${tile}_${1}.png ${imgdir}/roach_32/${tile}_${2}.png ${imgdir}/roach_32/${tile}_${3}.png ${imgdir}/roach_32/${tile}_${4}.png -geometry -10+0 -background none ${imgdir}/roach_quartet/${tile}_${1}.png
+       done
+}
+
+quartet_tile 1 2 3 4
+quartet_tile 2 3 4 1
+quartet_tile 3 4 1 2
+quartet_tile 4 1 2 3
+
+# Roach nonet
+
+mkdir -p ${imgdir}/roach_nonet
+
+function nonet_tile {
+       for tile in roach eyes
+       do
+               montage ${imgdir}/roach_21/${tile}_${1}.png ${imgdir}/roach_21/${tile}_${2}.png ${imgdir}/roach_21/${tile}_${3}.png ${imgdir}/roach_21/${tile}_${4}.png ${imgdir}/roach_21/${tile}_${1}.png ${imgdir}/roach_21/${tile}_${2}.png ${imgdir}/roach_21/${tile}_${3}.png ${imgdir}/roach_21/${tile}_${4}.png ${imgdir}/roach_21/${tile}_${1}.png -geometry +0+0 -background none - | convert - -background none -gravity southeast -splice 1x1 ${imgdir}/roach_nonet/${tile}_${1}.png
+       done
+}
+
+nonet_tile 1 2 3 4
+nonet_tile 2 3 4 1
+nonet_tile 3 4 1 2
+nonet_tile 4 1 2 3