summaryrefslogtreecommitdiff
path: root/testing_data
diff options
context:
space:
mode:
authorLawnCable <git@lawncable.net>2022-04-15 08:36:36 +0200
committerLawnCable <git@lawncable.net>2022-04-15 08:36:36 +0200
commitec09c0ae43799846a68a4e100a68353730edfed1 (patch)
treeaddf32caaad9b2968abb633476b02ed31e85f50f /testing_data
downloadfast-tiled.rs-ec09c0ae43799846a68a4e100a68353730edfed1.tar.gz
fast-tiled.rs-ec09c0ae43799846a68a4e100a68353730edfed1.tar.bz2
fast-tiled.rs-ec09c0ae43799846a68a4e100a68353730edfed1.tar.xz
fast-tiled.rs-ec09c0ae43799846a68a4e100a68353730edfed1.zip
init
Diffstat (limited to 'testing_data')
-rw-r--r--testing_data/tiled_examples/AUTHORS11
-rw-r--r--testing_data/tiled_examples/buch-outdoor.pngbin0 -> 16549 bytes
-rw-r--r--testing_data/tiled_examples/desert.tmx9
-rw-r--r--testing_data/tiled_examples/desert.tsx68
-rw-r--r--testing_data/tiled_examples/hexagonal-mini.tmx12
-rw-r--r--testing_data/tiled_examples/hexmini.pngbin0 -> 5784 bytes
-rw-r--r--testing_data/tiled_examples/isometric_grass_and_water.pngbin0 -> 104828 bytes
-rw-r--r--testing_data/tiled_examples/isometric_grass_and_water.tmx43
-rw-r--r--testing_data/tiled_examples/isometric_staggered_grass_and_water.tmx66
-rw-r--r--testing_data/tiled_examples/orthogonal-outside.tmx284
-rw-r--r--testing_data/tiled_examples/perspective_walls.pngbin0 -> 3700 bytes
-rw-r--r--testing_data/tiled_examples/perspective_walls.tmx19
-rw-r--r--testing_data/tiled_examples/perspective_walls.tsx20
-rw-r--r--testing_data/tiled_examples/rpg/beach_tileset.pngbin0 -> 36457 bytes
-rw-r--r--testing_data/tiled_examples/rpg/beach_tileset.tsx20
-rw-r--r--testing_data/tiled_examples/rpg/island.tmx26
-rw-r--r--testing_data/tiled_examples/rpg/readme.txt28
-rw-r--r--testing_data/tiled_examples/sewer_automap/rule_001.tmx29
-rw-r--r--testing_data/tiled_examples/sewer_automap/rule_002.tmx24
-rw-r--r--testing_data/tiled_examples/sewer_automap/rule_003.tmx30
-rw-r--r--testing_data/tiled_examples/sewer_automap/rule_004.tmx29
-rw-r--r--testing_data/tiled_examples/sewer_automap/rule_005.tmx29
-rw-r--r--testing_data/tiled_examples/sewer_automap/rule_006.tmx39
-rw-r--r--testing_data/tiled_examples/sewer_automap/rule_007.tmx34
-rw-r--r--testing_data/tiled_examples/sewer_automap/rule_008.tmx35
-rw-r--r--testing_data/tiled_examples/sewer_automap/rule_009.tmx30
-rw-r--r--testing_data/tiled_examples/sewer_automap/rules.txt142
-rw-r--r--testing_data/tiled_examples/sewer_automap/rules_sewers.pngbin0 -> 314 bytes
-rw-r--r--testing_data/tiled_examples/sewer_automap/sewers.tmx15
-rw-r--r--testing_data/tiled_examples/sewer_tileset.pngbin0 -> 22249 bytes
-rw-r--r--testing_data/tiled_examples/sewers.tmx16
-rw-r--r--testing_data/tiled_examples/sticker-knight/README.md8
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/alter.pngbin0 -> 2230 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/backgroundArch.pngbin0 -> 797 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/backgroundMountain.pngbin0 -> 1411 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/backgroundTower.pngbin0 -> 1503 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/backgroundTree.pngbin0 -> 1137 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/blobBlue.pngbin0 -> 2915 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/blobGreen.pngbin0 -> 2891 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/blue.pngbin0 -> 136 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/bombStroked.pngbin0 -> 2444 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/castleWall.pngbin0 -> 136 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/cloud.pngbin0 -> 1674 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/column1.pngbin0 -> 2620 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/column2.pngbin0 -> 2605 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/doorBlueStroked.pngbin0 -> 4528 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/doorGreenStroke.pngbin0 -> 4546 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/doorRedStroked.pngbin0 -> 4439 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/doorStroked.pngbin0 -> 4292 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/earthWall.pngbin0 -> 136 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/earthWall2.pngbin0 -> 136 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/exit.pngbin0 -> 1182 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/flare.pngbin0 -> 4248 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/gemBlueStroked.pngbin0 -> 1393 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/gemRedStroked.pngbin0 -> 4235 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/grassLarge.pngbin0 -> 1505 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/grassSmall.pngbin0 -> 1180 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/grey.pngbin0 -> 135 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/hero.pngbin0 -> 4155 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/keyGreenStroked.pngbin0 -> 909 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/keyRedStroked.pngbin0 -> 5063 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/keyYellowStroked.pngbin0 -> 1013 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/objs.tsx189
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platform1.pngbin0 -> 2101 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platform2.pngbin0 -> 2006 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platform3.pngbin0 -> 1281 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platform4.pngbin0 -> 1277 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformBase1.pngbin0 -> 3166 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformBase2.pngbin0 -> 3162 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformBase3.pngbin0 -> 2445 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformBase4.pngbin0 -> 2425 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformBlock1.pngbin0 -> 1139 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformBlock2.pngbin0 -> 1127 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformBlock3.pngbin0 -> 1115 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformBlock4.pngbin0 -> 1158 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformConnector1.pngbin0 -> 668 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformConnector2.pngbin0 -> 659 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformConnector3.pngbin0 -> 662 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/platformConnector4.pngbin0 -> 666 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/pushBlock1.pngbin0 -> 5018 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/pushBlock2.pngbin0 -> 4147 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/pushBlock3.pngbin0 -> 4117 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/sandbox.tmx234
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/sandbox2.tmx301
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/shadow.pngbin0 -> 84 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/shieldStroked.pngbin0 -> 2259 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/sign.pngbin0 -> 1682 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/skeleton.pngbin0 -> 5129 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/swordStroked.pngbin0 -> 1460 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/templates/block.tx11
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/templates/diamond.tx5
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/templates/hero.tx5
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/torch.pngbin0 -> 1511 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/trap.pngbin0 -> 5467 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/wallDecor1.pngbin0 -> 1875 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/wallDecor2.pngbin0 -> 1869 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/wallDecor3.pngbin0 -> 1578 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/window1.pngbin0 -> 1134 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/window2.pngbin0 -> 1141 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/map/window3.pngbin0 -> 745 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/preview.pngbin0 -> 898097 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/sprites.pngbin0 -> 83899 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/backgroundSet.pngbin0 -> 9664 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/block.pngbin0 -> 137 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/buttonHelp.pngbin0 -> 2567 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/buttonStart.pngbin0 -> 2668 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/cloud.pngbin0 -> 1674 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/gem.pngbin0 -> 1171 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/heart.pngbin0 -> 1367 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/helpBackground.pngbin0 -> 47994 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/shield.pngbin0 -> 1702 bytes
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/title.json281
-rw-r--r--testing_data/tiled_examples/sticker-knight/ui/title.pngbin0 -> 12428 bytes
-rw-r--r--testing_data/tiled_examples/test_hexagonal_tile_60x60x30.pngbin0 -> 2934 bytes
-rw-r--r--testing_data/tiled_examples/test_hexagonal_tile_60x60x30.tmx30
-rw-r--r--testing_data/tiled_examples/tmw_desert_spacing.pngbin0 -> 37830 bytes
116 files changed, 2122 insertions, 0 deletions
diff --git a/testing_data/tiled_examples/AUTHORS b/testing_data/tiled_examples/AUTHORS
new file mode 100644
index 0000000..37c09e9
--- /dev/null
+++ b/testing_data/tiled_examples/AUTHORS
@@ -0,0 +1,11 @@
+Tilesets:
+
+perspective_walls.png - (C) Clint Bellanger, released as Public Domain
+isometric_grass_and_water.png - (C) Clint Bellanger, released as GPL2, GPL3, CC-BY-SA3
+tmw_desert_spacing.png - (C) The Mana World Development Team, GPL
+sewer_tileset.png - (C) Blues Brothers RPG developers, GPL
+Replica Island - (C) Chris Pruett and Genki Mine, Apache (except hotspots.png)
+hexmini.png - Public Domain, http://opengameart.org/content/pixel-hex-tilesets-enhanced
+buch-outdoor.png - (C) Michele "Buch" Bucelli, CC-BY 3.0, http://opengameart.org/users/buch
+examples/sticker-knight - (C) Ponywolf, CC0, http://opengameart.org/content/sticker-knight-platformer
+wangblob.png, CC0, https://opengameart.org/content/seamless-tileset-template-ii \ No newline at end of file
diff --git a/testing_data/tiled_examples/buch-outdoor.png b/testing_data/tiled_examples/buch-outdoor.png
new file mode 100644
index 0000000..94a387c
--- /dev/null
+++ b/testing_data/tiled_examples/buch-outdoor.png
Binary files differ
diff --git a/testing_data/tiled_examples/desert.tmx b/testing_data/tiled_examples/desert.tmx
new file mode 100644
index 0000000..cc5e308
--- /dev/null
+++ b/testing_data/tiled_examples/desert.tmx
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" tiledversion="1.1.5" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="32" tileheight="32" infinite="0" nextlayerid="2" nextobjectid="1">
+ <tileset firstgid="1" source="desert.tsx"/>
+ <layer id="1" name="Ground" width="40" height="40">
+ <data encoding="base64" compression="zlib">
+ eJztmNkKwjAQRaN9cAPrAq5Yq3Xf6v9/nSM2VIbQJjEZR+nDwQZScrwztoORECLySBcIgZ7nc2y4KfyWDLx+Jb9nViNgDEwY+KioAXUgQN4+zpoCMwPmQAtoAx2CLFbA2oDEo9+hwG8DnIDtF/2K8ks086Tw2zH0uyMv7HcRr/6/EvvhnsPrsrxwX7rwU/0ODig/eV3mh3N1ld8eraWPaX6+64s9McesfrqcHfg1MpoifxcVEWjukyw+9AtFPl/I71pER3Of6j4bv7HI54s+MChhqLlPdZ/P3qMmFuo5h5NnTOhjM5tReN2yT51n5/v7J3F0vi46fk+ne7aX0i9l6If7mpufTX3f5wsqv9TAD2fJLT9VrTn7UeZnM5tR+v0LMQOHXwFnxe2/warGFRWf8QDjOLfP
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/desert.tsx b/testing_data/tiled_examples/desert.tsx
new file mode 100644
index 0000000..c2a2cfc
--- /dev/null
+++ b/testing_data/tiled_examples/desert.tsx
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tileset version="1.4" tiledversion="1.4.3" name="Desert" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
+ <image source="tmw_desert_spacing.png" width="265" height="199"/>
+ <tile id="30" probability="0.01"/>
+ <tile id="31" probability="0.01"/>
+ <tile id="37" probability="0.01"/>
+ <tile id="38" probability="0.01"/>
+ <tile id="39" probability="0.01"/>
+ <tile id="45" probability="0"/>
+ <tile id="46" probability="0.01"/>
+ <tile id="47" probability="0.01"/>
+ <wangsets>
+ <wangset name="Desert" type="corner" tile="5">
+ <wangcolor name="Desert" color="#ff0000" tile="29" probability="1"/>
+ <wangcolor name="Brick" color="#00ff00" tile="9" probability="1"/>
+ <wangcolor name="Cobblestone" color="#0000ff" tile="33" probability="1"/>
+ <wangcolor name="Dirt" color="#ff7700" tile="14" probability="1"/>
+ <wangtile tileid="0" wangid="0,1,0,2,0,1,0,1"/>
+ <wangtile tileid="1" wangid="0,1,0,2,0,2,0,1"/>
+ <wangtile tileid="2" wangid="0,1,0,1,0,2,0,1"/>
+ <wangtile tileid="3" wangid="0,4,0,1,0,4,0,4"/>
+ <wangtile tileid="4" wangid="0,4,0,4,0,1,0,4"/>
+ <wangtile tileid="5" wangid="0,1,0,4,0,1,0,1"/>
+ <wangtile tileid="6" wangid="0,1,0,4,0,4,0,1"/>
+ <wangtile tileid="7" wangid="0,1,0,1,0,4,0,1"/>
+ <wangtile tileid="8" wangid="0,2,0,2,0,1,0,1"/>
+ <wangtile tileid="9" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="10" wangid="0,1,0,1,0,2,0,2"/>
+ <wangtile tileid="11" wangid="0,1,0,4,0,4,0,4"/>
+ <wangtile tileid="12" wangid="0,4,0,4,0,4,0,1"/>
+ <wangtile tileid="13" wangid="0,4,0,4,0,1,0,1"/>
+ <wangtile tileid="14" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="15" wangid="0,1,0,1,0,4,0,4"/>
+ <wangtile tileid="16" wangid="0,2,0,1,0,1,0,1"/>
+ <wangtile tileid="17" wangid="0,2,0,1,0,1,0,2"/>
+ <wangtile tileid="18" wangid="0,1,0,1,0,1,0,2"/>
+ <wangtile tileid="19" wangid="0,2,0,1,0,2,0,2"/>
+ <wangtile tileid="20" wangid="0,2,0,2,0,1,0,2"/>
+ <wangtile tileid="21" wangid="0,4,0,1,0,1,0,1"/>
+ <wangtile tileid="22" wangid="0,4,0,1,0,1,0,4"/>
+ <wangtile tileid="23" wangid="0,1,0,1,0,1,0,4"/>
+ <wangtile tileid="24" wangid="0,1,0,3,0,1,0,1"/>
+ <wangtile tileid="25" wangid="0,1,0,3,0,3,0,1"/>
+ <wangtile tileid="26" wangid="0,1,0,1,0,3,0,1"/>
+ <wangtile tileid="27" wangid="0,1,0,2,0,2,0,2"/>
+ <wangtile tileid="28" wangid="0,2,0,2,0,2,0,1"/>
+ <wangtile tileid="29" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="30" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="31" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="32" wangid="0,3,0,3,0,1,0,1"/>
+ <wangtile tileid="33" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="34" wangid="0,1,0,1,0,3,0,3"/>
+ <wangtile tileid="35" wangid="0,3,0,1,0,3,0,3"/>
+ <wangtile tileid="36" wangid="0,3,0,3,0,1,0,3"/>
+ <wangtile tileid="37" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="38" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="39" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="40" wangid="0,3,0,1,0,1,0,1"/>
+ <wangtile tileid="41" wangid="0,3,0,1,0,1,0,3"/>
+ <wangtile tileid="42" wangid="0,1,0,1,0,1,0,3"/>
+ <wangtile tileid="43" wangid="0,1,0,3,0,3,0,3"/>
+ <wangtile tileid="44" wangid="0,3,0,3,0,3,0,1"/>
+ <wangtile tileid="45" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="46" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="47" wangid="0,1,0,1,0,1,0,1"/>
+ </wangset>
+ </wangsets>
+</tileset>
diff --git a/testing_data/tiled_examples/hexagonal-mini.tmx b/testing_data/tiled_examples/hexagonal-mini.tmx
new file mode 100644
index 0000000..388fd5b
--- /dev/null
+++ b/testing_data/tiled_examples/hexagonal-mini.tmx
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="hexagonal" renderorder="right-down" width="20" height="20" tilewidth="14" tileheight="12" hexsidelength="6" staggeraxis="y" staggerindex="odd" nextobjectid="2">
+ <tileset firstgid="1" name="hex mini" tilewidth="18" tileheight="18">
+ <tileoffset x="0" y="1"/>
+ <image source="hexmini.png" width="106" height="72"/>
+ </tileset>
+ <layer name="Ground" width="20" height="20">
+ <data encoding="base64" compression="zlib">
+ eJyl1FEKhDAMBNBSt6jVaL3/Za2QwDAkVdiPQda2zyTonimlU1N6Ws+lkZ6l56AUXcPY2qlniv5uL5Z5BdyDvFXXMoX3Rp44axl6nqFejj3LLK6xgmf3Zg06Qs+O+qiaDOZOVgXPs7jfCme8Hkce1+fNlGdlM3myDTzc580fz1htW2Baj15/R/J72wLvcVZN5HnzGnmVPJ5hNH+0dt33j4ex91TARUs+WjNZz/fewKvJfy+/1naR+dX7OfdEnUYefyOeZZ7Vht/b5HjefxJbO1iTE7YWuEpg5hfPzi8D782x3Mg7DV4=
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/hexmini.png b/testing_data/tiled_examples/hexmini.png
new file mode 100644
index 0000000..12d17bf
--- /dev/null
+++ b/testing_data/tiled_examples/hexmini.png
Binary files differ
diff --git a/testing_data/tiled_examples/isometric_grass_and_water.png b/testing_data/tiled_examples/isometric_grass_and_water.png
new file mode 100644
index 0000000..b342a0c
--- /dev/null
+++ b/testing_data/tiled_examples/isometric_grass_and_water.png
Binary files differ
diff --git a/testing_data/tiled_examples/isometric_grass_and_water.tmx b/testing_data/tiled_examples/isometric_grass_and_water.tmx
new file mode 100644
index 0000000..1ddc0ed
--- /dev/null
+++ b/testing_data/tiled_examples/isometric_grass_and_water.tmx
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.4" tiledversion="1.4.3" orientation="isometric" renderorder="right-down" width="25" height="25" tilewidth="64" tileheight="32" infinite="0" nextlayerid="2" nextobjectid="1">
+ <tileset firstgid="1" name="isometric_grass_and_water" tilewidth="64" tileheight="64" tilecount="24" columns="4">
+ <tileoffset x="0" y="16"/>
+ <grid orientation="isometric" width="64" height="32"/>
+ <image source="isometric_grass_and_water.png" width="256" height="384"/>
+ <wangsets>
+ <wangset name="Grass and Water" type="corner" tile="15">
+ <wangcolor name="Grass" color="#8ab022" tile="0" probability="1"/>
+ <wangcolor name="Water" color="#378dc2" tile="23" probability="1"/>
+ <wangtile tileid="0" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="1" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="2" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="3" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="4" wangid="0,1,0,2,0,1,0,1"/>
+ <wangtile tileid="5" wangid="0,1,0,1,0,2,0,1"/>
+ <wangtile tileid="6" wangid="0,1,0,1,0,1,0,2"/>
+ <wangtile tileid="7" wangid="0,2,0,1,0,1,0,1"/>
+ <wangtile tileid="8" wangid="0,2,0,2,0,2,0,1"/>
+ <wangtile tileid="9" wangid="0,1,0,2,0,2,0,2"/>
+ <wangtile tileid="10" wangid="0,2,0,1,0,2,0,2"/>
+ <wangtile tileid="11" wangid="0,2,0,2,0,1,0,2"/>
+ <wangtile tileid="12" wangid="0,1,0,2,0,2,0,1"/>
+ <wangtile tileid="13" wangid="0,1,0,1,0,2,0,2"/>
+ <wangtile tileid="14" wangid="0,2,0,1,0,1,0,2"/>
+ <wangtile tileid="15" wangid="0,2,0,2,0,1,0,1"/>
+ <wangtile tileid="16" wangid="0,1,0,2,0,2,0,1"/>
+ <wangtile tileid="17" wangid="0,1,0,1,0,2,0,2"/>
+ <wangtile tileid="18" wangid="0,2,0,1,0,1,0,2"/>
+ <wangtile tileid="19" wangid="0,2,0,2,0,1,0,1"/>
+ <wangtile tileid="20" wangid="0,2,0,1,0,2,0,1"/>
+ <wangtile tileid="21" wangid="0,1,0,2,0,1,0,2"/>
+ <wangtile tileid="22" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="23" wangid="0,2,0,2,0,2,0,2"/>
+ </wangset>
+ </wangsets>
+ </tileset>
+ <layer id="1" name="Tile Layer 1" width="25" height="25">
+ <data encoding="base64" compression="zlib">
+ eJx1lttywjAMROVgyqVtAoFC/v9L68xoh5PFPGhIYktrrVYyS0QszZ7Nvpvd0n7y24L1Q7MhrTSreN/le821HZ7lv9qYa6sdE0cYs/kX7PXYwtfaevYp7WDrd+SnHByjYr/npP1zZ4/elcuM71rjeckdc5KNHX75fMwc9s2uzb6AsYstJzwrv5/Tz89SLIZy8v203llV8xl7yMU+462/v81OqA114/UhrzUxRqwprnh6ZGzp2PNQfPqRu/X9hnMV8F/xLg1L42erDf2oaa2RI2qPtbgbhmw2H69nMUxx/gVccXdC3AW/o/HV60vW59Lhu8arDxmfGIPFUV1qbLVQEIs4PlOeHQxqVjmzr5mLYsmf+5Qj5yM1r3Ne4p1D5VcMh3qWZibLx2fYkBhPYOv81I9wbrGd45zFU7zrndpwDjkHXXfej9zHc3EG+D3AWcCZMJif7hTnVxr6i9edtoBDz8N7kxqbY6sN9gJnsnqIOqCme7Un76579sIV8dccHvHqZefH76BP9wjzkVapM2rL+5/8cR6QS9eh8p2AT12y5oO9+7yh5hzLZypnHX29/pzB9PE7bOg8Mza5KvGu4R7mp/89zqvr7x+TnxEn
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/isometric_staggered_grass_and_water.tmx b/testing_data/tiled_examples/isometric_staggered_grass_and_water.tmx
new file mode 100644
index 0000000..bb86c9f
--- /dev/null
+++ b/testing_data/tiled_examples/isometric_staggered_grass_and_water.tmx
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.4" tiledversion="1.4.3" orientation="staggered" renderorder="right-down" width="25" height="50" tilewidth="64" tileheight="32" infinite="1" staggeraxis="y" staggerindex="odd" nextlayerid="2" nextobjectid="1">
+ <tileset firstgid="1" name="isometric_grass_and_water" tilewidth="64" tileheight="64" tilecount="24" columns="4">
+ <tileoffset x="0" y="16"/>
+ <grid orientation="isometric" width="64" height="32"/>
+ <image source="isometric_grass_and_water.png" width="256" height="384"/>
+ <wangsets>
+ <wangset name="Terrains" type="corner" tile="15">
+ <wangcolor name="Grass" color="#8ae234" tile="0" probability="1"/>
+ <wangcolor name="Water" color="#729fcf" tile="22" probability="1"/>
+ <wangtile tileid="0" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="1" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="2" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="3" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="4" wangid="0,1,0,2,0,1,0,1"/>
+ <wangtile tileid="5" wangid="0,1,0,1,0,2,0,1"/>
+ <wangtile tileid="6" wangid="0,1,0,1,0,1,0,2"/>
+ <wangtile tileid="7" wangid="0,2,0,1,0,1,0,1"/>
+ <wangtile tileid="8" wangid="0,2,0,2,0,2,0,1"/>
+ <wangtile tileid="9" wangid="0,1,0,2,0,2,0,2"/>
+ <wangtile tileid="10" wangid="0,2,0,1,0,2,0,2"/>
+ <wangtile tileid="11" wangid="0,2,0,2,0,1,0,2"/>
+ <wangtile tileid="12" wangid="0,1,0,2,0,2,0,1"/>
+ <wangtile tileid="13" wangid="0,1,0,1,0,2,0,2"/>
+ <wangtile tileid="14" wangid="0,2,0,1,0,1,0,2"/>
+ <wangtile tileid="15" wangid="0,2,0,2,0,1,0,1"/>
+ <wangtile tileid="16" wangid="0,1,0,2,0,2,0,1"/>
+ <wangtile tileid="17" wangid="0,1,0,1,0,2,0,2"/>
+ <wangtile tileid="18" wangid="0,2,0,1,0,1,0,2"/>
+ <wangtile tileid="19" wangid="0,2,0,2,0,1,0,1"/>
+ <wangtile tileid="20" wangid="0,2,0,1,0,2,0,1"/>
+ <wangtile tileid="21" wangid="0,1,0,2,0,1,0,2"/>
+ <wangtile tileid="22" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="23" wangid="0,2,0,2,0,2,0,2"/>
+ </wangset>
+ </wangsets>
+ </tileset>
+ <layer id="1" name="Tile Layer 1" width="25" height="50">
+ <data encoding="base64" compression="zlib">
+ <chunk x="0" y="0" width="16" height="16">
+ eJxdk9sSgyAQQ7FSsVovtY76/19amEnGUx4yCrtks1m4QghXxpkxZnyFt/YuxFPGQ2gyImIFc0Yr9OLw+U35jeL+lpqLkMBbYjt0JdTl+Q351ua1NZScJ9CCY676qf971S7fl9CBY9Ca59intSzywfWcb2+aSnsrrZ2+E3qJ4Dan9fqMtR/QPVR5u2ad4If7jVh7jqe4I/ygbvdl/Zzjpfqek/1gr5P4m/Dv0RruOzZVnrr2ihod9ovOMdx3+RPuO7Cg7x055nAPKdzv4VTf1sF7wjfDOVkD31KnfftMDs7UsaRZjYK9pM/m8EzreZS9QzUm9fwDPTIJFw==
+ </chunk>
+ <chunk x="16" y="0" width="16" height="16">
+ eJyVUu0KwjAMvGbVjU3F/XLv/6Q2kNCbShMDBytrch+pAJCGqaEaCp31e1S/+oqd/d+oKt2VDy2S4Od7FWctjqifPbiOrH7mYR2CHP8FPTP2zV5GtVuvzrnie5cS9B82Y2mYSYcj0v8yXt77P/lr/0p3J/OS9a/67+iZPU2P7y/iv5GHYv0r8vtn/ZrhRrP8LUX8B3qGM/oeMvtT/gfOeblvfwujegOrqALV
+ </chunk>
+ <chunk x="0" y="16" width="16" height="16">
+ eJydUtkKwzAMy+FerOtGU0j//0tngwJamga2B5HEtuQrwTkXFF4hgIdtUIy4l/dbsShOnJ44keKe8G+wH8QzZCAQN1JsRtwO/aPiPnAXaHDds+KlSIoJ70y8Hf6Tai4aQjZP+onqmRCzUu0lN/chpJPALfYZb+bxHMV970Mob4mfKEer5kD63GOs4r277rGlx71Guv+DOvcviDcaQ3X2IO5av+3E/q39tbHD452wz3a80F5bPfP8WjNYO/w6Z823+rfODIR8BR8vlwUi
+ </chunk>
+ <chunk x="16" y="16" width="16" height="16">
+ eJydUlsOwzAIg66vPdS11aTl/icdaLbCF8mGZJFIMTaQIiI3w2C4AH4ecfacxd0wgzMZFDwNNbNw7QXvX6jFGiNqZDHj7W7YwInetcHf8HY1nFL7n0IfWSiwBL/exyF989Pgd8DdvRSps8gi7oz5Kd+59viPs6K+58cf+uxlhT5n09In4t579cnjzjzzL/To0zN5R/DPnlr6/H9v8Om9h0995xfUuP7gn/+NXM+n1Lm0+B9/vgOT
+ </chunk>
+ <chunk x="0" y="32" width="16" height="16">
+ eJy9k1EPgjAMhDsVQUFFXLL9/1/qFrt4XFrliYcvwLrj2ksaRCQAvT5j4Ua1Y6ErzIWLEgxqPRWedB5Vk7WeHH3UWqYeZtJmxztD/Uz/bOfZ8R/gXuVKMzGsf4FH0v4Hx9vqvzLBvZbBJOvZPT17Jc3c8vbyf9B9zhyx9C2D0ejlX//YwwJzjw4HR99DFnf9tvD8cZZF36vXST57gDvxS7/FY286+e7xGy8BCeE=
+ </chunk>
+ <chunk x="16" y="32" width="16" height="16">
+ eJydkosKgzAMRaNO3Xzt4UD//0u9xVwMZbTpCgdRcm5CzSwid7CDUZ8DuIFKSZ0ZrGABE9hABxqnv2lGb+YYCv231k/mvS7wd52Z/TkTZ0gdzhvq1iivtH+ofUaZHv9jZqXv7R9qF60L/7zWDH7L+axr5Lrz3rgenx4z7O61Gb+KsO5Xzvsp8S3ch3997mPqtMov/+Xo/5BzV+MMurn+B0mZBM8=
+ </chunk>
+ <chunk x="0" y="48" width="16" height="16">
+ eJxjZGBgYCQRiwAxJxSTqpcDiCWQ8CgYBaNg4AAADXoAkA==
+ </chunk>
+ <chunk x="16" y="48" width="16" height="16">
+ eJwTZ2BgEAdiTiDmBWJGKBYAYgmoHD4AUwPCbFC9HGjio2AUjILBCQBLaAEh
+ </chunk>
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/orthogonal-outside.tmx b/testing_data/tiled_examples/orthogonal-outside.tmx
new file mode 100644
index 0000000..5b2eeef
--- /dev/null
+++ b/testing_data/tiled_examples/orthogonal-outside.tmx
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="45" height="31" tilewidth="16" tileheight="16" infinite="0" nextlayerid="4" nextobjectid="37">
+ <properties>
+ <property name="enemyTint" type="color" value="#ffa33636"/>
+ </properties>
+ <tileset firstgid="1" name="outdoor" tilewidth="16" tileheight="16" tilecount="288" columns="24">
+ <image source="buch-outdoor.png" width="384" height="192"/>
+ <tile id="6" probability="0.1"/>
+ <tile id="27" probability="0.05"/>
+ <tile id="28" probability="0.05"/>
+ <tile id="30" probability="0.1"/>
+ <tile id="51" probability="0.05"/>
+ <tile id="52" probability="0.05"/>
+ <tile id="54" probability="0.1"/>
+ <tile id="75" probability="0.05"/>
+ <tile id="76" probability="0.05"/>
+ <tile id="78" probability="0.1"/>
+ <tile id="82" probability="0.1"/>
+ <tile id="83" probability="0.1"/>
+ <tile id="99" probability="0.05"/>
+ <tile id="102" probability="0.1"/>
+ <tile id="106" probability="0.1"/>
+ <tile id="107" probability="0.1"/>
+ <tile id="126" probability="0.1"/>
+ <wangsets>
+ <wangset name="Terrains" type="corner" tile="25">
+ <wangcolor name="Grass" color="#fce94f" tile="150" probability="1"/>
+ <wangcolor name="Dirt" color="#ef2929" tile="100" probability="1"/>
+ <wangcolor name="Dark Dirt" color="#f57900" tile="34" probability="1"/>
+ <wangcolor name="Water" color="#729fcf" tile="171" probability="1"/>
+ <wangtile tileid="0" wangid="0,1,0,2,0,1,0,1"/>
+ <wangtile tileid="1" wangid="0,1,0,2,0,2,0,1"/>
+ <wangtile tileid="2" wangid="0,1,0,2,0,2,0,1"/>
+ <wangtile tileid="3" wangid="0,1,0,2,0,2,0,1"/>
+ <wangtile tileid="4" wangid="0,1,0,2,0,2,0,1"/>
+ <wangtile tileid="5" wangid="0,1,0,1,0,2,0,1"/>
+ <wangtile tileid="6" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="7" wangid="0,2,0,3,0,2,0,2"/>
+ <wangtile tileid="8" wangid="0,2,0,3,0,3,0,2"/>
+ <wangtile tileid="9" wangid="0,2,0,3,0,3,0,2"/>
+ <wangtile tileid="10" wangid="0,2,0,3,0,3,0,2"/>
+ <wangtile tileid="11" wangid="0,2,0,3,0,3,0,2"/>
+ <wangtile tileid="12" wangid="0,2,0,2,0,3,0,2"/>
+ <wangtile tileid="13" wangid="0,1,0,3,0,1,0,1"/>
+ <wangtile tileid="14" wangid="0,1,0,3,0,3,0,1"/>
+ <wangtile tileid="15" wangid="0,1,0,3,0,3,0,1"/>
+ <wangtile tileid="16" wangid="0,1,0,3,0,3,0,1"/>
+ <wangtile tileid="17" wangid="0,1,0,3,0,3,0,1"/>
+ <wangtile tileid="18" wangid="0,1,0,1,0,3,0,1"/>
+ <wangtile tileid="24" wangid="0,2,0,2,0,1,0,1"/>
+ <wangtile tileid="25" wangid="0,2,0,1,0,2,0,2"/>
+ <wangtile tileid="26" wangid="0,2,0,2,0,1,0,2"/>
+ <wangtile tileid="27" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="28" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="29" wangid="0,1,0,1,0,2,0,2"/>
+ <wangtile tileid="30" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="31" wangid="0,3,0,3,0,2,0,2"/>
+ <wangtile tileid="32" wangid="0,3,0,2,0,3,0,3"/>
+ <wangtile tileid="33" wangid="0,3,0,3,0,2,0,3"/>
+ <wangtile tileid="34" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="35" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="36" wangid="0,2,0,2,0,3,0,3"/>
+ <wangtile tileid="37" wangid="0,3,0,3,0,1,0,1"/>
+ <wangtile tileid="38" wangid="0,3,0,1,0,3,0,3"/>
+ <wangtile tileid="39" wangid="0,3,0,3,0,1,0,3"/>
+ <wangtile tileid="40" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="42" wangid="0,1,0,1,0,3,0,3"/>
+ <wangtile tileid="48" wangid="0,2,0,2,0,1,0,1"/>
+ <wangtile tileid="49" wangid="0,1,0,2,0,2,0,2"/>
+ <wangtile tileid="50" wangid="0,2,0,2,0,2,0,1"/>
+ <wangtile tileid="51" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="52" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="53" wangid="0,1,0,1,0,2,0,2"/>
+ <wangtile tileid="54" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="55" wangid="0,3,0,3,0,2,0,2"/>
+ <wangtile tileid="56" wangid="0,2,0,3,0,3,0,3"/>
+ <wangtile tileid="57" wangid="0,3,0,3,0,3,0,2"/>
+ <wangtile tileid="58" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="59" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="60" wangid="0,2,0,2,0,3,0,3"/>
+ <wangtile tileid="61" wangid="0,3,0,3,0,1,0,1"/>
+ <wangtile tileid="62" wangid="0,1,0,3,0,3,0,3"/>
+ <wangtile tileid="63" wangid="0,3,0,3,0,3,0,1"/>
+ <wangtile tileid="66" wangid="0,1,0,1,0,3,0,3"/>
+ <wangtile tileid="72" wangid="0,2,0,2,0,1,0,1"/>
+ <wangtile tileid="73" wangid="0,2,0,1,0,2,0,1"/>
+ <wangtile tileid="74" wangid="0,1,0,2,0,1,0,2"/>
+ <wangtile tileid="75" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="76" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="77" wangid="0,1,0,1,0,2,0,2"/>
+ <wangtile tileid="78" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="79" wangid="0,3,0,3,0,2,0,2"/>
+ <wangtile tileid="80" wangid="0,3,0,2,0,3,0,2"/>
+ <wangtile tileid="81" wangid="0,2,0,3,0,2,0,3"/>
+ <wangtile tileid="82" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="83" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="84" wangid="0,2,0,2,0,3,0,3"/>
+ <wangtile tileid="85" wangid="0,3,0,3,0,1,0,1"/>
+ <wangtile tileid="86" wangid="0,3,0,1,0,3,0,1"/>
+ <wangtile tileid="87" wangid="0,1,0,3,0,1,0,3"/>
+ <wangtile tileid="90" wangid="0,1,0,1,0,3,0,3"/>
+ <wangtile tileid="96" wangid="0,2,0,2,0,1,0,1"/>
+ <wangtile tileid="97" wangid="0,1,0,2,0,1,0,2"/>
+ <wangtile tileid="98" wangid="0,2,0,1,0,2,0,1"/>
+ <wangtile tileid="99" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="100" wangid="0,2,0,2,0,2,0,2"/>
+ <wangtile tileid="101" wangid="0,1,0,1,0,2,0,2"/>
+ <wangtile tileid="102" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="103" wangid="0,3,0,3,0,2,0,2"/>
+ <wangtile tileid="104" wangid="0,2,0,3,0,2,0,3"/>
+ <wangtile tileid="105" wangid="0,3,0,2,0,3,0,2"/>
+ <wangtile tileid="106" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="107" wangid="0,3,0,3,0,3,0,3"/>
+ <wangtile tileid="108" wangid="0,2,0,2,0,3,0,3"/>
+ <wangtile tileid="109" wangid="0,3,0,3,0,1,0,1"/>
+ <wangtile tileid="110" wangid="0,1,0,3,0,1,0,3"/>
+ <wangtile tileid="111" wangid="0,3,0,1,0,3,0,1"/>
+ <wangtile tileid="114" wangid="0,1,0,1,0,3,0,3"/>
+ <wangtile tileid="120" wangid="0,2,0,1,0,1,0,1"/>
+ <wangtile tileid="121" wangid="0,2,0,1,0,1,0,2"/>
+ <wangtile tileid="122" wangid="0,2,0,1,0,1,0,2"/>
+ <wangtile tileid="123" wangid="0,2,0,1,0,1,0,2"/>
+ <wangtile tileid="124" wangid="0,2,0,1,0,1,0,2"/>
+ <wangtile tileid="125" wangid="0,1,0,1,0,1,0,2"/>
+ <wangtile tileid="126" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="127" wangid="0,3,0,2,0,2,0,2"/>
+ <wangtile tileid="128" wangid="0,3,0,2,0,2,0,3"/>
+ <wangtile tileid="129" wangid="0,3,0,2,0,2,0,3"/>
+ <wangtile tileid="130" wangid="0,3,0,2,0,2,0,3"/>
+ <wangtile tileid="131" wangid="0,3,0,2,0,2,0,3"/>
+ <wangtile tileid="132" wangid="0,2,0,2,0,2,0,3"/>
+ <wangtile tileid="133" wangid="0,3,0,1,0,1,0,1"/>
+ <wangtile tileid="134" wangid="0,3,0,1,0,1,0,3"/>
+ <wangtile tileid="135" wangid="0,3,0,1,0,1,0,3"/>
+ <wangtile tileid="136" wangid="0,3,0,1,0,1,0,3"/>
+ <wangtile tileid="137" wangid="0,3,0,1,0,1,0,3"/>
+ <wangtile tileid="138" wangid="0,1,0,1,0,1,0,3"/>
+ <wangtile tileid="144" wangid="0,1,0,4,0,1,0,1"/>
+ <wangtile tileid="145" wangid="0,1,0,4,0,4,0,1"/>
+ <wangtile tileid="146" wangid="0,1,0,4,0,4,0,1"/>
+ <wangtile tileid="147" wangid="0,1,0,4,0,4,0,1"/>
+ <wangtile tileid="148" wangid="0,1,0,4,0,4,0,1"/>
+ <wangtile tileid="149" wangid="0,1,0,1,0,4,0,1"/>
+ <wangtile tileid="150" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="151" wangid="0,2,0,4,0,2,0,2"/>
+ <wangtile tileid="152" wangid="0,2,0,4,0,4,0,2"/>
+ <wangtile tileid="153" wangid="0,2,0,4,0,4,0,2"/>
+ <wangtile tileid="154" wangid="0,2,0,4,0,4,0,2"/>
+ <wangtile tileid="155" wangid="0,2,0,4,0,4,0,2"/>
+ <wangtile tileid="156" wangid="0,2,0,2,0,4,0,2"/>
+ <wangtile tileid="168" wangid="0,4,0,4,0,1,0,1"/>
+ <wangtile tileid="169" wangid="0,4,0,1,0,4,0,4"/>
+ <wangtile tileid="170" wangid="0,4,0,4,0,1,0,4"/>
+ <wangtile tileid="171" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="172" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="173" wangid="0,1,0,1,0,4,0,4"/>
+ <wangtile tileid="174" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="175" wangid="0,4,0,4,0,2,0,2"/>
+ <wangtile tileid="176" wangid="0,4,0,2,0,4,0,4"/>
+ <wangtile tileid="177" wangid="0,4,0,4,0,2,0,4"/>
+ <wangtile tileid="178" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="179" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="180" wangid="0,2,0,2,0,4,0,4"/>
+ <wangtile tileid="192" wangid="0,4,0,4,0,1,0,1"/>
+ <wangtile tileid="193" wangid="0,1,0,4,0,4,0,4"/>
+ <wangtile tileid="194" wangid="0,4,0,4,0,4,0,1"/>
+ <wangtile tileid="195" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="196" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="197" wangid="0,1,0,1,0,4,0,4"/>
+ <wangtile tileid="198" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="199" wangid="0,4,0,4,0,2,0,2"/>
+ <wangtile tileid="200" wangid="0,2,0,4,0,4,0,4"/>
+ <wangtile tileid="201" wangid="0,4,0,4,0,4,0,2"/>
+ <wangtile tileid="202" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="203" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="204" wangid="0,2,0,2,0,4,0,4"/>
+ <wangtile tileid="216" wangid="0,4,0,4,0,1,0,1"/>
+ <wangtile tileid="217" wangid="0,4,0,1,0,4,0,1"/>
+ <wangtile tileid="218" wangid="0,1,0,4,0,1,0,4"/>
+ <wangtile tileid="219" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="220" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="221" wangid="0,1,0,1,0,4,0,4"/>
+ <wangtile tileid="222" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="223" wangid="0,4,0,4,0,2,0,2"/>
+ <wangtile tileid="224" wangid="0,4,0,2,0,4,0,2"/>
+ <wangtile tileid="225" wangid="0,2,0,4,0,2,0,4"/>
+ <wangtile tileid="226" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="227" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="228" wangid="0,2,0,2,0,4,0,4"/>
+ <wangtile tileid="240" wangid="0,4,0,4,0,1,0,1"/>
+ <wangtile tileid="241" wangid="0,1,0,4,0,1,0,4"/>
+ <wangtile tileid="242" wangid="0,4,0,1,0,4,0,1"/>
+ <wangtile tileid="243" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="244" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="245" wangid="0,1,0,1,0,4,0,4"/>
+ <wangtile tileid="246" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="247" wangid="0,4,0,4,0,2,0,2"/>
+ <wangtile tileid="248" wangid="0,2,0,4,0,2,0,4"/>
+ <wangtile tileid="249" wangid="0,4,0,2,0,4,0,2"/>
+ <wangtile tileid="250" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="251" wangid="0,4,0,4,0,4,0,4"/>
+ <wangtile tileid="252" wangid="0,2,0,2,0,4,0,4"/>
+ <wangtile tileid="264" wangid="0,4,0,1,0,1,0,1"/>
+ <wangtile tileid="265" wangid="0,4,0,1,0,1,0,4"/>
+ <wangtile tileid="266" wangid="0,4,0,1,0,1,0,4"/>
+ <wangtile tileid="267" wangid="0,4,0,1,0,1,0,4"/>
+ <wangtile tileid="268" wangid="0,4,0,1,0,1,0,4"/>
+ <wangtile tileid="269" wangid="0,1,0,1,0,1,0,4"/>
+ <wangtile tileid="270" wangid="0,1,0,1,0,1,0,1"/>
+ <wangtile tileid="271" wangid="0,4,0,2,0,2,0,2"/>
+ <wangtile tileid="272" wangid="0,4,0,2,0,2,0,4"/>
+ <wangtile tileid="273" wangid="0,4,0,2,0,2,0,4"/>
+ <wangtile tileid="274" wangid="0,4,0,2,0,2,0,4"/>
+ <wangtile tileid="275" wangid="0,4,0,2,0,2,0,4"/>
+ <wangtile tileid="276" wangid="0,2,0,2,0,2,0,4"/>
+ </wangset>
+ </wangsets>
+ </tileset>
+ <layer id="1" name="Ground" width="45" height="31">
+ <data encoding="base64" compression="zlib">
+ eJyNWE1vVVUU3Y0KQeXL4kBL7QAiEkcopQOIkjgysXagYeLIpE0HGucEtY5U6giw1Bj8AdiWxhZ+ANLS4nv+AJKW1+TVH9DklWfSR+LeeWt51j3eWxmsnPvuPR9rr7P3Pvu8hpkd7DFb8dYb24Pf89bFtOOio8/xquNreZ/jdccxx0nH53j+SN7F81nHOfz+BGs1vP0C706i/1kZ+6asMWRdrvMY+4q3bzmedTwj/FfAO/i2HVcc10s4f+t4QzidcEw6vnd8lz0HfrAu3wOO8xj3seO44AT6cY0GONPWTx1jjp8cvzjO4Fsbfan/luP3XXgrJ+4XtWnjeQX9VzBmErgsdud8lXdwCb94G5w3HE+g+R5ZcwDPDx114U3dY569wkW5UZ8J8I6+AfalPbT7MvhS03nMMV3CNzT+A5zHMt70obvezjrWwfue47HwynUhH3JivwG01E1Be0cs8eW3mOd9x2lwXHVsOx7AP8bgI/PCZ5+PmwHvHceSaK76UZO2cGyg1X2mT/eKrtOwUX2Le/RcicbB4zfHyz6239sPs3VijtB6E33XRPPr0CbXmpwaAvrEPPyBvsDvOn4IbQ+4jkHnDaxfE52POl6zFIe0n1oH12Vw37Hq2HzH8W5o6DgE9FrRn+l7uk8rVvSZi6LvDdF4GaBPU2edS32kDjub1vWrMt6Mq8gJkc/OwQbypq9T54jrKcfVkrl+Fq5ctwn9/hTOZefIgPC+7VhEW9tFb+bwyL2Rw3le5DHGeVuY6xrma0DPJtpYL+Ip/JT+TM7uT9/k649jji3MEWMO+5gF2Py4hLOel8y/A1bMKdRbeW8K99BkzlIOmMVe37GuL2u+y/PYCNbbAkfGwCo0vyX9cq0nwbcsXnP/e97xAjADzutoQ6def3+kJ2lMnCmZL/wl/C7y87bsTXDuOB5Bt//jpbgiflBlQwe6am4bE40Dw6J1PscW9inmiJhlvvzVcaAn7fnT8JyC/ZG77u/SX3Nx8CPnQNRxl6xY05XZPYN5HoBv+F+VL49kccF9on9GG757q2J84KXMD0bBrw/+EHt7yro5umqOh7IW1330FHtNvkvQdg72co8GKtajnn2ib+QJ1p7T2XMgzlDPI//mv+C8Db5NWVO/MeangB/Bt4Y9CnuXs7FVIEfWofy9d5cxPF8mRKtNaDQLvxiy5O/xvgMteQ5si7Y1PLdkf8owjvW+hIan7L85gnXJRLd/wQ+ZD+jPjOU1K9ao1JLfeWatgfdtvGcNsBtnzjcu+/+VdWMubNA6i3lNx9MWahl7qvUHa1RqS79pWjord9C/hedFjLsKaByQ72KJLax1437GmqZX+OV2Mz+FP9y0dI52wKuFd3y/CH3Zh1qz1f7x7n62X/USHm3ggqU7pdYyeZ57EedTxI3W1XXw25T1a+DFs4vn/Bz4d7BHm5bOOe4XvzdLeBBRO0YdwzszeYevjFvymYg1xiv1qFvKtx1o17QUi1EXMHYOgfsR8G9Z8hXWiZyrjvFVnFl/kfOxjDdrmeAZeeuapTOce8x6gHquAVEv6jnL51VozH6shdbAn3VnrBvxdtCS7/LdeUv/NUQNxntlG7ypK/dxHWuw/tbzlTVIrMlaKu4Zeu4egm30I+a/WbTL+KaaHoeWh8GX+sZ/I1HnDlixFr9nqY5dtFQztjK+vMurbsH7hqU7J/X+GxyXMGcNWJI9oy9csOJ/PKEr/0cJe96Dvjdl/3g/2ZZ1uH9/Wbe2GnR8AC7Rb8dSPOV2jaIfc7ae6ew7akX/nQRP+kC8j/OO98vgvA95Yj/q2v2SK7Sm5fx5rC2gT/R/YsXacRT7EeMXLMVdcNa4rYrByMd6B676j44+3QFn1U7jTLkzz6nGw/I93m9Yyot5HcdzhPkrELkrYjD8mnGZc2a9pnUO+Q5mPEO/fivG21Grtktty+8eqjM58b873tk+s25c6t0+cNdS/cAYv1Oxfhn6pR20oh+dzvoOZ/b+A6OnAUo=
+ </data>
+ </layer>
+ <layer id="2" name="Fringe" width="45" height="31">
+ <data encoding="base64" compression="zlib">
+ eJzVl9lNw0AURZ8ltgr4YquAjliaYPl8DdAChCVABRB2KkBhpwK2sKQC4FgiShQ8tseMx/aVjmRLY+fO3JnnFxGRGZiVamkBFos2EaOBQGQw6N6PFmcltcbwOx50vU+neKYztsb1OmzAZq4uo9XxbjO2wfUBHMJRjt5c6RyacAlXcF2oGzu9wCu0YCohpwcPftJqFdZ+r9uGMf1nvWjtwX7P/UiEN5vzUiZRW5Qao9QarUHRftKI2qLUGKXWaCOjZ9/zprYoNUapNdrM+Hsu5m0jaotSY5Rao62M73Ax70d4gme4yOgjSb01tH/eu/947xd8izvfS7Ds6F2+VZP8e5oVx+8rY0/D90dN385QPnuapN7DZnxvT1O2HiCNqtYD2GaXt3aot9tQh62K9CJn+DyFEziuiOd7fN7BLdyUxDN5C7kL+Yf74I8+8fkB7/AGQ+zdYU/7t21YI/IWchfyD/dBoibwO1nwmSNvIXch/3AfxCopE18ibyF3If9wH8TKNhOfMq2nTSZ5yXSeTOvZn0nU83Mw78Bb1P/tUKbzlHY9k87jD20Li3Y=
+ </data>
+ </layer>
+ <objectgroup id="3" name="Objects">
+ <object id="1" name="maggots" type="location" x="435" y="74" width="155" height="99">
+ <properties>
+ <property name="spawncount" type="int" value="5"/>
+ <property name="spawntype" value="maggot"/>
+ </properties>
+ </object>
+ <object id="2" name="discover chest" type="trigger" x="201" y="200" width="127" height="127">
+ <properties>
+ <property name="script" value="chest-discovered.lua"/>
+ </properties>
+ <ellipse/>
+ </object>
+ <object id="3" name="unreachable" type="Fixture" x="2" y="158">
+ <properties>
+ <property name="friction" type="float" value="1"/>
+ <property name="static" type="bool" value="true"/>
+ </properties>
+ <polygon points="0,0 55,-23 96,-117 110,-61 104,-42 119,-33 116,6 104,9 100,36 60,43 53,58 43,58 34,74 21,69 18,90 0,89"/>
+ </object>
+ <object id="5" name="guard" type="NPC" x="22" y="361">
+ <polyline points="-3,120 87,91 154,96 181,16 273,-1"/>
+ </object>
+ <object id="6" name="guard" type="NPC" x="277" y="18">
+ <polyline points="0,0 75,78 133,82 176,179 274,183"/>
+ </object>
+ <object id="10" gid="282" x="413.333" y="225.333" width="16" height="16"/>
+ <object id="11" gid="282" x="421.667" y="218" width="16" height="16"/>
+ <object id="12" gid="2147483930" x="423" y="235.333" width="16" height="16"/>
+ <object id="13" gid="282" x="5" y="70" width="16" height="16"/>
+ <object id="14" gid="282" x="-3.66667" y="80.3333" width="16" height="16"/>
+ <object id="16" gid="283" x="538" y="418.333" width="16" height="16"/>
+ <object id="17" gid="283" x="407.667" y="462" width="16" height="16"/>
+ <object id="18" gid="283" x="417" y="473.667" width="16" height="16"/>
+ <object id="19" gid="283" x="402.667" y="469" width="16" height="16"/>
+ <object id="21" gid="2147483930" x="683.333" y="260.5" width="16" height="16"/>
+ <object id="22" gid="282" x="692.167" y="269.167" width="16" height="16"/>
+ <object id="23" gid="282" x="701.667" y="247.833" width="16" height="16"/>
+ <object id="24" gid="282" x="688.5" y="242" width="16" height="16"/>
+ <object id="25" gid="282" x="670.5" y="263.5" width="16" height="16"/>
+ <object id="26" gid="282" x="680" y="284" width="16" height="16"/>
+ <object id="27" gid="282" x="643.833" y="283.667" width="16" height="16"/>
+ <object id="28" gid="282" x="63.4165" y="386" width="16" height="16"/>
+ <object id="29" gid="282" x="9.0835" y="356.167" width="16" height="16"/>
+ <object id="30" gid="282" x="11.9165" y="385" width="16" height="16"/>
+ <object id="31" gid="282" x="54.2495" y="378.5" width="16" height="16"/>
+ <object id="32" gid="2147483930" x="2.4165" y="364.5" width="16" height="16"/>
+ <object id="33" gid="2147483930" x="41.5835" y="382.833" width="16" height="16"/>
+ <object id="34" type="Sign" gid="257" x="670.667" y="87" width="16" height="16">
+ <properties>
+ <property name="text" value="East West"/>
+ </properties>
+ </object>
+ <object id="36" name="player-start" type="Location" x="192" y="160" width="16" height="16"/>
+ </objectgroup>
+</map>
diff --git a/testing_data/tiled_examples/perspective_walls.png b/testing_data/tiled_examples/perspective_walls.png
new file mode 100644
index 0000000..8b70713
--- /dev/null
+++ b/testing_data/tiled_examples/perspective_walls.png
Binary files differ
diff --git a/testing_data/tiled_examples/perspective_walls.tmx b/testing_data/tiled_examples/perspective_walls.tmx
new file mode 100644
index 0000000..858eea8
--- /dev/null
+++ b/testing_data/tiled_examples/perspective_walls.tmx
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" width="32" height="32" tilewidth="31" tileheight="31">
+ <tileset firstgid="1" source="perspective_walls.tsx"/>
+ <layer name="Walls" width="32" height="32">
+ <data encoding="base64" compression="zlib">
+ eJztlOkKgCAQhLfb7vd/24SUBqMMNevHfDB4LczusihCCCHkTzRay4XaDP7rxf1882ZpzBqTp/Wo4c7ulRy96LUKRx3EFYF5+GpESpA9V845pT/Oxijn+luIw36k8vf1Rpk1xPepx9vczV+O3GL6n4JJ9vkSOf8/Qwb/r+vHP8ZVzFwTQshf2AA5owLB
+ </data>
+ </layer>
+ <layer name="Walls level 2" width="32" height="32">
+ <data encoding="base64" compression="zlib">
+ eJztzgEJAAAIA7CD/Tsb4yJbgiUA8MO0AwAAhy0rhAAE
+ </data>
+ </layer>
+ <layer name="Walls level 3" width="32" height="32">
+ <data encoding="base64" compression="zlib">
+ eJztzjENAAAIA7Al+PeMgz0cPK2CJgBwN98BAACqBS0QAAQ=
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/perspective_walls.tsx b/testing_data/tiled_examples/perspective_walls.tsx
new file mode 100644
index 0000000..98cdbec
--- /dev/null
+++ b/testing_data/tiled_examples/perspective_walls.tsx
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tileset name="perspective_walls" tilewidth="64" tileheight="64">
+ <tileoffset x="-32" y="0"/>
+ <image source="perspective_walls.png"/>
+ <tile id="13">
+ <properties>
+ <property name="door" value="true"/>
+ </properties>
+ </tile>
+ <tile id="14">
+ <properties>
+ <property name="door" value="true"/>
+ </properties>
+ </tile>
+ <tile id="15">
+ <properties>
+ <property name="pickup" value="true"/>
+ </properties>
+ </tile>
+</tileset>
diff --git a/testing_data/tiled_examples/rpg/beach_tileset.png b/testing_data/tiled_examples/rpg/beach_tileset.png
new file mode 100644
index 0000000..c9f6d52
--- /dev/null
+++ b/testing_data/tiled_examples/rpg/beach_tileset.png
Binary files differ
diff --git a/testing_data/tiled_examples/rpg/beach_tileset.tsx b/testing_data/tiled_examples/rpg/beach_tileset.tsx
new file mode 100644
index 0000000..c280249
--- /dev/null
+++ b/testing_data/tiled_examples/rpg/beach_tileset.tsx
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tileset name="beach_tileset" tilewidth="16" tileheight="16" tilecount="936" columns="36">
+ <image source="beach_tileset.png" width="576" height="416"/>
+ <tile id="37">
+ <animation>
+ <frame tileid="37" duration="1000"/>
+ <frame tileid="46" duration="1000"/>
+ <frame tileid="55" duration="1000"/>
+ <frame tileid="64" duration="1000"/>
+ </animation>
+ </tile>
+ <tile id="148">
+ <animation>
+ <frame tileid="148" duration="1000"/>
+ <frame tileid="157" duration="1000"/>
+ <frame tileid="166" duration="1000"/>
+ <frame tileid="175" duration="1000"/>
+ </animation>
+ </tile>
+</tileset>
diff --git a/testing_data/tiled_examples/rpg/island.tmx b/testing_data/tiled_examples/rpg/island.tmx
new file mode 100644
index 0000000..2b0a012
--- /dev/null
+++ b/testing_data/tiled_examples/rpg/island.tmx
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" tiledversion="1.0.3" orientation="orthogonal" renderorder="right-down" width="58" height="47" tilewidth="16" tileheight="16" infinite="0" nextobjectid="8">
+ <tileset firstgid="1" source="beach_tileset.tsx"/>
+ <layer name="Ground" width="58" height="47">
+ <data encoding="base64" compression="zlib">
+ eJztmH1u00AQxb3h+ySFcgtASJVqx7EvwAVKgfQclYA6cBc4R8g/fPYizKj75JfJrt1SpzHV/vHkxlsn+8vMvJlNk2VZk5SUlJSUlJR9N9r1frbBdyJybl2v5d7xCPY3hMD3XtSIaq+F6IOsfRzBHodgVL4p8THrbeD8JPosOqP41Ua3gVP1WPREtCK2peibu7j3v3HG/PNQlBOval/01N/bH8HeL6N5tu6jMf8Ebz6CPf8LY+Zan5mOOA9t3+7r4bzOXlqIKtGzSZZN3LhmgFDfjvVwm5/ObfYL6NSvg3eXMxBioft6IDEo5Tp32Su9QpyD6BGIna7npuczc0m8u5iB5oaR9/VOOGviRA7qc19EX0UH8nrm1/n53N+r/PrMfx9Y1+/g/AZrmOOiceQZ5a3nrIkjFNPKrxV0rYip8NyNYdbrSzd8LwnVA+KCPs3598ZwxnKX41TT83mgXiuvc2IsBuRjz0Dusfayiz698nubUSyaHs5QznLMeG3m339oRj4bYK+nEdaGWK2v9HHi/5GzBb3mmiy3xGj9pTasNpcPDetlOLEOvsJt5jLX7lC+E/PQWF8LebuyHhjWyj+j//tQro9c+xklcVjG0Ofqe/y4Jid/zxyL0GfG5jN9jyPzLPeX56IXk/Ze2fM5tkbBep2+CQ9d+RpR4ezDvsqslhP5ENo3c+eu9dATt9lL4UOVa733t+jPgPlrzz572bqvosfZHhbyl74YdQmMyOd7kgf3J8Nxdp19UH8hX+DZwTJy/+9bK308kVPSj3X20DlLZ8obm4OO3OaME6pv9sszYsJcGxL/RmBrBz36puc99RV4qPXRUF1af7NMS9fWSex3A7zeJiPnLjwJHso+GspH1NmUGC0TzwBcO/bekCxd5zyeCaZufR7P6e/CxAx1Z+eGZgv771PoHByaf2xcESuuSxszrrld/y7C9bdwm+fc0PwDVo3rT9GviF/YmtsVo4rPweyTi8jemVVz8o7U6N1JuO+M7bc6ywp1nW1tXi47/ndMQv7CV7DvrjPRmPLyKrrqvseWl0lJSUlJSdvQXyaqnVE=
+ </data>
+ </layer>
+ <layer name="Fringe" width="58" height="47">
+ <data encoding="base64" compression="zlib">
+ eJztmEtSwkAURUPYiA4sSh0o7sJCdCD+F4ETlY+fdajgdx2CshZ1HZ4UZKQpSk26qx/3VJ1JBvS7eV39OkSREEIIIYQImaXYdwVu2TCat0Ku25LfGhqsv4O7Bdcx9Jyzxfpt7Hiuo2h65OvjnfGcr+R7w5HxnO/k+8BP4zlTFnM465sBzIvtST+tz/JN8m0Zz5jHnrXOesY7snq3mytH0TweO8xXM/ouU+qx3/Ny2cHayewqcp0zfnsFV7GKaxlrhTSXFsq+K3DLCb05jce9bP2jT3vcQfbxAA/xyOMdM5kPWWdlm+cd7P4xa5dc53iBl3gV+F36mvpvfshwz7MHfMQnfPaYM2sW/Wa/vlD/IIBepd8b9YDOTPGdad+NLua/EAmVGdhrIfxPI4QQQoh8+QKR0iKM
+ </data>
+ </layer>
+ <layer name="Over" width="58" height="47">
+ <data encoding="base64" compression="zlib">
+ eJzt1bcNwlAURuFnU5KWAPYhzwGMQlqE3JJWINktaQVAHInGIDdIIOvB/0mnsEVxr56NjRERERERERERERvsHGM88p2oJ/ky1xiHXOpRnwZu1EN9XoadspSjFa1pY9GeNWatU+ONmS/89ko3C/ZsMmOL2tSh7svMU97DGc1pQUtL38she41oTJOQc9mz14GOdKKzpXtu2W1HHvkvexa5jlOCkpSitAXPaNDT9yHGf2gs6om+JPB9CMpzXXAfZ1my7OzCBL8PYcrcr1D1B3b9d7/wvIqIiIiIiIiEuQPCYiRe
+ </data>
+ </layer>
+ <objectgroup name="Objects">
+ <object id="1" name="Starting Point" type="start" x="794.667" y="471.667">
+ <point/>
+ </object>
+ <object id="5" name="Exit" type="exit" x="336" y="208" width="48" height="48"/>
+ <object id="7" name="Resting Spot" type="rest" x="528" y="416" width="48" height="16"/>
+ </objectgroup>
+</map>
diff --git a/testing_data/tiled_examples/rpg/readme.txt b/testing_data/tiled_examples/rpg/readme.txt
new file mode 100644
index 0000000..5ef42a7
--- /dev/null
+++ b/testing_data/tiled_examples/rpg/readme.txt
@@ -0,0 +1,28 @@
+-=-=-=- -==-=- -==-=- -==-=- -==-=-
+ TIME FANTASY - BEACH TILESET
+-==-=- -==-=- -==-=- -==-=- -==-=-
+
+Thank you for downloading this tileset!
+
+This tileset is a FREE release for anybody to download. I created this set as a reward for reaching a goal
+on my Patreon page. Thanks to my wonderful patrons for making this free release possible! patreon.com/finalbossblues
+
+This tileset is a mini-expansion for the Time Fantasy RPG assets. It's compatible with all other graphics that I release
+in my Time Fantasy style. Can also be used as a standalone tileset.
+
+This set includes versions formatted for use in RPGMaker VX/Ace and RPGMaker MV,
+as well as a regular tile-sheet based on a 16x16 grid.
+
+-------------------------
+Time Fantasy Website
+ timefantasy.net
+-------------------------
+Artist's Website
+ finalbossblues.com
+Twitter
+ @finalbossblues
+Facebook
+ finalbossblues
+Patreon
+ patreon.com/finalbossblues
+-------------------------
diff --git a/testing_data/tiled_examples/sewer_automap/rule_001.tmx b/testing_data/tiled_examples/sewer_automap/rule_001.tmx
new file mode 100644
index 0000000..e05c002
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rule_001.tmx
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
+<map version="1.0" orientation="orthogonal" width="7" height="3" tilewidth="24" tileheight="24">
+ <properties>
+ <property name="AutomappingRadius" value="3"/>
+ <property name="DeleteTiles" value="yes"/>
+ </properties>
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <tileset firstgid="73" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <layer name="Regions" width="7" height="3">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPPHHQ+AAAJfgA3A==
+ </data>
+ </layer>
+ <layer name="Input_set" width="7" height="3">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPPKG0F5T2JqAeBAAmbADf
+ </data>
+ </layer>
+ <layer name="Output_Ground" width="7" height="3">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPeKG0DJRWIqAeBAAMkABM
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/sewer_automap/rule_002.tmx b/testing_data/tiled_examples/sewer_automap/rule_002.tmx
new file mode 100644
index 0000000..82203c5
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rule_002.tmx
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" width="8" height="5" tilewidth="24" tileheight="24">
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <tileset firstgid="73" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <layer name="Regions" width="8" height="5">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMfLDQPnjkiTGPWLUA1AACYQ==
+ </data>
+ </layer>
+ <layer name="Input_set" width="8" height="5">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMvKG0FxLfC0neC00dIeBFgloAz9QCVQ==
+ </data>
+ </layer>
+ <layer name="Output_Ground" width="8" height="5" visible="0">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMtND4yjjUSRFhFgwoEqkOADFsAIk=
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/sewer_automap/rule_003.tmx b/testing_data/tiled_examples/sewer_automap/rule_003.tmx
new file mode 100644
index 0000000..a8edb5d
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rule_003.tmx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
+<map version="1.0" orientation="orthogonal" width="8" height="6" tilewidth="24" tileheight="24">
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <tileset firstgid="73" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <layer name="Regions" width="8" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMfLDQPnjkydVPDgAAZj8DRQ==
+ </data>
+ </layer>
+ <layer name="Input_set" width="8" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMPAmIYZPHphadpgYAAL88Abc=
+ </data>
+ </layer>
+ <layer name="Output_Ground" width="8" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMmLCI8SCxuQjoF0Lj8xFhJ7EAABfQADk=
+ </data>
+ </layer>
+ <layer name="Output_Over" width="8" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAesBKQ5yXBLGoBAAmIABM=
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/sewer_automap/rule_004.tmx b/testing_data/tiled_examples/sewer_automap/rule_004.tmx
new file mode 100644
index 0000000..09c97a7
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rule_004.tmx
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" width="7" height="6" tilewidth="24" tileheight="24">
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <tileset firstgid="73" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <layer name="Regions" width="7" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPfKAYnU0rOVwAAJk3BME=
+ </data>
+ </layer>
+ <layer name="Input_set" width="7" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPPKEYnU2pHLodhAAAb/8D/w==
+ </data>
+ </layer>
+ <layer name="Output_Ground" width="7" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPePHI8aHxeYiUIwcAABkoAEI=
+ </data>
+ </layer>
+ <layer name="Output_Over" width="7" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPOND47ATU0woAAAgwABA=
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/sewer_automap/rule_005.tmx b/testing_data/tiled_examples/sewer_automap/rule_005.tmx
new file mode 100644
index 0000000..57a49d0
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rule_005.tmx
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" width="13" height="6" tilewidth="24" tileheight="24">
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <tileset firstgid="73" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <layer name="Regions" width="13" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAP+BDgk6LHBwcbnxy19ZAKAMzFByE=
+ </data>
+ </layer>
+ <layer name="Input_set" width="13" height="6">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAPeBLgD6QeYsyj1BwAd2cCSQ==
+ </data>
+ </layer>
+ <layer name="Output_Ground" width="13" height="6" visible="0">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAPiKHxRYjQw43G5yRCjzAaX5AIPfQAAE2oAGM=
+ </data>
+ </layer>
+ <layer name="Output_Over" width="13" height="6" visible="0">
+ <data encoding="base64" compression="zlib">
+ eJxjYBgcgAVKs5GghwdK81HZLcQAABQQACU=
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/sewer_automap/rule_006.tmx b/testing_data/tiled_examples/sewer_automap/rule_006.tmx
new file mode 100644
index 0000000..9a155d0
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rule_006.tmx
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" width="7" height="5" tilewidth="24" tileheight="24">
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <tileset firstgid="73" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <layer name="Regions" width="7" height="5">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPfKAYnU2JHC4AAAEbA5E=
+ </data>
+ </layer>
+ <layer name="Input_set" width="7" height="5">
+ <data encoding="base64" compression="zlib">
+ eJxjYKAMeKLRyOKeWNj4AABbzAG3
+ </data>
+ </layer>
+ <layer name="InputNot_set" width="7" height="5" opacity="0.44">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAfeBLgkwoAKZwAkw==
+ </data>
+ </layer>
+ <layer name="Output_Ground" width="7" height="5" visible="0">
+ <data encoding="base64" compression="zlib">
+ eJxjYKAM8KLRlAAAB9wAGw==
+ </data>
+ </layer>
+ <layer name="Output_Over" width="7" height="5" visible="0">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMeNFoWgEACrQAGw==
+ </data>
+ </layer>
+ <layer name="Output_Over2" width="7" height="5" visible="0">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAM5KG0AhFqKQEAGSQAQA==
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/sewer_automap/rule_007.tmx b/testing_data/tiled_examples/sewer_automap/rule_007.tmx
new file mode 100644
index 0000000..757e7c1
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rule_007.tmx
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" width="7" height="7" tilewidth="24" tileheight="24">
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <tileset firstgid="73" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <layer name="Regions" width="7" height="7">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPfKAYnU1Ijp5mAgDb0wTB
+ </data>
+ </layer>
+ <layer name="Input_set" width="7" height="7">
+ <data encoding="base64" compression="zlib">
+ eJxjYKAMeKPRtNaHDQAAdfQBLQ==
+ </data>
+ </layer>
+ <layer name="InputNot_set" width="7" height="7">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAPvKEYnc2AxsbGx2cmLj4++3ABAGBjA4U=
+ </data>
+ </layer>
+ <layer name="InputNot_set" width="7" height="7" visible="0">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMPNFodHFcfELmEeITax4A5OQCSQ==
+ </data>
+ </layer>
+ <layer name="Output_Ground" width="7" height="7" visible="0">
+ <data encoding="base64" compression="zlib">
+ eJxjYKAMSEJpaRL1aUJpbQrtBwEAMlQAiQ==
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/sewer_automap/rule_008.tmx b/testing_data/tiled_examples/sewer_automap/rule_008.tmx
new file mode 100644
index 0000000..7166d83
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rule_008.tmx
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
+<map version="1.0" orientation="orthogonal" width="4" height="4" tilewidth="24" tileheight="24">
+ <properties>
+ <property name="NoOverlappingRules" value="1"/>
+ </properties>
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <tileset firstgid="73" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <layer name="regions_input" width="4" height="4">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMfKAYGwAAD7AAmQ==
+ </data>
+ </layer>
+ <layer name="regions_output" width="4" height="4">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAEPljEcAEADVAATQ==
+ </data>
+ </layer>
+ <layer name="input_Over" width="4" height="4">
+ <data encoding="base64" compression="zlib">
+ eJxjYCAMWICYF4ccAAHoABI=
+ </data>
+ </layer>
+ <objectgroup name="output_GroundEffects" width="4" height="4">
+ <object name="1" type="Effect" x="24" y="24" width="24" height="24">
+ <properties>
+ <property name="predefined Value" value=""/>
+ </properties>
+ </object>
+ </objectgroup>
+</map>
diff --git a/testing_data/tiled_examples/sewer_automap/rule_009.tmx b/testing_data/tiled_examples/sewer_automap/rule_009.tmx
new file mode 100644
index 0000000..ae8c0ab
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rule_009.tmx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
+<map version="1.0" orientation="orthogonal" width="4" height="3" tilewidth="24" tileheight="24">
+ <properties>
+ <property name="NoOverlappingRules" value="1"/>
+ </properties>
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <tileset firstgid="73" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <layer name="regions" width="4" height="3">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAEPlCMDQAAD6AAmQ==
+ </data>
+ </layer>
+ <layer name="input_Ground" width="4" height="3">
+ <data encoding="base64" compression="zlib">
+ eJxjYMAESkCshUUcBAAH2ABN
+ </data>
+ </layer>
+ <objectgroup name="output_GroundEffects" width="4" height="3">
+ <object name="2" type="Trigger" x="48" y="24" width="24" height="24">
+ <properties>
+ <property name="triggering" value="trigger42"/>
+ </properties>
+ </object>
+ </objectgroup>
+</map>
diff --git a/testing_data/tiled_examples/sewer_automap/rules.txt b/testing_data/tiled_examples/sewer_automap/rules.txt
new file mode 100644
index 0000000..8d93775
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rules.txt
@@ -0,0 +1,142 @@
+# rules.txt
+# Copyright 2011, Stefan Beller <stefanbeller@googlemail.com>
+#
+# This file is part of the sewers example for automapping for Tiled.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# lines starting with # or // are comments
+# all other lines will be parsed and treated as filenames.
+
+# Feel free to comment out certain rules, to see if and how they are working.
+# So have fun experimenting with this bunch of rules :)
+
+# First apply only one tile rules to fill the regions
+#
+# We mark the place, where rules are defined, with the RuleRegion layer.
+# So whereever there are tiles at the ruleRegion layer, it will be used as a rule.
+# In the RuleSet layer we can define, which combination of tiles must occur
+# to trigger the specific rule.
+# The layers Rule_Ground, Rule_Over and Rule_Over2 define the output of the rules.
+#
+# Which tiles should I use in the regions layer?
+# Actually there can be any tiles, but it should be the same tiles for one rule.
+# So use whatever you want, maybe a colorful tile so you can see easily that these
+# tiles are used for defining the rule region.
+#
+# In the very first rulefile used for Automapping it might be useful to define
+# some map properties:
+# "DeleteTiles" = "true", "false" - This property determines if all tiles in the
+# whole region where Automapping takes place
+# are deleted.
+# That is useful, when not all layers are covered
+# at all places. (Check the Over and Over2 layer!)
+# "AutoMappingRadius" = 0,1,2... - This property determines which regions are
+# automatically remapped at live Automapping.
+# When you draw directly into the map,
+# not the whole map is remapped, but only a little
+# place around. Here you can specify how many
+# tiles at least should be remapped.
+
+./rule_001.tmx
+
+
+
+
+# Setup the right transition tiles at the border of light blue stone tiles
+#
+# Basically it is the same as the first rule, we are just using bigger rules.
+# Whenever there is a light blue tile beside a grey tile, one of these rules
+# will apply.
+
+./rule_002.tmx
+
+
+
+
+# Now put straight walls
+#
+# Note: Compare the regions and the set layer!
+# Not at all places where a rule is defined, there is a tile in the input_set layer.
+# This means that there can be any tiles except those used by the rule.
+# So there are no black tiles allowed, when there are no tiles in the input_set
+# layer.
+
+./rule_003.tmx
+
+
+
+
+# Now we add inner corners for walls
+#
+# (No new features introduced)
+
+./rule_004.tmx
+
+
+
+
+# Now we add the corners for walls
+#
+# (No new features introduced)
+
+./rule_005.tmx
+
+
+
+
+# Correct the error we got in the two previous rulefiles (overwrite it once more)
+#
+# Here we can see the use of input_set and input_NotSet
+# With the input_NotSet we can define which tiles must not be used at certain places
+# Important sideeffect: the empty regions in ruleSet can be anything now, including
+# black tiles as used here!
+#
+# So when you use both input_Set and input_NotSet, you need to specify exactly what
+# is allowed at which places.
+
+./rule_006.tmx
+
+
+
+
+# Setup the corner stones for light blue stone tiles
+#
+# Hey, there are multiple layers called input_NotSet!
+# Yes, when you need to specify multiple allowed or disallowed tiles per
+# position, you can use multiple layers of input_Set and input_NotSet
+
+./rule_007.tmx
+
+
+
+
+
+# Setup objects now
+# The objects '1' will be placed. They will be placed based on the
+# Over layer, which was created by previous rules.
+# The placement of objects is done in south-east corners.
+
+./rule_008.tmx
+
+
+
+
+# Setup another object.
+# This object is based on input from the Ground layer.
+# It will put objects to borderstones which are near an end of that borderline.
+#
+
+./rule_009.tmx
diff --git a/testing_data/tiled_examples/sewer_automap/rules_sewers.png b/testing_data/tiled_examples/sewer_automap/rules_sewers.png
new file mode 100644
index 0000000..7214e28
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/rules_sewers.png
Binary files differ
diff --git a/testing_data/tiled_examples/sewer_automap/sewers.tmx b/testing_data/tiled_examples/sewer_automap/sewers.tmx
new file mode 100644
index 0000000..4af5a15
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_automap/sewers.tmx
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
+<map version="1.0" orientation="orthogonal" width="31" height="31" tilewidth="24" tileheight="24">
+ <tileset firstgid="1" name="rules_sewers" tilewidth="24" tileheight="24">
+ <image source="rules_sewers.png" width="72" height="48"/>
+ </tileset>
+ <tileset firstgid="7" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="../sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <layer name="set" width="31" height="31">
+ <data encoding="base64" compression="zlib">
+ eJztlUEOwCAIBLH+/8/eDSBQ1jTNHuZiDKOGxSEigxDyCWYRtPsx6HBH74hyn2r9zT2T7uj+jPemW+sfrRai16K1ut1ebtEZ8+aFdxaU27qj5a7O1FOfRd1v86XlZc+T9RZVt3aG6FrX/0UIIVkWa5oFDA==
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/sewer_tileset.png b/testing_data/tiled_examples/sewer_tileset.png
new file mode 100644
index 0000000..9455c8e
--- /dev/null
+++ b/testing_data/tiled_examples/sewer_tileset.png
Binary files differ
diff --git a/testing_data/tiled_examples/sewers.tmx b/testing_data/tiled_examples/sewers.tmx
new file mode 100644
index 0000000..320d65d
--- /dev/null
+++ b/testing_data/tiled_examples/sewers.tmx
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" width="50" height="50" tilewidth="24" tileheight="24">
+ <tileset firstgid="1" name="sewer_tileset" tilewidth="24" tileheight="24">
+ <image source="sewer_tileset.png" trans="ff00ff" width="192" height="217"/>
+ </tileset>
+ <layer name="Bottom" width="50" height="50">
+ <data encoding="base64" compression="zlib">
+ eJzt19kKwjAQBdDim0sFqwguL3Vf/sP//ySnkIFhSGrSdEnxPhyQxqJ32kySPMuyJTkZC5KLa2dyNEo1Lsds3wkl/4f+7V/0/f+Y40Je5GpUn2+J5NiQCdmO/HlMyYzMI3JwLUJx7drIsSIFWUfk4FrY3GvGuHb8vr4jcmhNcnAtpIflmmar3VA5nqaWMUKeQ1d9dyht59iRPTmMPEdpua8Put/Frh88P5q84zFkv/NZP2TOlOaH7Hc+64fMmdL8cPVbV9+tcn5MzpTmR0gv12uDbQ4MNT8AIA73Uq3v3hqLe2ldTx4D21k1tf2ubw59Vk1tX+KbQ59VXfuSlMn9SJHV70tS5jqrYu8BAAAAAAAAAABd+wIHfQq1
+ </data>
+ </layer>
+ <layer name="Top" width="50" height="50" opacity="0.49">
+ <data encoding="base64" compression="zlib">
+ eJzt1jsKgDAQQEELtVKvYuGvEDvvfya3MBeQQAzMwCPdsum2af5lL71AJv7xL7X+Y46WtzXayq7z2RGd0f2+V6a5bdRFfaZ5pQzRGE2lFwEAoArpDk7Veg+nOzjlHgYAAAAAIIcHvboDlQ==
+ </data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/sticker-knight/README.md b/testing_data/tiled_examples/sticker-knight/README.md
new file mode 100644
index 0000000..053bed6
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/README.md
@@ -0,0 +1,8 @@
+Sticker Knight platformer example
+---------------------------------
+
+This example is by @ponywolf and released to the public domain. You can
+find it at http://opengameart.org/content/sticker-knight-platformer.
+
+It's a great example of using the flexible image collection tilesets with
+tiles on object layers, for both the map and the UI.
diff --git a/testing_data/tiled_examples/sticker-knight/map/alter.png b/testing_data/tiled_examples/sticker-knight/map/alter.png
new file mode 100644
index 0000000..1571c54
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/alter.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/backgroundArch.png b/testing_data/tiled_examples/sticker-knight/map/backgroundArch.png
new file mode 100644
index 0000000..84ba79d
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/backgroundArch.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/backgroundMountain.png b/testing_data/tiled_examples/sticker-knight/map/backgroundMountain.png
new file mode 100644
index 0000000..3596080
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/backgroundMountain.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/backgroundTower.png b/testing_data/tiled_examples/sticker-knight/map/backgroundTower.png
new file mode 100644
index 0000000..d602bb2
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/backgroundTower.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/backgroundTree.png b/testing_data/tiled_examples/sticker-knight/map/backgroundTree.png
new file mode 100644
index 0000000..ccee0f4
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/backgroundTree.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/blobBlue.png b/testing_data/tiled_examples/sticker-knight/map/blobBlue.png
new file mode 100644
index 0000000..6ed4873
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/blobBlue.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/blobGreen.png b/testing_data/tiled_examples/sticker-knight/map/blobGreen.png
new file mode 100644
index 0000000..465c93f
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/blobGreen.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/blue.png b/testing_data/tiled_examples/sticker-knight/map/blue.png
new file mode 100644
index 0000000..3f8a906
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/blue.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/bombStroked.png b/testing_data/tiled_examples/sticker-knight/map/bombStroked.png
new file mode 100644
index 0000000..2db2a2a
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/bombStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/castleWall.png b/testing_data/tiled_examples/sticker-knight/map/castleWall.png
new file mode 100644
index 0000000..b270467
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/castleWall.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/cloud.png b/testing_data/tiled_examples/sticker-knight/map/cloud.png
new file mode 100644
index 0000000..f51cdce
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/cloud.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/column1.png b/testing_data/tiled_examples/sticker-knight/map/column1.png
new file mode 100644
index 0000000..292d20d
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/column1.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/column2.png b/testing_data/tiled_examples/sticker-knight/map/column2.png
new file mode 100644
index 0000000..0169d95
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/column2.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/doorBlueStroked.png b/testing_data/tiled_examples/sticker-knight/map/doorBlueStroked.png
new file mode 100644
index 0000000..b205260
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/doorBlueStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/doorGreenStroke.png b/testing_data/tiled_examples/sticker-knight/map/doorGreenStroke.png
new file mode 100644
index 0000000..3d565db
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/doorGreenStroke.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/doorRedStroked.png b/testing_data/tiled_examples/sticker-knight/map/doorRedStroked.png
new file mode 100644
index 0000000..dfeb1b7
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/doorRedStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/doorStroked.png b/testing_data/tiled_examples/sticker-knight/map/doorStroked.png
new file mode 100644
index 0000000..4891c39
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/doorStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/earthWall.png b/testing_data/tiled_examples/sticker-knight/map/earthWall.png
new file mode 100644
index 0000000..1729a1b
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/earthWall.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/earthWall2.png b/testing_data/tiled_examples/sticker-knight/map/earthWall2.png
new file mode 100644
index 0000000..ed08586
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/earthWall2.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/exit.png b/testing_data/tiled_examples/sticker-knight/map/exit.png
new file mode 100644
index 0000000..4a3a5b7
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/exit.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/flare.png b/testing_data/tiled_examples/sticker-knight/map/flare.png
new file mode 100644
index 0000000..52f29e1
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/flare.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/gemBlueStroked.png b/testing_data/tiled_examples/sticker-knight/map/gemBlueStroked.png
new file mode 100644
index 0000000..ba99cef
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/gemBlueStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/gemRedStroked.png b/testing_data/tiled_examples/sticker-knight/map/gemRedStroked.png
new file mode 100644
index 0000000..e223514
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/gemRedStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/grassLarge.png b/testing_data/tiled_examples/sticker-knight/map/grassLarge.png
new file mode 100644
index 0000000..93dfcd3
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/grassLarge.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/grassSmall.png b/testing_data/tiled_examples/sticker-knight/map/grassSmall.png
new file mode 100644
index 0000000..0fe8a00
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/grassSmall.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/grey.png b/testing_data/tiled_examples/sticker-knight/map/grey.png
new file mode 100644
index 0000000..5a948f1
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/grey.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/hero.png b/testing_data/tiled_examples/sticker-knight/map/hero.png
new file mode 100644
index 0000000..1957fb8
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/hero.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/keyGreenStroked.png b/testing_data/tiled_examples/sticker-knight/map/keyGreenStroked.png
new file mode 100644
index 0000000..7ed454b
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/keyGreenStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/keyRedStroked.png b/testing_data/tiled_examples/sticker-knight/map/keyRedStroked.png
new file mode 100644
index 0000000..1407a37
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/keyRedStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/keyYellowStroked.png b/testing_data/tiled_examples/sticker-knight/map/keyYellowStroked.png
new file mode 100644
index 0000000..78aeeed
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/keyYellowStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/objs.tsx b/testing_data/tiled_examples/sticker-knight/map/objs.tsx
new file mode 100644
index 0000000..7dfc66c
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/objs.tsx
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tileset version="1.4" tiledversion="1.4.1" name="objs" tilewidth="384" tileheight="332" tilecount="62" columns="0">
+ <tile id="0">
+ <image width="160" height="192" source="alter.png"/>
+ </tile>
+ <tile id="1">
+ <image width="96" height="64" source="blobBlue.png"/>
+ </tile>
+ <tile id="2">
+ <image width="96" height="64" source="blobGreen.png"/>
+ </tile>
+ <tile id="3">
+ <image width="64" height="64" source="blue.png"/>
+ </tile>
+ <tile id="4">
+ <image width="96" height="128" source="bombStroked.png"/>
+ </tile>
+ <tile id="5">
+ <image width="64" height="64" source="castleWall.png"/>
+ </tile>
+ <tile id="6">
+ <image width="384" height="128" source="cloud.png"/>
+ </tile>
+ <tile id="7">
+ <image width="128" height="192" source="column1.png"/>
+ </tile>
+ <tile id="8">
+ <image width="128" height="192" source="column2.png"/>
+ </tile>
+ <tile id="9">
+ <image width="160" height="192" source="doorBlueStroked.png"/>
+ </tile>
+ <tile id="10">
+ <image width="160" height="192" source="doorGreenStroke.png"/>
+ </tile>
+ <tile id="11">
+ <image width="160" height="192" source="doorRedStroked.png"/>
+ </tile>
+ <tile id="12">
+ <image width="160" height="192" source="doorStroked.png"/>
+ </tile>
+ <tile id="13">
+ <image width="64" height="64" source="earthWall.png"/>
+ </tile>
+ <tile id="14">
+ <image width="160" height="192" source="exit.png"/>
+ </tile>
+ <tile id="15">
+ <image width="192" height="192" source="flare.png"/>
+ </tile>
+ <tile id="16">
+ <image width="64" height="64" source="gemBlueStroked.png"/>
+ </tile>
+ <tile id="17">
+ <image width="64" height="64" source="gemRedStroked.png"/>
+ </tile>
+ <tile id="18">
+ <image width="224" height="32" source="grassLarge.png"/>
+ </tile>
+ <tile id="19">
+ <image width="160" height="32" source="grassSmall.png"/>
+ </tile>
+ <tile id="20">
+ <image width="64" height="64" source="grey.png"/>
+ </tile>
+ <tile id="21">
+ <image width="128" height="160" source="hero.png"/>
+ </tile>
+ <tile id="22">
+ <image width="96" height="64" source="keyGreenStroked.png"/>
+ </tile>
+ <tile id="23">
+ <image width="96" height="64" source="keyRedStroked.png"/>
+ </tile>
+ <tile id="24">
+ <image width="96" height="64" source="keyYellowStroked.png"/>
+ </tile>
+ <tile id="25">
+ <image width="192" height="64" source="platform1.png"/>
+ </tile>
+ <tile id="26">
+ <image width="192" height="64" source="platform2.png"/>
+ </tile>
+ <tile id="27">
+ <image width="192" height="64" source="platform3.png"/>
+ </tile>
+ <tile id="28">
+ <image width="192" height="64" source="platform4.png"/>
+ </tile>
+ <tile id="29">
+ <image width="256" height="96" source="platformBase1.png"/>
+ </tile>
+ <tile id="30">
+ <image width="256" height="96" source="platformBase2.png"/>
+ </tile>
+ <tile id="31">
+ <image width="256" height="96" source="platformBase3.png"/>
+ </tile>
+ <tile id="32">
+ <image width="256" height="96" source="platformBase4.png"/>
+ </tile>
+ <tile id="33">
+ <image width="128" height="96" source="platformBlock1.png"/>
+ </tile>
+ <tile id="34">
+ <image width="128" height="96" source="platformBlock2.png"/>
+ </tile>
+ <tile id="35">
+ <image width="128" height="96" source="platformBlock3.png"/>
+ </tile>
+ <tile id="36">
+ <image width="128" height="96" source="platformBlock4.png"/>
+ </tile>
+ <tile id="37">
+ <image width="96" height="64" source="platformConnector1.png"/>
+ </tile>
+ <tile id="38">
+ <image width="96" height="64" source="platformConnector2.png"/>
+ </tile>
+ <tile id="39">
+ <image width="96" height="64" source="platformConnector3.png"/>
+ </tile>
+ <tile id="40">
+ <image width="96" height="64" source="platformConnector4.png"/>
+ </tile>
+ <tile id="41">
+ <image width="96" height="96" source="pushBlock1.png"/>
+ </tile>
+ <tile id="42">
+ <image width="96" height="96" source="pushBlock2.png"/>
+ </tile>
+ <tile id="43">
+ <image width="96" height="96" source="pushBlock3.png"/>
+ </tile>
+ <tile id="44">
+ <image width="64" height="64" source="shadow.png"/>
+ </tile>
+ <tile id="45">
+ <image width="93" height="93" source="shieldStroked.png"/>
+ </tile>
+ <tile id="46">
+ <image width="160" height="128" source="sign.png"/>
+ </tile>
+ <tile id="48">
+ <image width="192" height="96" source="swordStroked.png"/>
+ </tile>
+ <tile id="49">
+ <image width="96" height="96" source="torch.png"/>
+ </tile>
+ <tile id="50">
+ <image width="128" height="32" source="trap.png"/>
+ </tile>
+ <tile id="51">
+ <image width="128" height="96" source="wallDecor1.png"/>
+ </tile>
+ <tile id="52">
+ <image width="128" height="96" source="wallDecor2.png"/>
+ </tile>
+ <tile id="53">
+ <image width="160" height="128" source="wallDecor3.png"/>
+ </tile>
+ <tile id="54">
+ <image width="65" height="64" source="window1.png"/>
+ </tile>
+ <tile id="55">
+ <image width="64" height="64" source="window2.png"/>
+ </tile>
+ <tile id="56">
+ <image width="56" height="59" source="window3.png"/>
+ </tile>
+ <tile id="57">
+ <image width="135" height="115" source="backgroundArch.png"/>
+ </tile>
+ <tile id="58">
+ <image width="380" height="140" source="backgroundMountain.png"/>
+ </tile>
+ <tile id="59">
+ <image width="129" height="332" source="backgroundTower.png"/>
+ </tile>
+ <tile id="60">
+ <image width="109" height="177" source="backgroundTree.png"/>
+ </tile>
+ <tile id="61">
+ <image width="64" height="64" source="earthWall2.png"/>
+ </tile>
+ <tile id="62">
+ <image width="133" height="160" source="skeleton.png"/>
+ </tile>
+</tileset>
diff --git a/testing_data/tiled_examples/sticker-knight/map/platform1.png b/testing_data/tiled_examples/sticker-knight/map/platform1.png
new file mode 100644
index 0000000..e634bed
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platform1.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platform2.png b/testing_data/tiled_examples/sticker-knight/map/platform2.png
new file mode 100644
index 0000000..3bfa441
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platform2.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platform3.png b/testing_data/tiled_examples/sticker-knight/map/platform3.png
new file mode 100644
index 0000000..d2938f9
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platform3.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platform4.png b/testing_data/tiled_examples/sticker-knight/map/platform4.png
new file mode 100644
index 0000000..39c53fd
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platform4.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBase1.png b/testing_data/tiled_examples/sticker-knight/map/platformBase1.png
new file mode 100644
index 0000000..7a08f94
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformBase1.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBase2.png b/testing_data/tiled_examples/sticker-knight/map/platformBase2.png
new file mode 100644
index 0000000..074bbe5
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformBase2.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBase3.png b/testing_data/tiled_examples/sticker-knight/map/platformBase3.png
new file mode 100644
index 0000000..1edfff9
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformBase3.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBase4.png b/testing_data/tiled_examples/sticker-knight/map/platformBase4.png
new file mode 100644
index 0000000..e142526
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformBase4.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBlock1.png b/testing_data/tiled_examples/sticker-knight/map/platformBlock1.png
new file mode 100644
index 0000000..c2ab0ee
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformBlock1.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBlock2.png b/testing_data/tiled_examples/sticker-knight/map/platformBlock2.png
new file mode 100644
index 0000000..39d6493
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformBlock2.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBlock3.png b/testing_data/tiled_examples/sticker-knight/map/platformBlock3.png
new file mode 100644
index 0000000..12337a8
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformBlock3.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBlock4.png b/testing_data/tiled_examples/sticker-knight/map/platformBlock4.png
new file mode 100644
index 0000000..5ce2c18
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformBlock4.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformConnector1.png b/testing_data/tiled_examples/sticker-knight/map/platformConnector1.png
new file mode 100644
index 0000000..5b03569
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformConnector1.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformConnector2.png b/testing_data/tiled_examples/sticker-knight/map/platformConnector2.png
new file mode 100644
index 0000000..5671b0e
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformConnector2.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformConnector3.png b/testing_data/tiled_examples/sticker-knight/map/platformConnector3.png
new file mode 100644
index 0000000..095f014
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformConnector3.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/platformConnector4.png b/testing_data/tiled_examples/sticker-knight/map/platformConnector4.png
new file mode 100644
index 0000000..b859ee4
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/platformConnector4.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/pushBlock1.png b/testing_data/tiled_examples/sticker-knight/map/pushBlock1.png
new file mode 100644
index 0000000..9b7156e
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/pushBlock1.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/pushBlock2.png b/testing_data/tiled_examples/sticker-knight/map/pushBlock2.png
new file mode 100644
index 0000000..c3977cb
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/pushBlock2.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/pushBlock3.png b/testing_data/tiled_examples/sticker-knight/map/pushBlock3.png
new file mode 100644
index 0000000..28778dd
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/pushBlock3.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/sandbox.tmx b/testing_data/tiled_examples/sticker-knight/map/sandbox.tmx
new file mode 100644
index 0000000..3c4ff00
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/sandbox.tmx
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.4" tiledversion="1.4.1" orientation="orthogonal" renderorder="right-down" width="79" height="45" tilewidth="32" tileheight="32" infinite="0" backgroundcolor="#27b99a" nextlayerid="10" nextobjectid="203">
+ <tileset firstgid="1" source="objs.tsx"/>
+ <objectgroup id="1" name="parallax">
+ <object id="95" gid="7" x="-16.2424" y="452.394" width="384" height="128"/>
+ <object id="90" gid="16" x="146.97" y="693.727" width="192" height="192"/>
+ <object id="91" gid="2147483655" x="373.939" y="627.121" width="384" height="128"/>
+ <object id="93" gid="2147483655" x="2105.85" y="510.818" width="384" height="128"/>
+ <object id="92" gid="7" x="1453.52" y="651.909" width="384" height="128"/>
+ <object id="94" gid="7" x="946.606" y="420.455" width="384" height="128"/>
+ <object id="105" gid="59" x="66.6667" y="1079" width="837.333" height="320"/>
+ <object id="106" gid="59" x="592" y="1055" width="920" height="448"/>
+ <object id="107" gid="59" x="1173.54" y="1179.49" width="920" height="352" rotation="-10.4469"/>
+ <object id="108" gid="59" x="1824.67" y="1141" width="656.364" height="448"/>
+ <object id="109" gid="60" x="2145.33" y="817" width="129" height="332"/>
+ <object id="110" gid="60" x="1771.52" y="976.697" width="129" height="332"/>
+ <object id="113" gid="60" x="847.515" y="823.788" width="129" height="332"/>
+ </objectgroup>
+ <objectgroup id="2" name="background">
+ <object id="1" gid="14" x="0" y="1440" width="2528" height="385"/>
+ <object id="79" gid="14" x="448" y="1087" width="512" height="320"/>
+ <object id="169" gid="62" x="1216" y="991" width="256" height="160"/>
+ <object id="172" gid="62" x="992" y="1023" width="256" height="160"/>
+ <object id="177" gid="62" x="512" y="735" width="256" height="160"/>
+ </objectgroup>
+ <objectgroup id="3" name="ground">
+ <object id="2" gid="31" x="0" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="3" gid="31" x="256" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="4" gid="30" x="1216" y="895" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" type="bool" value="true"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="5" gid="31" x="512" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="7" gid="31" x="768" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="9" gid="31" x="992" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="11" gid="31" x="1248" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="12" gid="52" x="84" y="1199" width="128" height="96"/>
+ <object id="13" gid="52" x="652" y="1319" width="128" height="96"/>
+ <object id="14" gid="52" x="972" y="1203" width="128" height="96"/>
+ <object id="15" gid="52" x="1420" y="1319" width="128" height="96"/>
+ <object id="16" gid="52" x="1748" y="1183" width="128" height="96"/>
+ <object id="17" gid="52" x="1964.24" y="1354.15" width="128" height="96"/>
+ <object id="18" gid="53" x="272" y="1295" width="128" height="96"/>
+ <object id="19" gid="53" x="576" y="1191" width="128" height="96"/>
+ <object id="20" gid="53" x="1048" y="1323" width="128" height="96"/>
+ <object id="21" gid="53" x="1288" y="1211" width="128" height="96"/>
+ <object id="22" gid="53" x="1720" y="1339" width="128" height="96"/>
+ <object id="23" gid="53" x="2008" y="1203" width="128" height="96"/>
+ <object id="24" gid="53" x="2287.76" y="1198.03" width="128" height="96"/>
+ <object id="84" gid="53" x="514.545" y="907.545" width="128" height="96"/>
+ <object id="86" gid="52" x="658.667" y="963.606" width="128" height="96"/>
+ <object id="87" gid="31" x="448" y="831" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" type="bool" value="true"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="121" gid="53" x="2190.79" y="1361.67" width="128" height="96"/>
+ <object id="162" gid="53" x="786.545" y="919.545" width="128" height="96"/>
+ <object id="163" gid="31" x="704" y="831" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" type="bool" value="true"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="164" gid="31" x="1760" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="166" gid="31" x="2016" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="175" gid="30" x="992" y="959" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" type="bool" value="true"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="176" gid="30" x="1472" y="1023" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" type="bool" value="true"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="180" gid="30" x="512" y="671" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" type="bool" value="true"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="183" gid="31" x="1504" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="184" gid="31" x="2272" y="1087" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" type="float" value="1"/>
+ </properties>
+ </object>
+ <object id="187" gid="52" x="1280" y="991" width="128" height="96"/>
+ <object id="188" gid="52" x="544" y="735" width="128" height="96"/>
+ </objectgroup>
+ <objectgroup id="4" name="castle">
+ <object id="25" gid="33" x="1952" y="1023" width="256" height="96"/>
+ <object id="26" gid="33" x="1952" y="959" width="256" height="96"/>
+ <object id="27" gid="33" x="1952" y="895" width="256" height="96"/>
+ <object id="28" gid="33" x="1952" y="831" width="256" height="96"/>
+ <object id="29" gid="33" x="1952" y="639" width="256" height="96"/>
+ <object id="30" gid="33" x="1952" y="767" width="256" height="96"/>
+ <object id="31" gid="33" x="1952" y="703" width="256" height="96"/>
+ <object id="33" gid="33" x="1952" y="575" width="256" height="96"/>
+ <object id="34" gid="33" x="1888" y="511" width="256" height="96"/>
+ <object id="133" gid="2147483681" x="1984" y="575" width="256" height="96"/>
+ <object id="134" gid="2147483681" x="1984" y="703" width="256" height="96"/>
+ <object id="135" gid="2147483681" x="1984" y="1023" width="256" height="96"/>
+ <object id="136" gid="2147483681" x="1984" y="639" width="256" height="96"/>
+ <object id="137" gid="2147483681" x="1984" y="895" width="256" height="96"/>
+ <object id="138" gid="2147483681" x="2048" y="511" width="256" height="96"/>
+ <object id="139" gid="2147483681" x="1984" y="831" width="256" height="96"/>
+ <object id="140" gid="2147483681" x="1984" y="767" width="256" height="96"/>
+ <object id="141" gid="2147483681" x="1984" y="959" width="256" height="96"/>
+ <object id="146" gid="2147483681" x="2048" y="447" width="256" height="96"/>
+ <object id="147" gid="33" x="1888" y="447" width="256" height="96"/>
+ <object id="150" gid="2147483681" x="2048" y="383" width="256" height="96"/>
+ <object id="151" gid="33" x="1888" y="383" width="256" height="96"/>
+ <object id="153" gid="29" x="2176" y="223" width="192" height="64" rotation="90"/>
+ <object id="154" gid="29" x="2240" y="223" width="192" height="64" rotation="-270"/>
+ <object id="155" gid="29" x="2048" y="223" width="192" height="64" rotation="90"/>
+ <object id="156" gid="29" x="2112" y="223" width="192" height="64" rotation="-270"/>
+ <object id="157" gid="29" x="1920" y="223" width="192" height="64" rotation="90"/>
+ <object id="158" gid="29" x="1984" y="223" width="192" height="64" rotation="-270"/>
+ <object id="159" gid="29" x="1952" y="415" width="192" height="64" rotation="-90"/>
+ </objectgroup>
+ <objectgroup id="5" name="castledeco">
+ <object id="54" gid="55" x="2063" y="698" width="65" height="64"/>
+ <object id="55" gid="55" x="2063" y="557" width="65" height="64"/>
+ <object id="57" type="exit" gid="13" x="2016" y="991" width="160" height="192">
+ <properties>
+ <property name="map" value="scene/game/map/sandbox2.json"/>
+ </properties>
+ </object>
+ </objectgroup>
+ <objectgroup id="6" name="shading" opacity="0.36">
+ <object id="78" gid="45" x="1952" y="991" width="32" height="512"/>
+ <object id="80" gid="45" x="448" y="991" width="32" height="256"/>
+ <object id="89" gid="45" x="928" y="991" width="32" height="256"/>
+ <object id="112" gid="45" x="2208" y="991" width="32" height="512"/>
+ <object id="142" gid="45" x="1888" y="479" width="32" height="64"/>
+ <object id="143" gid="45" x="2272" y="479" width="32" height="64"/>
+ <object id="144" gid="45" x="1984" y="490" width="254" height="11"/>
+ <object id="145" gid="45" x="2272" y="415" width="32" height="64"/>
+ <object id="148" gid="45" x="1888" y="415" width="32" height="188"/>
+ <object id="149" gid="45" x="2272" y="351" width="32" height="128"/>
+ <object id="152" gid="45" x="1888" y="351" width="32" height="64"/>
+ <object id="171" gid="45" x="1440" y="991" width="32" height="192"/>
+ <object id="178" gid="45" x="512" y="735" width="32" height="160"/>
+ <object id="179" gid="45" x="736" y="735" width="32" height="160"/>
+ <object id="181" gid="45" x="992" y="991" width="32" height="128"/>
+ <object id="198" gid="45" x="2496" y="1440" width="32" height="448"/>
+ <object id="199" gid="45" x="0" y="1440" width="32" height="448"/>
+ </objectgroup>
+ <objectgroup id="7" name="game">
+ <object id="58" template="templates/hero.tx" x="45" y="979.5"/>
+ <object id="111" template="templates/block.tx" x="594" y="571"/>
+ <object id="182" template="templates/block.tx" x="1344" y="799"/>
+ <object id="190" template="templates/diamond.tx" x="238" y="947.5"/>
+ <object id="191" template="templates/diamond.tx" x="352" y="860.5"/>
+ <object id="192" template="templates/diamond.tx" x="481" y="950.5"/>
+ <object id="200" template="templates/diamond.tx" x="1583.45" y="829.318"/>
+ <object id="201" template="templates/diamond.tx" x="1826.45" y="832.318"/>
+ <object id="202" template="templates/diamond.tx" x="1697.45" y="742.318"/>
+ </objectgroup>
+ <objectgroup id="8" name="above">
+ <object id="118" gid="19" x="481" y="997" width="224" height="32"/>
+ </objectgroup>
+ <objectgroup id="9" name="bounds" visible="0">
+ <object id="197" x="2496" y="0" width="32" height="992">
+ <properties>
+ <property name="bodyType" value="static"/>
+ </properties>
+ </object>
+ <object id="195" x="0" y="0" width="32" height="992">
+ <properties>
+ <property name="bodyType" value="static"/>
+ </properties>
+ </object>
+ </objectgroup>
+</map>
diff --git a/testing_data/tiled_examples/sticker-knight/map/sandbox2.tmx b/testing_data/tiled_examples/sticker-knight/map/sandbox2.tmx
new file mode 100644
index 0000000..61bb0f6
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/sandbox2.tmx
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="80" height="31" tilewidth="32" tileheight="32" infinite="0" backgroundcolor="#35495e" nextlayerid="9" nextobjectid="387">
+ <tileset firstgid="1" source="objs.tsx"/>
+ <objectgroup id="1" name="background">
+ <object id="193" gid="6" x="0" y="1184" width="1280" height="416"/>
+ <object id="284" gid="15" x="192" y="450" width="160" height="192"/>
+ <object id="287" gid="54" x="704" y="448" width="160" height="128"/>
+ <object id="288" gid="54" x="72" y="160" width="160" height="128"/>
+ <object id="291" gid="54" x="488" y="664" width="160" height="128"/>
+ <object id="292" gid="54" x="1296" y="216" width="160" height="128"/>
+ <object id="293" gid="54" x="1608" y="488" width="160" height="128"/>
+ <object id="294" gid="54" x="1856" y="648" width="160" height="128"/>
+ <object id="295" gid="54" x="2280" y="288" width="160" height="128"/>
+ <object id="296" gid="50" x="96" y="352" width="96" height="96"/>
+ <object id="297" gid="50" x="384" y="352" width="96" height="96"/>
+ <object id="298" gid="50" x="912" y="608" width="96" height="96"/>
+ <object id="299" gid="50" x="1888" y="288" width="96" height="96"/>
+ <object id="300" gid="50" x="2272" y="288" width="96" height="96"/>
+ <object id="301" gid="50" x="1296" y="328" width="96" height="96"/>
+ <object id="341" gid="6" x="2560" y="-288" width="1472" height="392" rotation="-270"/>
+ <object id="342" gid="6" x="-352" y="-288" width="1472" height="352" rotation="-270"/>
+ <object id="353" gid="6" x="0" y="-56" width="2568" height="232"/>
+ <object id="361" gid="54" x="1296" y="216" width="160" height="128"/>
+ <object id="373" gid="6" x="1792" y="1184" width="800" height="352"/>
+ <object id="374" gid="6" x="1152" y="1184" width="800" height="160"/>
+ </objectgroup>
+ <objectgroup id="2" name="ground">
+ <object id="196" gid="28" x="2120" y="416" width="192" height="64">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="true"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="197" gid="29" x="1928" y="416" width="192" height="64">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="true"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="232" gid="28" x="1088" y="608" width="192" height="64">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="true"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="233" gid="29" x="1472" y="480" width="192" height="64">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="true"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="237" type="coin" gid="18" x="2096" y="608" width="64" height="64"/>
+ <object id="238" type="coin" gid="18" x="1152" y="480" width="64" height="64"/>
+ <object id="258" gid="33" x="0" y="864" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="259" gid="33" x="512" y="864" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="260" gid="32" x="256" y="864" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="261" gid="32" x="768" y="864" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="262" gid="33" x="1024" y="864" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="263" gid="33" x="1280" y="1088" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="264" gid="32" x="1536" y="1088" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="265" gid="33" x="1792" y="864" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="266" gid="33" x="2304" y="864" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="267" gid="32" x="2048" y="864" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="276" type="exit" gid="10" x="2056" y="352" width="160" height="192">
+ <properties>
+ <property name="map" value="scene/game/map/sandbox3.json"/>
+ </properties>
+ </object>
+ <object id="277" gid="37" x="352" y="768" width="128" height="96"/>
+ <object id="278" gid="8" x="116" y="672" width="128" height="192"/>
+ <object id="279" gid="9" x="363" y="672" width="128" height="192"/>
+ <object id="280" gid="36" x="104" y="768" width="128" height="96"/>
+ <object id="281" gid="28" x="216" y="512" width="192" height="64">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="true"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="282" gid="29" x="24" y="512" width="192" height="64">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="true"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="283" gid="29" x="408" y="512" width="192" height="64">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="true"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="286" gid="8" x="1112" y="768" width="128" height="192"/>
+ <object id="343" gid="33" x="1792" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value=""/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="344" gid="33" x="2304" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="false"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="345" gid="33" x="0" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="false"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="346" gid="32" x="256" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="false"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="347" gid="33" x="1280" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="false"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="348" gid="33" x="512" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="false"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="349" gid="33" x="1024" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="false"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="350" gid="32" x="1536" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="false"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="351" gid="32" x="2048" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="false"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="352" gid="33" x="768" y="32" width="256" height="96">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="false"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="270" gid="36" x="1920" y="768" width="128" height="96"/>
+ <object id="273" gid="9" x="2179" y="672" width="128" height="192"/>
+ <object id="272" gid="8" x="1932" y="672" width="128" height="192"/>
+ <object id="275" gid="37" x="1920" y="480" width="128" height="96"/>
+ <object id="274" gid="36" x="2168" y="480" width="128" height="96"/>
+ <object id="271" gid="37" x="2168" y="768" width="128" height="96"/>
+ <object id="383" gid="29" x="1472" y="704" width="192" height="64">
+ <properties>
+ <property name="bodyType" value="static"/>
+ <property name="floating" value="true"/>
+ <property name="friction" value="1.00"/>
+ </properties>
+ </object>
+ <object id="384" type="coin" gid="18" x="1536" y="320" width="64" height="64"/>
+ </objectgroup>
+ <objectgroup id="3" name="castledeco">
+ <object id="220" gid="37" x="184" y="1016" width="128" height="96"/>
+ <object id="221" gid="36" x="1832" y="1024" width="128" height="96"/>
+ <object id="227" gid="55" x="1184" y="968" width="65" height="64"/>
+ <object id="228" gid="55" x="512" y="960" width="65" height="64"/>
+ <object id="229" gid="55" x="2304" y="952" width="65" height="64"/>
+ <object id="268" gid="36" x="832" y="1048" width="128" height="96"/>
+ <object id="364" gid="54" x="-200" y="216" width="160" height="128"/>
+ <object id="359" gid="54" x="-120" y="1072" width="160" height="128"/>
+ <object id="360" gid="54" x="2584" y="56" width="160" height="128"/>
+ <object id="366" gid="54" x="2512" y="1112" width="160" height="128"/>
+ <object id="367" gid="56" x="928" y="328" width="64" height="64"/>
+ <object id="368" gid="56" x="1128" y="160" width="64" height="64"/>
+ <object id="369" gid="56" x="2392" y="464" width="64" height="64"/>
+ <object id="370" gid="56" x="272" y="624" width="64" height="64"/>
+ </objectgroup>
+ <objectgroup id="4" name="shading" opacity="0.16">
+ <object id="112" gid="45" x="2496" y="1184" width="456" height="1472"/>
+ <object id="334" gid="45" x="-384" y="1184" width="448" height="1472"/>
+ </objectgroup>
+ <objectgroup id="5" name="light" opacity="0.5">
+ <object id="335" gid="16" x="2224" y="280" width="192" height="192"/>
+ <object id="336" gid="16" x="1840" y="280" width="192" height="192"/>
+ <object id="337" gid="16" x="1248" y="320" width="192" height="192"/>
+ <object id="338" gid="16" x="336" y="336" width="192" height="192"/>
+ <object id="339" gid="16" x="48" y="336" width="192" height="192"/>
+ <object id="340" gid="16" x="864" y="600" width="192" height="192"/>
+ </objectgroup>
+ <objectgroup id="6" name="game">
+ <object id="58" template="templates/hero.tx" x="288" y="448"/>
+ <object id="111" template="templates/block.tx" x="2245" y="340"/>
+ <object id="161" name="hey" type="blob" gid="3" x="464" y="768" width="96" height="64"/>
+ <object id="160" type="blob" gid="2" x="846" y="756" width="96" height="64"/>
+ <object id="189" type="enemy" gid="2147483711" x="2412" y="754" width="133" height="160"/>
+ <object id="190" type="coin" gid="17" x="96" y="736" width="64" height="64"/>
+ <object id="192" type="coin" gid="17" x="96" y="416" width="64" height="64"/>
+ <object id="231" template="templates/block.tx" x="488" y="448"/>
+ <object id="285" type="coin" gid="17" x="1536" y="576" width="64" height="64"/>
+ </objectgroup>
+ <objectgroup id="7" name="above">
+ <object id="379" type="spikes" gid="51" x="1280" y="995" width="128" height="32"/>
+ <object id="380" type="spikes" gid="51" x="1408" y="995" width="128" height="32"/>
+ <object id="381" type="spikes" gid="51" x="1536" y="995" width="128" height="32"/>
+ <object id="382" type="spikes" gid="51" x="1664" y="995" width="128" height="32"/>
+ </objectgroup>
+ <objectgroup id="8" name="bounds" visible="0">
+ <object id="375" x="-32" y="-64" width="32" height="896">
+ <properties>
+ <property name="bodyType" value="static"/>
+ </properties>
+ </object>
+ <object id="376" x="2560" y="-64" width="32" height="896">
+ <properties>
+ <property name="bodyType" value="static"/>
+ </properties>
+ </object>
+ <object id="377" x="1792" y="768" width="32" height="288">
+ <properties>
+ <property name="bodyType" value="static"/>
+ </properties>
+ </object>
+ <object id="378" x="1248" y="762.5" width="32" height="293.5">
+ <properties>
+ <property name="bodyType" value="static"/>
+ </properties>
+ </object>
+ </objectgroup>
+</map>
diff --git a/testing_data/tiled_examples/sticker-knight/map/shadow.png b/testing_data/tiled_examples/sticker-knight/map/shadow.png
new file mode 100644
index 0000000..c43af09
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/shadow.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/shieldStroked.png b/testing_data/tiled_examples/sticker-knight/map/shieldStroked.png
new file mode 100644
index 0000000..976f171
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/shieldStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/sign.png b/testing_data/tiled_examples/sticker-knight/map/sign.png
new file mode 100644
index 0000000..47ec0ac
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/sign.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/skeleton.png b/testing_data/tiled_examples/sticker-knight/map/skeleton.png
new file mode 100644
index 0000000..84040a1
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/skeleton.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/swordStroked.png b/testing_data/tiled_examples/sticker-knight/map/swordStroked.png
new file mode 100644
index 0000000..a3b6874
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/swordStroked.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/templates/block.tx b/testing_data/tiled_examples/sticker-knight/map/templates/block.tx
new file mode 100644
index 0000000..3bb9a81
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/templates/block.tx
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template>
+ <tileset firstgid="1" source="../objs.tsx"/>
+ <object name="block" gid="44" width="96" height="96">
+ <properties>
+ <property name="bodyType" value="dynamic"/>
+ <property name="density" type="float" value="2"/>
+ <property name="friction" type="float" value="0.45"/>
+ </properties>
+ </object>
+</template>
diff --git a/testing_data/tiled_examples/sticker-knight/map/templates/diamond.tx b/testing_data/tiled_examples/sticker-knight/map/templates/diamond.tx
new file mode 100644
index 0000000..01b0dd1
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/templates/diamond.tx
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template>
+ <tileset firstgid="1" source="../objs.tsx"/>
+ <object type="coin" gid="17" width="64" height="64"/>
+</template>
diff --git a/testing_data/tiled_examples/sticker-knight/map/templates/hero.tx b/testing_data/tiled_examples/sticker-knight/map/templates/hero.tx
new file mode 100644
index 0000000..793b2f5
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/templates/hero.tx
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template>
+ <tileset firstgid="1" source="../objs.tsx"/>
+ <object name="hero" type="hero" gid="22" width="128" height="160"/>
+</template>
diff --git a/testing_data/tiled_examples/sticker-knight/map/torch.png b/testing_data/tiled_examples/sticker-knight/map/torch.png
new file mode 100644
index 0000000..75ca437
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/torch.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/trap.png b/testing_data/tiled_examples/sticker-knight/map/trap.png
new file mode 100644
index 0000000..7b07731
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/trap.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/wallDecor1.png b/testing_data/tiled_examples/sticker-knight/map/wallDecor1.png
new file mode 100644
index 0000000..9fadac3
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/wallDecor1.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/wallDecor2.png b/testing_data/tiled_examples/sticker-knight/map/wallDecor2.png
new file mode 100644
index 0000000..e33ad11
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/wallDecor2.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/wallDecor3.png b/testing_data/tiled_examples/sticker-knight/map/wallDecor3.png
new file mode 100644
index 0000000..3053883
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/wallDecor3.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/window1.png b/testing_data/tiled_examples/sticker-knight/map/window1.png
new file mode 100644
index 0000000..255b571
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/window1.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/window2.png b/testing_data/tiled_examples/sticker-knight/map/window2.png
new file mode 100644
index 0000000..3a4143b
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/window2.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/map/window3.png b/testing_data/tiled_examples/sticker-knight/map/window3.png
new file mode 100644
index 0000000..6039873
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/map/window3.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/preview.png b/testing_data/tiled_examples/sticker-knight/preview.png
new file mode 100644
index 0000000..8268433
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/preview.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/sprites.png b/testing_data/tiled_examples/sticker-knight/sprites.png
new file mode 100644
index 0000000..b00c781
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/sprites.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/backgroundSet.png b/testing_data/tiled_examples/sticker-knight/ui/backgroundSet.png
new file mode 100644
index 0000000..1be6bb1
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/backgroundSet.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/block.png b/testing_data/tiled_examples/sticker-knight/ui/block.png
new file mode 100644
index 0000000..382c3d8
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/block.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/buttonHelp.png b/testing_data/tiled_examples/sticker-knight/ui/buttonHelp.png
new file mode 100644
index 0000000..920a380
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/buttonHelp.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/buttonStart.png b/testing_data/tiled_examples/sticker-knight/ui/buttonStart.png
new file mode 100644
index 0000000..415dd54
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/buttonStart.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/cloud.png b/testing_data/tiled_examples/sticker-knight/ui/cloud.png
new file mode 100644
index 0000000..f51cdce
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/cloud.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/gem.png b/testing_data/tiled_examples/sticker-knight/ui/gem.png
new file mode 100644
index 0000000..1e95975
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/gem.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/heart.png b/testing_data/tiled_examples/sticker-knight/ui/heart.png
new file mode 100644
index 0000000..d471b59
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/heart.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/helpBackground.png b/testing_data/tiled_examples/sticker-knight/ui/helpBackground.png
new file mode 100644
index 0000000..ad20725
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/helpBackground.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/shield.png b/testing_data/tiled_examples/sticker-knight/ui/shield.png
new file mode 100644
index 0000000..1474ad0
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/shield.png
Binary files differ
diff --git a/testing_data/tiled_examples/sticker-knight/ui/title.json b/testing_data/tiled_examples/sticker-knight/ui/title.json
new file mode 100644
index 0000000..95b7beb
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/title.json
@@ -0,0 +1,281 @@
+{ "backgroundcolor":"#3b97d3",
+ "height":26,
+ "layers":[
+ {
+ "draworder":"topdown",
+ "height":26,
+ "name":"background",
+ "objects":[
+ {
+ "gid":7,
+ "height":262.666666666667,
+ "id":11,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":1736,
+ "x":-256,
+ "y":920.666666666667
+ },
+ {
+ "gid":6,
+ "height":832,
+ "id":34,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":1216,
+ "x":122,
+ "y":810
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "width":38,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "height":26,
+ "name":"clouds",
+ "objects":[
+ {
+ "gid":8,
+ "height":61.3333333333333,
+ "id":14,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":184,
+ "x":640,
+ "y":320
+ },
+ {
+ "gid":8,
+ "height":61.3333333333333,
+ "id":17,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":184,
+ "x":336,
+ "y":144
+ },
+ {
+ "gid":8,
+ "height":61.3333333333333,
+ "id":21,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":192,
+ "x":1024,
+ "y":145
+ },
+ {
+ "gid":2147483656,
+ "height":61.3333333333333,
+ "id":23,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":184,
+ "x":44,
+ "y":136
+ },
+ {
+ "gid":6,
+ "height":600,
+ "id":8,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":954,
+ "x":-226,
+ "y":768
+ },
+ {
+ "gid":2147483654,
+ "height":546,
+ "id":35,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":826,
+ "x":710,
+ "y":782
+ },
+ {
+ "gid":2147483656,
+ "height":103.333333333333,
+ "id":36,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":284,
+ "x":926,
+ "y":307
+ },
+ {
+ "gid":8,
+ "height":103.333333333333,
+ "id":37,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":284,
+ "x":124,
+ "y":353
+ }],
+ "opacity":0.490000009536743,
+ "type":"objectgroup",
+ "visible":true,
+ "width":38,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "height":38,
+ "name":"title",
+ "objects":[
+ {
+ "gid":4,
+ "height":386,
+ "id":1,
+ "name":"logo",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":736,
+ "x":256,
+ "y":480
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "width":25,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "height":26,
+ "name":"help",
+ "objects":[
+ {
+ "gid":3,
+ "height":715.669407858419,
+ "id":26,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":745.251573276788,
+ "x":237.507948400548,
+ "y":739.425850721188
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":false,
+ "width":38,
+ "x":0,
+ "y":0
+ },
+ {
+ "draworder":"topdown",
+ "height":38,
+ "name":"buttons",
+ "objects":[
+ {
+ "gid":2,
+ "height":85.3333333333333,
+ "id":2,
+ "name":"start",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":256,
+ "x":485,
+ "y":655.333333333333
+ },
+ {
+ "gid":1,
+ "height":64,
+ "id":3,
+ "name":"help",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":192,
+ "x":515.599635905335,
+ "y":761.206553703963
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "width":26,
+ "x":0,
+ "y":0
+ }],
+ "nextobjectid":38,
+ "orientation":"orthogonal",
+ "renderorder":"right-down",
+ "tileheight":32,
+ "tilesets":[
+ {
+ "columns":0,
+ "firstgid":1,
+ "margin":0,
+ "name":"ui",
+ "spacing":0,
+ "tilecount":7,
+ "tileheight":832,
+ "tiles":
+ {
+ "0":
+ {
+ "image":"buttonHelp.png"
+ },
+ "1":
+ {
+ "image":"buttonStart.png"
+ },
+ "2":
+ {
+ "image":"helpBackground.png"
+ },
+ "3":
+ {
+ "image":"title.png"
+ },
+ "5":
+ {
+ "image":"backgroundSet.png"
+ },
+ "6":
+ {
+ "image":"block.png"
+ },
+ "7":
+ {
+ "image":"cloud.png"
+ }
+ },
+ "tilewidth":1232
+ }],
+ "tilewidth":32,
+ "version":1,
+ "width":38
+} \ No newline at end of file
diff --git a/testing_data/tiled_examples/sticker-knight/ui/title.png b/testing_data/tiled_examples/sticker-knight/ui/title.png
new file mode 100644
index 0000000..8a6f161
--- /dev/null
+++ b/testing_data/tiled_examples/sticker-knight/ui/title.png
Binary files differ
diff --git a/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.png b/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.png
new file mode 100644
index 0000000..ce112fb
--- /dev/null
+++ b/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.png
Binary files differ
diff --git a/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.tmx b/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.tmx
new file mode 100644
index 0000000..bbf214f
--- /dev/null
+++ b/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.tmx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="hexagonal" renderorder="right-down" width="20" height="20" tilewidth="60" tileheight="60" hexsidelength="30" staggeraxis="x" staggerindex="odd" nextobjectid="1">
+ <tileset firstgid="1" name="test_hexagonal_tile_60x60x30" tilewidth="60" tileheight="60" tilecount="1" columns="1">
+ <image source="test_hexagonal_tile_60x60x30.png" width="60" height="60"/>
+ </tileset>
+ <layer name="Tile Layer 1" width="20" height="20">
+ <data encoding="csv">
+1,536870913,268435457,3221225473,3758096385,3489660929,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+2147483649,2684354561,2415919105,1073741825,1610612737,1342177281,2147483649,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+</data>
+ </layer>
+</map>
diff --git a/testing_data/tiled_examples/tmw_desert_spacing.png b/testing_data/tiled_examples/tmw_desert_spacing.png
new file mode 100644
index 0000000..4e9995c
--- /dev/null
+++ b/testing_data/tiled_examples/tmw_desert_spacing.png
Binary files differ