private void Save_Main(ProjectWriter writer) { const int Magic = 1234321; writer.Write(Magic); writer.Write(Version); Save_Header(writer); Save_Options(writer); Save_Triggers(writer); Save_Constants(writer); Save_Sounds(writer); Save_Sprites(writer); Save_Backgrounds(writer); Save_Paths(writer); Save_Scripts(writer); Save_Fonts(writer); Save_Timelines(writer); Save_Objects(writer); Save_Rooms(writer); Save_LastIDs(writer); Save_IncludedFiles(writer); Save_ExtensionPackages(writer); Save_GameInformation(writer); Save_LibCreationCode(writer); Save_RoomOrder(writer); Save_ResourceTree(writer); }
public static void Script(ProjectWriter writer, GMScript self, GMProject _) { writer.Write(self.Name); writer.Write(self.Version); writer.Write(self.Code); }
public void Save(ProjectWriter writer) { writer.Write(Name); writer.Write(LastChanged); writer.Write(Version); writer.Write(Code); }
public void Save(ProjectWriter writer) { writer.Write(Version); writer.Write(Name); writer.Write(Condition); writer.Write((int)Event); writer.Write(ConstName); }
public static void Trigger(ProjectWriter writer, GMTrigger self, GMProject _) { writer.Write(self.Version); writer.Write(self.Name); writer.Write(self.Condition); writer.Write((int)self.Event); writer.Write(self.ConstName); }
public static void WriteLibCC(ProjectWriter writer, List <string> list) { writer.Write(500); writer.Write(list.Count); foreach (string cc in list) { writer.Write(cc); } }
public static void WriteRoomExecOrder(ProjectWriter writer, List <GMRoom> list, GMProject proj) { writer.Write(700); writer.Write(list.Count); foreach (GMRoom rm in list) { writer.Write(proj.Rooms.IndexOf(rm)); } }
public static void WriteConstants(ProjectWriter writer, List <GMConstant> list) { writer.Write(800); writer.Write(list.Count); foreach (GMConstant constant in list) { writer.Write(constant.Name); writer.Write(constant.Value); } }
private void Save_ExtensionPackages(ProjectWriter writer) { writer.Write(700); writer.Write(ExtensionPackageNames.Count); for (int i = 0; i < ExtensionPackageNames.Count; i++) { var s = ExtensionPackageNames[i]; writer.Write(s); } }
private void Save_RoomOrder(ProjectWriter writer) { writer.Write(700); writer.Write(RoomExecutionOrder.Count); for (int i = 0; i < RoomExecutionOrder.Count; i++) { var r = RoomExecutionOrder[i]; writer.Write(RoomExecutionOrder.IndexOf(r)); } }
private void Save_LibCreationCode(ProjectWriter writer) { writer.Write(500); writer.Write(LibraryCreationCode.Count); for (int i = 0; i < LibraryCreationCode.Count; i++) { var l = LibraryCreationCode[i]; writer.Write(l); } }
public int Key; // only used in GMObject. public void Save(ProjectWriter writer, GMProject proj) { writer.Write(Version); writer.Write(Actions.Count); for (int i = 0; i < Actions.Count; i++) { var action = Actions[i]; action.Save(writer, proj); } }
private void Save_Constants(ProjectWriter writer) { writer.Write(800); writer.Write(Constants.Count); for (int i = 0; i < Constants.Count; i++) { var c = Constants[i]; c.Save(writer); } writer.Write(ConstantsLastChanged); }
public static void Timeline(ProjectWriter writer, GMTimeline self, GMProject proj) { writer.Write(self.Name); writer.Write(self.Version); writer.Write(self.Moments.Count); foreach (var moment in self.Moments) { writer.Write(moment.Point); moment.Event.Save(writer, proj); } }
public void Save(ProjectWriter writer, GMProject proj) { writer.Write(Name); writer.Write(LastChanged); writer.Write(Version); writer.Write(Moments.Count); for (int i = 0; i < Moments.Count; i++) { var moment = Moments[i]; moment.Save(writer, proj); } }
public string Text; // it's an rtf string. public void Save(ProjectWriter writer) { writer.Write(BackgroundColor); writer.Write(SeparateWindow); writer.Write(Caption); writer.Write(Position); writer.Write(ShowBorder); writer.Write(AllowResize); writer.Write(AlwaysOnTop); writer.Write(Freeze); writer.Write(LastChanged); writer.Write(Text); }
public void Save(ProjectWriter writer, GMProject proj) { writer.Write(Position); if (Object != null) { writer.Write(proj.Objects.IndexOf(Object)); } else { throw new System.Exception("Cannot write an instance with a non existing object!"); } writer.Write(ID); writer.Write(CreationCode); writer.Write(IsLocked); }
public void Save(ProjectWriter writer) { writer.Write(Name); writer.Write(LastChanged); writer.Write(Version); writer.Write(FontName); writer.Write(Size); writer.Write(Bold); writer.Write(Italic); writer.Write(RangeMinInt); writer.Write(RangeMax); }
public void SaveGMBCK(ProjectWriter writer) { const int Magic = 1234321; writer.Write(Magic); var zlib_w = new ProjectWriter(new MemoryStream()); zlib_w.Write(Version); zlib_w.Write(UseAsTileset); zlib_w.Write(TileWidth); zlib_w.Write(TileHeight); zlib_w.Write(OffsetH); zlib_w.Write(OffsetV); zlib_w.Write(SepH); zlib_w.Write(SepV); zlib_w.Write(FrameVersion); if (Background != null) { zlib_w.Write(Background.Size); zlib_w.Write(Background, true); } else { // w = 0, h = 0, no image. zlib_w.Write(0); zlib_w.Write(0); } writer.WriteZlibChunk(zlib_w); }
public void SaveGMSPR(ProjectWriter writer) { writer.Write(GMProject.GMMagic); var zlib_w = new ProjectWriter(new MemoryStream()); zlib_w.Write(Version); zlib_w.Write(Origin); zlib_w.Write(Subimages.Count); for (int i = 0; i < Subimages.Count; i++) { var frame = Subimages[i]; zlib_w.Write(800); zlib_w.Write(frame.Size); if (frame.Width * frame.Height != 0) { zlib_w.Write(frame, true); } } zlib_w.Write((int)MaskMode); zlib_w.Write(AlphaTolerance); zlib_w.Write(SeparateMasks); zlib_w.Write((int)BBoxMode); zlib_w.Write(BBox); writer.WriteZlibChunk(zlib_w); // zlib_w gets disposed automatically wew. }
public void DeletedNonEmptyFolderIsNotProcessed() { var filesToDelete = new FileSystemInfo[] { new DirectoryInfo(@"TestFiles\Deletions\NonEmptyFolder2") }; var actualDeletedFiles = new List <FileSystemInfo>(); //Just simulate deletion so we can just check the list void Deletion(FileSystemInfo info) => actualDeletedFiles.Add(info); var writer = new ProjectWriter(Deletion, _ => { }); writer.Write( new Project { FilePath = new FileInfo(@"TestFiles\Deletions\Test4.csproj"), Deletions = filesToDelete.ToArray() }, false ); CollectionAssert.AreEqual(new FileSystemInfo[0], actualDeletedFiles); }
public void DeletedFolderIsProcessed() { //delete the dummy file we put in to make sure the folder was copied over File.Delete(@"TestFiles\Deletions\EmptyFolder\a.txt"); var filesToDelete = new FileSystemInfo[] { new DirectoryInfo(@"TestFiles\Deletions\EmptyFolder") }; var actualDeletedFiles = new List <FileSystemInfo>(); //Just simulate deletion so we can just check the list void Deletion(FileSystemInfo info) => actualDeletedFiles.Add(info); var writer = new ProjectWriter(Deletion, _ => { }); writer.Write( new Project { FilePath = new FileInfo(@"TestFiles\Deletions\Test2.csproj"), Deletions = filesToDelete.ToArray() }, false ); CollectionAssert.AreEqual(filesToDelete, actualDeletedFiles); }
public void ValidatesFileIsWritableProgram() { var writer = new ProjectWriter(); var xmlNode = writer.CreateXml(new Project { AssemblyAttributes = new AssemblyAttributes(), FilePath = new FileInfo("test.cs") }); var copiedProjectFile = Path.Combine("TestFiles", "OtherTestProjects", $"{nameof(ValidatesFileIsWritableProgram)}.readonly"); if (File.Exists(copiedProjectFile)) { File.SetAttributes(copiedProjectFile, FileAttributes.Normal); File.Delete(copiedProjectFile); } File.Copy(Path.Combine("TestFiles", "OtherTestProjects", "readonly.testcsproj"), copiedProjectFile); File.SetAttributes(copiedProjectFile, FileAttributes.ReadOnly); var project = new ProjectReader().Read(copiedProjectFile); var messageNum = 0; var progress = new Progress <string>(x => { if (messageNum++ == 0) { Assert.AreEqual( $@"TestFiles\OtherTestProjects\{nameof(ValidatesFileIsWritableProgram)}.readonly is readonly, please make the file writable first (checkout from source control?).", x); } }); writer.Write(project, false); }
public void DeletedFileIsProcessed() { var filesToDelete = new FileSystemInfo[] { new FileInfo(@"TestFiles\Deletions\a.txt") }; var actualDeletedFiles = new List <FileSystemInfo>(); //Just simulate deletion so we can just check the list void Deletion(FileSystemInfo info) => actualDeletedFiles.Add(info); var writer = new ProjectWriter(Deletion, _ => { }); writer.Write( new Project { FilePath = new FileInfo(@"TestFiles\Deletions\Test1.csproj"), Deletions = filesToDelete.ToArray() }, false, new Progress <string>() ); CollectionAssert.AreEqual(filesToDelete, actualDeletedFiles); }
public void ValidatesFileIsWritable() { var writer = new ProjectWriter(); var xmlNode = writer.CreateXml(new Project { AssemblyAttributes = new AssemblyAttributes(), FilePath = new System.IO.FileInfo("test.cs") }); var copiedProjectFile = $"TestFiles\\OtherTestProjects\\{nameof(ValidatesFileIsWritable)}.readonly"; File.Copy("TestFiles\\OtherTestProjects\\readonly.testcsproj", copiedProjectFile); File.SetAttributes(copiedProjectFile, FileAttributes.ReadOnly); var project = new ProjectReader().Read(copiedProjectFile); var messageNum = 0; var progress = new Progress <string>(x => { if (messageNum++ == 0) { Assert.AreEqual( $@"TestFiles\OtherTestProjects\{nameof(ValidatesFileIsWritable)}.readonly is readonly, please make the file writable first (checkout from source control?).", x); } }); writer.Write(project, false, progress); }
private void Save_NullItem(ProjectWriter writer) { var stream = new MemoryStream(); var w = new ProjectWriter(stream); w.Write(0); writer.WriteZlibChunk(w); }
private void Save_Options(ProjectWriter writer) { writer.Write(Options.FormatVersion); var z_writer = new ProjectWriter(new MemoryStream()); Options.Write(z_writer); writer.WriteZlibChunk(z_writer); }
private void Save_GameInformation(ProjectWriter writer) { writer.Write(GameInformation.Version); var z_writer = new ProjectWriter(new MemoryStream()); GameInformation.Save(z_writer); writer.WriteZlibChunk(z_writer); }
public static void WriteExtensions(ProjectWriter writer, List <string> list, string searchDir) { writer.Write(700); writer.Write(list.Count); foreach (string name in list) { // load the extensions here!!! string filePath = Path.Combine(searchDir, name + ".gex"); // {searchDir}\Prikol.gex if (!File.Exists(filePath)) { Console.WriteLine($"Warning: Extension package {name} does not exist, it will not be written!"); continue; } // if the file does exist, write it! Extension.WriteGEX(writer, filePath); } }
public void Save(ProjectWriter writer, GMProject proj) { writer.Write(Visible); writer.Write(IsForeground); if (Background != null) { writer.Write(proj.Backgrounds.IndexOf(Background)); } else { writer.Write(-1); } writer.Write(Position); writer.Write(TileHorizontal); writer.Write(TileVertical); writer.Write(SpeedHorizontal); writer.Write(SpeedVertical); writer.Write(Stretch); }