Files
MonoGame.Extended/Source/MonoGame.Extended.Tiled/TiledMapObjectLayer.cs
T
2017-06-13 21:20:02 +10:00

53 lines
1.8 KiB
C#

using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
namespace MonoGame.Extended.Tiled
{
public class TiledMapObjectLayer : TiledMapLayer
{
public Color Color { get; }
public TiledMapObjectDrawOrder DrawOrder { get; }
public TiledMapObject[] Objects { get; }
internal TiledMapObjectLayer(ContentReader input, TiledMap map)
: base(input)
{
Color = input.ReadColor();
DrawOrder = (TiledMapObjectDrawOrder)input.ReadByte();
var objectCount = input.ReadInt32();
Objects = new TiledMapObject[objectCount];
for (var i = 0; i < objectCount; i++)
{
TiledMapObject @object;
var objectType = (TiledMapObjectType)input.ReadByte();
switch (objectType)
{
case TiledMapObjectType.Rectangle:
@object = new TiledMapRectangleObject(input);
break;
case TiledMapObjectType.Tile:
@object = new TiledMapTileObject(input, map);
break;
case TiledMapObjectType.Ellipse:
@object = new TiledMapEllipseObject(input);
break;
case TiledMapObjectType.Polygon:
@object = new TiledMapPolygonObject(input);
break;
case TiledMapObjectType.Polyline:
@object = new TiledMapPolylineObject(input);
break;
default:
throw new ArgumentOutOfRangeException();
}
Objects[i] = @object;
}
}
}
}