/// <summary> /// Charger un projet /// </summary> /// <param name="pPath">Lien vers le fichier XML de chargement.</param> public bool LoadProject(string path) { Type[] ScriptTypes = AppTools.GetScriptTypes(); XmlSerializer XML_Project = new XmlSerializer(typeof(VO_Game), ScriptTypes); XmlReader reader = new XmlTextReader(path); bool wasEmpty = reader.IsEmptyElement; reader.Read(); if (wasEmpty) { return(false); } //Récupération reader.ReadStartElement(XML.NODE_ROOT); Game = (VO_Game)XML_Project.Deserialize(reader); reader.ReadEndElement(); Game.Project.RootPath = Path.GetDirectoryName(path) + "\\"; Game.Project.ProjectFileName = Path.GetFileNameWithoutExtension(path); reader.Close(); return(true); }
/// <summary> /// Sauvegarde l'intégralité du projet (xml général et maps) /// </summary> public void SaveProject() { //Cleanup Projet ValidationTools.CleanupProject(); Type[] ScriptTypes = AppTools.GetScriptTypes(); XmlSerializer XML_Project = new XmlSerializer(typeof(VO_Game), ScriptTypes); TextWriter text = new StringWriter(); XmlWriter xmlWriter = new XmlTextWriter(text); //Début de l'écriture xmlWriter.WriteStartElement(XML.NODE_ROOT); XML_Project.Serialize(xmlWriter, GameCore.Instance.Game); xmlWriter.WriteEndElement(); StreamWriter stream = File.CreateText(GameCore.Instance.Game.Project.RootPath + "\\" + ValidationTools.NormalizeFolderName(GameCore.Instance.Game.Project.ProjectFileName) + GlobalConstants.EXT_PROJECT); stream.Write(text.ToString()); stream.Close(); xmlWriter.Close(); text.Close(); }