예제 #1
0
        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();
            }
        }
예제 #2
0
        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();
            }
        }
예제 #3
0
        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();
        }
예제 #4
0
        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();
        }