private void ConvertFiles(string sourcePath, string destinationPath, CancellableContext asyncContext, out bool cancelled) { cancelled = false; CreateSubDirectories(destinationPath); //convert style files for (int i = 0; i < Globals.StyleMapFiles.Length; i++) { var styleFile = Globals.StyleMapFiles[i]; if (asyncContext.IsCancelling) { cancelled = true; return; } //copy over style file (because some data in it are still needed) var style = new Style.Style(); var sourceFile = sourcePath + Globals.DataSubDir + Path.DirectorySeparatorChar + styleFile + Globals.StyleFileExtension; var targetFile = destinationPath + Globals.GraphicsSubDir + Path.DirectorySeparatorChar + styleFile + Globals.StyleFileExtension; if (!File.Exists(targetFile) || !Extensions.FilesAreEqual(sourceFile, targetFile)) File.Copy(sourceFile, targetFile, true); style.ConvertStyleFileCompleted += StyleOnConvertStyleFileCompleted; style.ReadFromFileAsync(targetFile, i == 0); _runningStyles.Add(style); } //copy over maps var mapFiles = Globals.StyleMapFiles.Select(mapFile => sourcePath + Globals.DataSubDir + Path.DirectorySeparatorChar + mapFile + Globals.MapFileExtension).ToList(); mapFiles.AddRange(Globals.MapFilesMultiplayer.Select(multiplayerMapFile => sourcePath + Globals.DataSubDir + Path.DirectorySeparatorChar + multiplayerMapFile + Globals.MapFileExtension)); for (var i = 0; i < mapFiles.Count; i++) { if (asyncContext.IsCancelling) { cancelled = true; return; } var targetFile = destinationPath + Globals.MapsSubDir + Path.DirectorySeparatorChar + Path.GetFileName(mapFiles[i]); if (File.Exists(targetFile)) { if (Extensions.FilesAreEqual(mapFiles[i], targetFile)) continue; } File.Copy(mapFiles[i], targetFile, true); } var miscFiles = Globals.MiscFiles.Select(miscFile => sourcePath + Globals.DataSubDir + Path.DirectorySeparatorChar + miscFile).ToList(); for (var i = 0; i < miscFiles.Count; i++) { if (asyncContext.IsCancelling) { cancelled = true; return; } var targetFile = destinationPath + Globals.MiscSubDir + Path.DirectorySeparatorChar + Path.GetFileName(miscFiles[i]); if (File.Exists(targetFile)) { if (Extensions.FilesAreEqual(miscFiles[i], targetFile)) continue; } File.Copy(miscFiles[i], targetFile, true); } WaitHandle.WaitOne(); IndexFile.Save(); cancelled = WaitHandle.Value; }
/// <summary> /// Конструктор фигуры для задания свойств по умолчанию /// </summary> public Figure() { Transform = new SerializableGraphicsMatrix(); Style = new Style.Style(); Renderer = new DefaultRenderer(); }
private void ConvertFiles(string sourcePath, string destinationPath, CancellableContext asyncContext, out bool cancelled) { cancelled = false; CreateSubDirectories(destinationPath); //convert style files for (int i = 0; i < Globals.StyleMapFiles.Length; i++) { var styleFile = Globals.StyleMapFiles[i]; if (asyncContext.IsCancelling) { cancelled = true; return; } //copy over style file (because some data in it are still needed) var style = new Style.Style(); var sourceFile = sourcePath + Globals.DataSubDir + Path.DirectorySeparatorChar + styleFile + Globals.StyleFileExtension; var targetFile = destinationPath + Globals.GraphicsSubDir + Path.DirectorySeparatorChar + styleFile + Globals.StyleFileExtension; if (!File.Exists(targetFile) || !Extensions.FilesAreEqual(sourceFile, targetFile)) { File.Copy(sourceFile, targetFile, true); } style.ConvertStyleFileCompleted += StyleOnConvertStyleFileCompleted; style.ReadFromFileAsync(targetFile, i == 0); _runningStyles.Add(style); } //copy over maps var mapFiles = Globals.StyleMapFiles.Select(mapFile => sourcePath + Globals.DataSubDir + Path.DirectorySeparatorChar + mapFile + Globals.MapFileExtension).ToList(); mapFiles.AddRange(Globals.MapFilesMultiplayer.Select(multiplayerMapFile => sourcePath + Globals.DataSubDir + Path.DirectorySeparatorChar + multiplayerMapFile + Globals.MapFileExtension)); for (var i = 0; i < mapFiles.Count; i++) { if (asyncContext.IsCancelling) { cancelled = true; return; } var targetFile = destinationPath + Globals.MapsSubDir + Path.DirectorySeparatorChar + Path.GetFileName(mapFiles[i]); if (File.Exists(targetFile)) { if (Extensions.FilesAreEqual(mapFiles[i], targetFile)) { continue; } } File.Copy(mapFiles[i], targetFile, true); } var miscFiles = Globals.MiscFiles.Select(miscFile => sourcePath + Globals.DataSubDir + Path.DirectorySeparatorChar + miscFile).ToList(); for (var i = 0; i < miscFiles.Count; i++) { if (asyncContext.IsCancelling) { cancelled = true; return; } var targetFile = destinationPath + Globals.MiscSubDir + Path.DirectorySeparatorChar + Path.GetFileName(miscFiles[i]); if (File.Exists(targetFile)) { if (Extensions.FilesAreEqual(miscFiles[i], targetFile)) { continue; } } File.Copy(miscFiles[i], targetFile, true); } WaitHandle.WaitOne(); IndexFile.Save(); cancelled = WaitHandle.Value; }