public static Scene LoadFrom(GameResourceManager gameResourceManager, string path) { var document = XDocument.Load(path); var sceneElement = document.Element("Scene"); var scene = new Scene(sceneElement.Attribute("name").Value); foreach (var layerElement in sceneElement.Elements()) { switch (layerElement.Name.ToString()) { case "ImageLayer": scene.Add(ImageXmlRepository.ImageLayerFromXml(gameResourceManager, layerElement)); break; case "HexLayer": scene.Add(HexXmlRepository.HexLayerFromXml(gameResourceManager, layerElement)); break; case "TileLayer": scene.Add(TileXmlRepository.TileLayerFromXml(gameResourceManager, layerElement)); break; case "ColorLayer": scene.Add(ColorXmlRepository.ColorLayerFromXml(layerElement)); break; case "SpriteLayer": scene.Add(SpriteXmlRepository.SpriteLayerFromXml(gameResourceManager, layerElement)); break; case "DrawingLayer": scene.Add(DrawingXmlRepository.DrawingLayerFromXml(layerElement)); break; } } return scene; }
public void Save(Scene scene, string path) { var document = new XDocument(); document.Add(new XElement("Scene", new XAttribute("name", scene.Name), scene.Children.OfType<ILayer>().Select(XmlRepository.ToXml))); // TODO: Fix this //document.Save(path); }
void IScreen.LoadContent(GameResourceManager gameResourceManager) { this.ResourceManager = gameResourceManager; this.Scene = this.CreateScene(); }