private static void WriteLevel(ProjectResolver resolver, Level level, string levelPath) { using (Stream stream = resolver.OutputStream(levelPath)) { XmlWriterSettings settings = new XmlWriterSettings() { CloseOutput = true, Indent = true, }; XmlWriter writer = XmlTextWriter.Create(stream, settings); LevelX proxy = Level.ToXProxy(level); XmlSerializer serializer = new XmlSerializer(typeof(LevelX)); serializer.Serialize(writer, proxy); writer.Close(); } }
public void Save(Stream stream, ProjectResolver resolver) { List<ProjectX.LibraryX> libraries = new List<ProjectX.LibraryX>(); List<ProjectX.LevelX> levels = new List<ProjectX.LevelX>(); foreach (Library library in _libraryManager.Libraries) { if (library.FileName == null) library.FileName = FormatSafeFileName(library.Name + ".tlbx"); using (Stream libStream = resolver.OutputStream(library.FileName)) { library.Save(libStream); } libraries.Add(new ProjectX.LibraryX() { Include = library.FileName, }); } foreach (Level level in Levels) { if (level.FileName == null) level.FileName = FormatSafeFileName(level.Name + ".tlvx"); using (Stream levStream = resolver.OutputStream(level.FileName)) { level.Save(levStream); } levels.Add(new ProjectX.LevelX() { Include = level.FileName, }); } XmlWriterSettings settings = new XmlWriterSettings() { CloseOutput = true, Indent = true, }; XmlWriter writer = XmlTextWriter.Create(stream, settings); ProjectX proxy = new ProjectX() { ItemGroups = new List<ProjectX.ItemGroupX>(), PropertyGroup = new ProjectX.PropertyGroupX() { ProjectGuid = Uid, ProjectName = Name, DefaultLibrary = _defaultLibraryUid, Extra = (Extra != null && Extra.Count > 0) ? Extra.ToArray() : null, }, }; proxy.ItemGroups.Add(new ProjectX.ItemGroupX() { Libraries = libraries, }); proxy.ItemGroups.Add(new ProjectX.ItemGroupX() { Levels = levels, }); XmlSerializer serializer = new XmlSerializer(typeof(ProjectX)); serializer.Serialize(writer, proxy); writer.Close(); ResetModified(); }
public void Save(Stream stream, ProjectResolver resolver) { List <ProjectX.LibraryX> libraries = new List <ProjectX.LibraryX>(); List <ProjectX.LevelX> levels = new List <ProjectX.LevelX>(); foreach (Library library in _libraryManager.Libraries) { if (library.FileName == null) { library.FileName = FormatSafeFileName(library.Name + ".tlbx"); } using (Stream libStream = resolver.OutputStream(library.FileName)) { library.Save(libStream); } libraries.Add(new ProjectX.LibraryX() { Include = library.FileName, }); } foreach (Level level in Levels) { if (level.FileName == null) { level.FileName = FormatSafeFileName(level.Name + ".tlvx"); } using (Stream levStream = resolver.OutputStream(level.FileName)) { level.Save(levStream); } levels.Add(new ProjectX.LevelX() { Include = level.FileName, }); } XmlWriterSettings settings = new XmlWriterSettings() { CloseOutput = true, Indent = true, }; XmlWriter writer = XmlTextWriter.Create(stream, settings); ProjectX proxy = new ProjectX() { ItemGroups = new List <ProjectX.ItemGroupX>(), PropertyGroup = new ProjectX.PropertyGroupX() { ProjectGuid = Uid, ProjectName = Name, DefaultLibrary = _defaultLibraryUid, Extra = (Extra != null && Extra.Count > 0) ? Extra.ToArray() : null, }, }; proxy.ItemGroups.Add(new ProjectX.ItemGroupX() { Libraries = libraries, }); proxy.ItemGroups.Add(new ProjectX.ItemGroupX() { Levels = levels, }); XmlSerializer serializer = new XmlSerializer(typeof(ProjectX)); serializer.Serialize(writer, proxy); writer.Close(); ResetModified(); }