Merge pull request #67 from Layoric/tiled-isometric

Basic Tiled isometric support
This commit is contained in:
Dylan Wilson
2015-09-26 21:49:54 +10:00
12 changed files with 235 additions and 27 deletions
@@ -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>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

@@ -1,6 +1,7 @@
using System.Linq;
using Microsoft.Xna.Framework.Content.Pipeline;
using MonoGame.Extended.Content.Pipeline.Tiled;
using MonoGame.Extended.Maps.Tiled;
using NSubstitute;
using NUnit.Framework;
@@ -28,6 +29,7 @@ namespace MonoGame.Extended.Content.Pipeline.Tests
Assert.AreEqual("42", map.Properties[0].Value);
Assert.AreEqual(1, map.Tilesets.Count);
Assert.AreEqual(3, map.Layers.Count);
Assert.AreEqual(TmxOrientation.Orthogonal,map.Orientation);
var tileset = map.Tilesets.First();
Assert.AreEqual(1, tileset.FirstGid);
@@ -71,7 +73,8 @@ namespace MonoGame.Extended.Content.Pipeline.Tests
Assert.AreEqual("1", tileLayer1.Properties[0].Value);
Assert.AreEqual("customlayerprop2", tileLayer1.Properties[1].Name);
Assert.AreEqual("2", tileLayer1.Properties[1].Value);}
Assert.AreEqual("2", tileLayer1.Properties[1].Value);
}
[Test]
public void TiledMapImporter_Xml_Test()
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using Microsoft.Xna.Framework;
@@ -20,6 +21,7 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled
writer.Write(map.Height);
writer.Write(map.TileWidth);
writer.Write(map.TileHeight);
writer.Write(Convert.ToInt32(map.Orientation));
WriteCustomProperties(writer, map.Properties);
writer.Write(map.Tilesets.Count);
@@ -9,7 +9,12 @@ namespace MonoGame.Extended.Maps.Tiled
{
public class TiledMap
{
public TiledMap(GraphicsDevice graphicsDevice, int width, int height, int tileWidth, int tileHeight)
public TiledMap(GraphicsDevice graphicsDevice,
int width,
int height,
int tileWidth,
int tileHeight,
TiledMapOrientation orientation = TiledMapOrientation.Orthogonal)
{
Width = width;
Height = height;
@@ -20,19 +25,21 @@ namespace MonoGame.Extended.Maps.Tiled
_graphicsDevice = graphicsDevice;
_layers = new List<TiledLayer>();
_tilesets = new List<TiledTileset>();
Orientation = orientation;
}
private readonly List<TiledTileset> _tilesets;
private readonly GraphicsDevice _graphicsDevice;
private readonly List<TiledLayer> _layers;
public int Width { get; private set; }
public int Height { get; private set; }
public int TileWidth { get; private set; }
public int TileHeight { get; private set; }
public int Width { get; }
public int Height { get; }
public int TileWidth { get; }
public int TileHeight { get; }
public Color? BackgroundColor { get; set; }
public TiledRenderOrder RenderOrder { get; set; }
public TiledProperties Properties { get; private set; }
public TiledMapOrientation Orientation { get; }
public IEnumerable<TiledLayer> Layers
{
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MonoGame.Extended.Maps.Tiled
{
public enum TiledMapOrientation
{
Orthogonal = 1,
Isometric = 2,
Staggered = 3
}
}
@@ -16,7 +16,8 @@ namespace MonoGame.Extended.Maps.Tiled
width: reader.ReadInt32(),
height: reader.ReadInt32(),
tileWidth: reader.ReadInt32(),
tileHeight: reader.ReadInt32())
tileHeight: reader.ReadInt32(),
orientation: (TiledMapOrientation)reader.ReadInt32())
{
BackgroundColor = backgroundColor,
RenderOrder = renderOrder
@@ -54,22 +54,59 @@ namespace MonoGame.Extended.Maps.Tiled
{
var region = _map.GetTileRegion(tile.Id);
if (region != null)
{
// not exactly sure why we need to compensate 1 pixel here. Could be a bug in MonoGame?
var tx = tile.X * (_map.TileWidth - 1);
var ty = tile.Y * (_map.TileHeight - 1);
_spriteBatch.Draw(region, new Rectangle(tx, ty, region.Width, region.Height), Color.White);
}
if(region == null) continue;
RenderLayer(_map, tile, region);
}
_spriteBatch.End();
}
private void RenderLayer(TiledMap map, TiledTile tile, TextureRegion2D region)
{
switch (map.Orientation)
{
case TiledMapOrientation.Orthogonal:
RenderOrthogonal(tile,region);
break;
case TiledMapOrientation.Isometric:
RenderIsometric(tile, region);
break;
case TiledMapOrientation.Staggered:
throw new NotImplementedException("Staggered maps are currently not supported");
break;
default:
throw new ArgumentOutOfRangeException();
}
}
private void RenderOrthogonal(TiledTile tile, TextureRegion2D region)
{
// not exactly sure why we need to compensate 1 pixel here. Could be a bug in MonoGame?
var tx = tile.X*(_map.TileWidth - 1);
var ty = tile.Y*(_map.TileHeight - 1);
_spriteBatch.Draw(region, new Rectangle(tx, ty, region.Width, region.Height), Color.White);
}
private void RenderIsometric(TiledTile tile, TextureRegion2D region)
{
var tx = (tile.X*(_map.TileWidth / 2)) - (tile.Y*(_map.TileWidth / 2))
//Center
+ (_map.Width * (_map.TileWidth/2))
//Compensate Bug?
- (_map.TileWidth / 2);
var ty = (tile.Y*(_map.TileHeight/2)) + (tile.X*(_map.TileHeight/2))
//Compensate Bug?
- (_map.TileWidth + _map.TileHeight);
_spriteBatch.Draw(region, new Rectangle(tx, ty, region.Width, region.Height), Color.White);
}
public TiledTile GetTile(int x, int y)
{
return _tiles[x + y * Width];
return _tiles[x + y*Width];
}
private Func<IEnumerable<TiledTile>> GetRenderOrderFunction()
@@ -115,7 +152,7 @@ namespace MonoGame.Extended.Maps.Tiled
yield return GetTile(x, y);
}
}
private IEnumerable<TiledTile> GetTilesLeftUp()
{
for (var y = Height - 1; y >= 0; y--)
@@ -55,6 +55,7 @@
<Compile Include="InputListeners\TouchListener.cs" />
<Compile Include="InputListeners\InputListenerManager.cs" />
<Compile Include="InputListeners\TouchListenerSettings.cs" />
<Compile Include="Maps\Tiled\TiledMapOrientation.cs" />
<Compile Include="Shapes\Circle.cs" />
<Compile Include="Sprites\SpriteExtensions.cs" />
<Compile Include="TextureAtlases\TextureAtlas.cs" />
+17 -8
View File
@@ -6,6 +6,7 @@
/platform:Windows
/config:
/profile:Reach
/compress:False
#-------------------------------- References --------------------------------#
@@ -21,7 +22,6 @@
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:hills.png
@@ -36,7 +36,6 @@
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:tmw_desert_spacing.png
@@ -48,7 +47,6 @@
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:free-tileset.png
@@ -65,7 +63,6 @@
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:test-tileset.png
@@ -82,7 +79,6 @@
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:stump.png
@@ -119,7 +115,6 @@
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:fireball.png
@@ -136,7 +131,6 @@
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:zombie.png
@@ -153,7 +147,22 @@
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False
/processorParam:TextureFormat=Color
/build:Fonts/courier-new-32_0.png
#begin isometric.tmx
/importer:TiledMapImporter
/processor:TiledMapProcessor
/build:isometric.tmx
#begin isometric_tileset.png
/importer:TextureImporter
/processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255
/processorParam:ColorKeyEnabled=True
/processorParam:GenerateMipmaps=False
/processorParam:PremultiplyAlpha=True
/processorParam:ResizeToPowerOfTwo=False
/processorParam:TextureFormat=Color
/build:isometric_tileset.png
+58
View File
@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="isometric" renderorder="right-down" width="40" height="40" tilewidth="64" tileheight="32" nextobjectid="11">
<tileset firstgid="1" name="Isometric Tileset" tilewidth="64" tileheight="128" tilecount="2">
<image source="isometric_tileset.png" width="128" height="128"/>
<tile id="0">
<properties>
<property name="obstacle" value="1"/>
</properties>
</tile>
</tileset>
<imagelayer name="Background">
<image source="hills.png"/>
</imagelayer>
<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>
</map>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB