Example #1
0
        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);
        }