private void DrawLayersInOrder(Map map, SpriteBatch spriteBatch, Rectangle viewport)
{
float layerDepth = 1.0f;
float layerDepthDec = 1.0f / (float)map.LayerOrder.Length;
foreach (var layer in map.LayerOrder)
{
switch (layer.LayerType)
{
case LayerType.TileLayer:
map.DrawLayer(spriteBatch, layer.ID, viewport, layerDepth);
break;
case LayerType.ObjectLayer:
map.DrawObjectLayer(spriteBatch, layer.ID, viewport, layerDepth);
break;
case LayerType.ImageLayer:
map.DrawImageLayer(spriteBatch, layer.ID, viewport, layerDepth);
break;
}
layerDepth -= layerDepthDec;
}
}