public static void LoadOgmoLayout(this MainGame game, string filename, string spawnPoint = null) { OgmoMap map; using (var sr = new StreamReader(filename)) map = JsonConvert.DeserializeObject <OgmoMap>(sr.ReadToEnd()); var layout = new Layout(game, map.Values.SpatialCellSize, map.Width, map.Height); layout.View.OffsetX = map.Values.OffsetX; layout.View.OffsetY = map.Values.OffsetY; foreach (var layer in map.Layers) { switch (layer.Name) { case LayerNames.WorldObjects: layout.LoadWorldObjectsLayer(spawnPoint ?? map.Values.EntrySpawnPoint, layer.Entities); break; case LayerNames.Solids: layout.LoadSolidsLayer(layer); break; case LayerNames.Background: layout.LoadSolidsLayer(layer, false); break; } } game.ChangeLayout(layout); }