summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-06-03 10:15:45 +0800
committerchai <215380520@qq.com>2024-06-03 10:15:45 +0800
commitacea7b2e728787a0d83bbf83c8c1f042d2c32e7e (patch)
tree0bfec05c1ca2d71be2c337bcd110a0421f19318b /Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled
parent88febcb02bf127d961c6471d9e846c0e1315f5c3 (diff)
+ plugins project
Diffstat (limited to 'Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled')
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/MonoGame.Extended.Content.Pipeline.Tests.Tiled.csproj24
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric.tmx76
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric_tileset.pngbin0 -> 4599 bytes
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/level01.tmx440
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/template.tx4
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-object-layer.tmx24
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-base64.tmx11
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-csv.tmx13
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-gzip.tmx11
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-xml.tmx19
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-zlib.tmx11
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TiledMapImporterProcessorTests.cs205
12 files changed, 838 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/MonoGame.Extended.Content.Pipeline.Tests.Tiled.csproj b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/MonoGame.Extended.Content.Pipeline.Tests.Tiled.csproj
new file mode 100644
index 0000000..9c8f57c
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/MonoGame.Extended.Content.Pipeline.Tests.Tiled.csproj
@@ -0,0 +1,24 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <ItemGroup>
+ <PackageReference Include="MonoGame.Framework.Content.Pipeline" Version="3.8.1.303" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\..\source\MonoGame.Extended.Content.Pipeline\MonoGame.Extended.Content.Pipeline.csproj" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Content Include="TestData\isometric.tmx" CopyToOutputDirectory="PreserveNewest" />
+ <Content Include="TestData\isometric_tileset.png" CopyToOutputDirectory="PreserveNewest" />
+ <Content Include="TestData\level01.tmx" CopyToOutputDirectory="PreserveNewest" />
+ <Content Include="TestData\template.tx" CopyToOutputDirectory="PreserveNewest" />
+ <Content Include="TestData\test-object-layer.tmx" CopyToOutputDirectory="PreserveNewest" />
+ <Content Include="TestData\test-tileset-base64.tmx" CopyToOutputDirectory="PreserveNewest" />
+ <Content Include="TestData\test-tileset-csv.tmx" CopyToOutputDirectory="PreserveNewest" />
+ <Content Include="TestData\test-tileset-gzip.tmx" CopyToOutputDirectory="PreserveNewest" />
+ <Content Include="TestData\test-tileset-xml.tmx" CopyToOutputDirectory="PreserveNewest" />
+ <Content Include="TestData\test-tileset-zlib.tmx" CopyToOutputDirectory="PreserveNewest" />
+ </ItemGroup>
+
+</Project>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric.tmx b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric.tmx
new file mode 100644
index 0000000..3f3168c
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric.tmx
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
+<map version="1.0" orientation="isometric" width="40" height="40" tilewidth="64" tileheight="32">
+ <tileset firstgid="1" name="Isometric Tileset" tilewidth="64" tileheight="128">
+ <image source="isometric_tileset.png" width="128" height="128"/>
+ <tile id="0">
+ <properties>
+ <property name="obstacle" value="1"/>
+ </properties>
+ </tile>
+ </tileset>
+ <layer name="Ground" width="40" height="40">
+ <data encoding="csv">
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,1,2,1,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,1,2,1,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,1,1,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,1,1,1,2,1,1,2,1,0,0,0,0,0,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+1,1,2,2,2,2,1,1,0,0,2,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+1,1,2,2,2,2,2,2,1,0,0,0,0,0,2,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+1,1,1,2,2,2,2,2,1,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+1,1,1,1,2,2,2,2,2,2,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,1,0,0,1,1,1,2,2,2,0,0,0,0,0,2,0,0,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,1,0,0,2,1,2,2,2,2,2,0,0,0,0,0,0,0,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,1,0,2,2,1,1,0,2,2,0,0,0,0,0,0,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,1,1,2,2,2,1,1,0,2,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,1,2,2,2,2,2,1,2,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+1,2,2,2,1,2,1,2,2,2,1,1,2,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+1,1,1,2,2,1,1,1,2,2,2,1,1,2,2,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,1,1,0,1,0,1,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,1,1,1,1,0,1,1,2,2,1,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,1,1,1,2,1,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+0,0,0,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,0,0,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,0,1,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,1,1,1,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
+</data>
+ </layer>
+ <objectgroup color="#ffaa00" name="Objects" width="40" height="40">
+ <object x="1261" y="428" width="141" height="74"/>
+ <object type="npc" x="498" y="35" width="156" height="42"/>
+ <object x="576" y="224" width="448" height="128"/>
+ <object x="2183" y="747" width="228" height="96"/>
+ <object name="fddsadsa" type="warp" x="960" y="416" width="192" height="96"/>
+ <object x="1100" y="556" width="138" height="23"/>
+ <object x="218" y="217">
+ <polyline points="0,0 14,-90 36,3"/>
+ </object>
+ <object x="243" y="174">
+ <polyline points="0,0 -17,0"/>
+ </object>
+ <object x="302" y="219">
+ <polyline points="0,0 -2,-91 -36,-94 28,-91"/>
+ </object>
+ <object x="357" y="125">
+ <polyline points="0,0 7,96 41,98"/>
+ </object>
+ </objectgroup>
+</map>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric_tileset.png b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric_tileset.png
new file mode 100644
index 0000000..4c6f1b4
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/isometric_tileset.png
Binary files differ
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/level01.tmx b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/level01.tmx
new file mode 100644
index 0000000..39eb900
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/level01.tmx
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" renderorder="right-down" width="20" height="10" tilewidth="128" tileheight="128" backgroundcolor="#7d7d7d" nextobjectid="1">
+ <properties>
+ <property name="awesome" value="42"/>
+ </properties>
+ <tileset firstgid="1" name="free-tileset" tilewidth="128" tileheight="128" tilecount="30" spacing="2" margin="2">
+ <image source="free-tileset.png" width="652" height="783"/>
+ <tile id="7">
+ <properties>
+ <property name="frog" value="dog"/>
+ </properties>
+ </tile>
+ <tile id="23">
+ <properties>
+ <property name="element" value="box"/>
+ </properties>
+ </tile>
+ <tile id="24">
+ <properties>
+ <property name="hp" value="55"/>
+ <property name="mp" value="16"/>
+ </properties>
+ </tile>
+ </tileset>
+ <layer name="Tile Layer 2" width="20" height="10">
+ <data>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="26"/>
+ <tile gid="21"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="25"/>
+ <tile gid="29"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="21"/>
+ <tile gid="20"/>
+ <tile gid="27"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="20"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="21"/>
+ <tile gid="28"/>
+ <tile gid="25"/>
+ <tile gid="30"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="29"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="18"/>
+ <tile gid="18"/>
+ <tile gid="18"/>
+ <tile gid="18"/>
+ <tile gid="18"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="19"/>
+ <tile gid="19"/>
+ <tile gid="19"/>
+ <tile gid="19"/>
+ <tile gid="19"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="19"/>
+ <tile gid="19"/>
+ <tile gid="19"/>
+ <tile gid="19"/>
+ <tile gid="19"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ </data>
+ </layer>
+ <imagelayer name="Image Layer 1" x="100" y="100">
+ <image source="hills.png"/>
+ </imagelayer>
+ <layer name="Tile Layer 1" width="20" height="10">
+ <properties>
+ <property name="customlayerprop" value="1"/>
+ <property name="customlayerprop2" value="2"/>
+ </properties>
+ <data>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="14"/>
+ <tile gid="15"/>
+ <tile gid="15"/>
+ <tile gid="16"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="14"/>
+ <tile gid="15"/>
+ <tile gid="16"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="24"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="1"/>
+ <tile gid="2"/>
+ <tile gid="2"/>
+ <tile gid="3"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="1"/>
+ <tile gid="2"/>
+ <tile gid="2"/>
+ <tile gid="2"/>
+ <tile gid="2"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="4"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="7"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="4"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="2"/>
+ <tile gid="2"/>
+ <tile gid="2"/>
+ <tile gid="2"/>
+ <tile gid="8"/>
+ <tile gid="9"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="7"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="1"/>
+ <tile gid="2"/>
+ <tile gid="8"/>
+ <tile gid="9"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="7"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="4"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="7"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="0"/>
+ <tile gid="4"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ <tile gid="6"/>
+ </data>
+ </layer>
+</map>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/template.tx b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/template.tx
new file mode 100644
index 0000000..1f00d19
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/template.tx
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template>
+ <object width="30.9247" height="20.7597"/>
+</template>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-object-layer.tmx b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-object-layer.tmx
new file mode 100644
index 0000000..dcdbee9
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-object-layer.tmx
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" renderorder="right-down" width="25" height="15" tilewidth="64" tileheight="64" nextobjectid="12">
+ <objectgroup name="Object Layer 1">
+ <object id="1" x="131.345" y="65.234" width="311.111" height="311.232">
+ <properties>
+ <property name="shape" value="circle"/>
+ </properties>
+ <ellipse/>
+ </object>
+ <object id="7" class="sprite" x="240" y="440" width="322" height="186" visible="0"/>
+ <object id="8" type="rectangle" x="506" y="142" width="136" height="234">
+ <properties>
+ <property name="area" value="player-spawn"/>
+ </properties>
+ </object>
+ <object id="9" name="polygon" x="621" y="450">
+ <polygon points="0,0 180,90 -8,275 -45,81 38,77"/>
+ </object>
+ <object id="11" x="43" y="350">
+ <polyline points="0,0 28,299 326,413 461,308"/>
+ </object>
+ <object id="12" gid="23" x="169.333" y="490.909" width="345.818" height="364"/>
+ </objectgroup>
+</map>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-base64.tmx b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-base64.tmx
new file mode 100644
index 0000000..09177cb
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-base64.tmx
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" renderorder="left-down" width="3" height="3" tilewidth="32" tileheight="32" nextobjectid="1">
+ <tileset firstgid="1" name="test-tileset" tilewidth="32" tileheight="32" spacing="2" margin="2">
+ <image source="test-tileset.png" width="104" height="104"/>
+ </tileset>
+ <layer name="Tile Layer 1" width="3" height="3">
+ <data encoding="base64">
+ AQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAA
+ </data>
+ </layer>
+</map>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-csv.tmx b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-csv.tmx
new file mode 100644
index 0000000..b709f2b
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-csv.tmx
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" renderorder="left-down" width="3" height="3" tilewidth="32" tileheight="32" nextobjectid="1">
+ <tileset firstgid="1" name="test-tileset" tilewidth="32" tileheight="32" spacing="2" margin="2">
+ <image source="test-tileset.png" width="104" height="104"/>
+ </tileset>
+ <layer name="Tile Layer 1" width="3" height="3">
+ <data encoding="csv">
+1,2,3,
+4,5,6,
+7,8,9
+</data>
+ </layer>
+</map>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-gzip.tmx b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-gzip.tmx
new file mode 100644
index 0000000..c48705f
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-gzip.tmx
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" renderorder="left-down" width="3" height="3" tilewidth="32" tileheight="32" nextobjectid="1">
+ <tileset firstgid="1" name="test-tileset" tilewidth="32" tileheight="32" spacing="2" margin="2">
+ <image source="test-tileset.png" width="104" height="104"/>
+ </tileset>
+ <layer name="Tile Layer 1" width="3" height="3">
+ <data encoding="base64" compression="gzip">
+ H4sIAAAAAAAACw3Dhw0AAAjDsLLh/4eJJZskZzBZbA6Xxwdm9rUOJAAAAA==
+ </data>
+ </layer>
+</map>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-xml.tmx b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-xml.tmx
new file mode 100644
index 0000000..0f1a741
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-xml.tmx
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" renderorder="left-down" width="3" height="3" tilewidth="32" tileheight="32" nextobjectid="1">
+ <tileset firstgid="1" name="test-tileset" tilewidth="32" tileheight="32" spacing="2" margin="2">
+ <image source="test-tileset.png" width="104" height="104"/>
+ </tileset>
+ <layer name="Tile Layer 1" width="3" height="3">
+ <data>
+ <tile gid="1"/>
+ <tile gid="2"/>
+ <tile gid="3"/>
+ <tile gid="4"/>
+ <tile gid="5"/>
+ <tile gid="6"/>
+ <tile gid="7"/>
+ <tile gid="8"/>
+ <tile gid="9"/>
+ </data>
+ </layer>
+</map>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-zlib.tmx b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-zlib.tmx
new file mode 100644
index 0000000..7a5a548
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TestData/test-tileset-zlib.tmx
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.0" orientation="orthogonal" renderorder="left-down" width="3" height="3" tilewidth="32" tileheight="32" nextobjectid="1">
+ <tileset firstgid="1" name="test-tileset" tilewidth="32" tileheight="32" spacing="2" margin="2">
+ <image source="test-tileset.png" width="104" height="104"/>
+ </tileset>
+ <layer name="Tile Layer 1" width="3" height="3">
+ <data encoding="base64" compression="zlib">
+ eJwNw4cNAAAIw7Cy4f+HiSWbJGcwWWwOl8cHArgALg==
+ </data>
+ </layer>
+</map>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TiledMapImporterProcessorTests.cs b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TiledMapImporterProcessorTests.cs
new file mode 100644
index 0000000..352457a
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests.Tiled/TiledMapImporterProcessorTests.cs
@@ -0,0 +1,205 @@
+using System.IO;
+using System.Linq;
+using Microsoft.Xna.Framework.Content.Pipeline;
+using MonoGame.Extended.Content.Pipeline.Tiled;
+using MonoGame.Extended.Tiled.Serialization;
+using NSubstitute;
+using Xunit;
+
+namespace MonoGame.Extended.Content.Pipeline.Tests.Tiled
+{
+
+ public class TiledMapImporterProcessorTests
+ {
+ [Fact]
+ public void TiledMapImporter_Import_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath("TestData", "level01.tmx");
+
+ var logger = Substitute.For<ContentBuildLogger>();
+ var importer = new TiledMapImporter();
+ var importerContext = Substitute.For<ContentImporterContext>();
+ importerContext.Logger.Returns(logger);
+
+ var contentItem = importer.Import(filePath, importerContext);
+ var map = contentItem.Data;
+
+ Assert.Equal("1.0", map.Version);
+ Assert.Equal(TiledMapOrientationContent.Orthogonal, map.Orientation);
+ Assert.Equal(TiledMapTileDrawOrderContent.RightDown, map.RenderOrder);
+ Assert.Equal(20, map.Width);
+ Assert.Equal(10, map.Height);
+ Assert.Equal(128, map.TileWidth);
+ Assert.Equal(128, map.TileHeight);
+ Assert.Equal("#7d7d7d", map.BackgroundColor);
+ Assert.Equal("awesome", map.Properties[0].Name);
+ Assert.Equal("42", map.Properties[0].Value);
+ Assert.Single(map.Tilesets);
+ Assert.Equal(3, map.Layers.Count);
+ Assert.Equal(TiledMapOrientationContent.Orthogonal, map.Orientation);
+
+ var tileset = map.Tilesets.First();
+ Assert.Equal(1, tileset.FirstGlobalIdentifier);
+ Assert.Equal("free-tileset.png", Path.GetFileName(tileset.Image.Source));
+ Assert.Equal(652, tileset.Image.Width);
+ Assert.Equal(783, tileset.Image.Height);
+ Assert.Equal(2, tileset.Margin);
+ Assert.Equal(30, tileset.TileCount);
+ Assert.Equal("free-tileset", tileset.Name);
+ Assert.Null(tileset.Source);
+ Assert.Equal(2, tileset.Spacing);
+ //Assert.Equal(0, tileset.TerrainTypes.Count);
+ Assert.Empty(tileset.Properties);
+ Assert.Equal(128, tileset.TileHeight);
+ Assert.Equal(128, tileset.TileWidth);
+ Assert.Equal(0, tileset.TileOffset.X);
+ Assert.Equal(0, tileset.TileOffset.Y);
+
+ var tileLayer2 = (TiledMapTileLayerContent)map.Layers[0];
+ Assert.Equal("Tile Layer 2", tileLayer2.Name);
+ Assert.Equal(1, tileLayer2.Opacity);
+ Assert.Empty(tileLayer2.Properties);
+ Assert.True(tileLayer2.Visible);
+ Assert.Equal(200, tileLayer2.Data.Tiles.Count);
+ Assert.Equal(0, tileLayer2.X);
+ Assert.Equal(0, tileLayer2.Y);
+
+ var imageLayer = (TiledMapImageLayerContent)map.Layers[1];
+ Assert.Equal("Image Layer 1", imageLayer.Name);
+ Assert.Equal(1, imageLayer.Opacity);
+ Assert.Empty(imageLayer.Properties);
+ Assert.True(imageLayer.Visible);
+ Assert.Equal("hills.png", Path.GetFileName(imageLayer.Image.Source));
+ Assert.Equal(100, imageLayer.X);
+ Assert.Equal(100, imageLayer.Y);
+
+ var tileLayer1 = (TiledMapTileLayerContent)map.Layers[2];
+ Assert.Equal("Tile Layer 1", tileLayer1.Name);
+ Assert.Equal(2, tileLayer1.Properties.Count);
+
+ Assert.Equal("customlayerprop", tileLayer1.Properties[0].Name);
+ Assert.Equal("1", tileLayer1.Properties[0].Value);
+
+ Assert.Equal("customlayerprop2", tileLayer1.Properties[1].Name);
+ Assert.Equal("2", tileLayer1.Properties[1].Value);
+ }
+
+ [Fact]
+ public void TiledMapImporter_Xml_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-xml.tmx");
+ var map = ImportAndProcessMap(filePath);
+ var layer = map.Layers.OfType<TiledMapTileLayerContent>().First();
+ var actualData = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray();
+
+ Assert.Null(layer.Data.Encoding);
+ Assert.Null(layer.Data.Compression);
+ Assert.True(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(actualData));
+ }
+
+ [Fact]
+ public void TiledMapImporter_Csv_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-csv.tmx");
+ var map = ImportAndProcessMap(filePath);
+ var layer = map.Layers.OfType<TiledMapTileLayerContent>().First();
+ var data = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray();
+
+ Assert.Equal("csv", layer.Data.Encoding);
+ Assert.Null(layer.Data.Compression);
+ //Assert.True(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data));
+ }
+
+ [Fact]
+ public void TiledMapImporter_Base64_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-base64.tmx");
+ var map = ImportAndProcessMap(filePath);
+ var layer = map.Layers.OfType<TiledMapTileLayerContent>().First();
+ var data = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray();
+
+ Assert.Equal("base64", layer.Data.Encoding);
+ Assert.Null(layer.Data.Compression);
+ //Assert.True(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data));
+ }
+
+ [Fact]
+ public void TiledMapImporter_Gzip_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-gzip.tmx");
+ var map = ImportAndProcessMap(filePath);
+ var layer = map.Layers.OfType<TiledMapTileLayerContent>().First();
+ var data = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray();
+
+ Assert.Equal("base64", layer.Data.Encoding);
+ Assert.Equal("gzip", layer.Data.Compression);
+ //Assert.True(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data));
+ }
+
+
+ [Fact]
+ public void TiledMapImporter_Zlib_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-tileset-zlib.tmx");
+ var map = ImportAndProcessMap(filePath);
+ var layer = map.Layers.OfType<TiledMapTileLayerContent>().First();
+ var data = layer.Data.Tiles.Select(i => i.GlobalIdentifier).ToArray();
+
+ Assert.Equal("base64", layer.Data.Encoding);
+ Assert.Equal("zlib", layer.Data.Compression);
+ //Assert.True(new uint[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }.SequenceEqual(data));
+ }
+
+ [Fact]
+ public void TiledMapImporter_ObjectLayer_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath("TestData", "test-object-layer.tmx");
+ var map = ImportAndProcessMap(filePath);
+
+ Assert.Single(map.Layers);
+ Assert.IsType<TiledMapObjectLayerContent>(map.Layers[0]);
+ var tmxObjectGroup = map.Layers[0] as TiledMapObjectLayerContent;
+ var tmxObject = tmxObjectGroup.Objects[0];
+ var tmxPolygon = tmxObjectGroup.Objects[3].Polygon;
+ var tmxPolyline = tmxObjectGroup.Objects[4].Polyline;
+
+ Assert.Equal("Object Layer 1", tmxObjectGroup.Name);
+ Assert.Equal(1, tmxObject.Identifier);
+ Assert.Equal(131.345f, tmxObject.X);
+ Assert.Equal(65.234f, tmxObject.Y);
+ Assert.Equal(311.111f, tmxObject.Width);
+ Assert.Equal(311.232f, tmxObject.Height);
+ Assert.Single(tmxObject.Properties);
+ Assert.Equal("shape", tmxObject.Properties[0].Name);
+ Assert.Equal("circle", tmxObject.Properties[0].Value);
+ Assert.NotNull(tmxObject.Ellipse);
+ Assert.False(tmxObjectGroup.Objects[1].Visible);
+ Assert.Equal((uint)0, tmxObjectGroup.Objects[1].GlobalIdentifier);
+ Assert.Equal((uint)23, tmxObjectGroup.Objects[5].GlobalIdentifier);
+ Assert.Equal("rectangle", tmxObjectGroup.Objects[2].Type);
+ Assert.Equal("sprite", tmxObjectGroup.Objects[1].Class);
+ Assert.NotNull(tmxPolygon);
+ Assert.Equal("0,0 180,90 -8,275 -45,81 38,77", tmxPolygon.Points);
+ Assert.NotNull(tmxPolyline);
+ Assert.Equal("0,0 28,299 326,413 461,308", tmxPolyline.Points);
+ }
+
+
+ private static TiledMapContent ImportAndProcessMap(string filename)
+ {
+ var logger = Substitute.For<ContentBuildLogger>();
+ var importer = new TiledMapImporter();
+ var importerContext = Substitute.For<ContentImporterContext>();
+ importerContext.Logger.Returns(logger);
+
+ var processor = new TiledMapProcessor();
+ var processorContext = Substitute.For<ContentProcessorContext>();
+ processorContext.Logger.Returns(logger);
+
+ var import = importer.Import(filename, importerContext);
+ var result = processor.Process(import, processorContext);
+
+ return result.Data;
+ }
+ }
+}