private bool DeployClient(bool bSkipHaks, bool bSkipMusic) { Console.WriteLine(""); Console.WriteLine("\nDeploying Client"); Console.WriteLine("Loading Module directory " + sModulePath + "..."); DirectoryResourceRepository directoryResourceRepository = new DirectoryResourceRepository(sModulePath); directoryResourceRepository.PopulateRepository(); Console.WriteLine("Initializing Content Manager..."); ContentManager contentManager = new ContentManager(sClientPath, sServerPath); contentManager.ContentItemScanning += (name, status, bBegin) => { if (!bBegin) Console.Write(" -> Staging (" + status.ToString() + ")"); else Console.Write("\nScanning: " + name); }; contentManager.ContentItemCompresssing += (name, nType, progress, size) => { switch(nType) { case ContentManager.NotificationType.BeginCompress: Console.WriteLine("Compressing: " + name); break; case ContentManager.NotificationType.ProgressCompress: break; case ContentManager.NotificationType.EndCompress: break; } }; contentManager.ErrorOccurred += (activity, sResourceName, sErrorMessage) => { Console.WriteLine("ERROR OCCURRED: " + sResourceName + ", e => " + sErrorMessage); }; contentManager.InitializeModule(directoryResourceRepository); contentManager.ResetAllResourcesToDefaultServer(); contentManager.ResetScanResults(); Console.WriteLine("Loading Downloadable Resources..."); contentManager.AddDirectoryRepositoryContents(true, directoryResourceRepository, DownloadableResource.FileType.DirectoryEntry); var moduleDownloadResources = contentManager.GetDownloadableResources(); var downloadableResources = GetDownloadableResources(directoryResourceRepository); foreach (DownloadableResource r in downloadableResources) { if (!moduleDownloadResources.Any(cd => cd.Name.ToLower() == r.Name.ToLower())) contentManager.AddFile(true, r.FullName, r.Type); } foreach (DownloadableResource d in contentManager.GetDownloadableResources()) { switch(d.Type) { case DownloadableResource.FileType.DirectoryEntry: string resPath = sModulePath + "\\" + d.Name; if (File.Exists(resPath)) contentManager.AddFile(true, resPath, d.Type); else d.ResourceStatus = DownloadableResource.Status.Deleted; break; case DownloadableResource.FileType.Hak: //if(!bSkipHaks) //{ string hakPath = sHomePath + "\\hak\\" + d.Name; if (File.Exists(hakPath)) contentManager.AddFile(true, hakPath, d.Type); else d.ResourceStatus = DownloadableResource.Status.Deleted; //} break; case DownloadableResource.FileType.Music: //if(!bSkipMusic) //{ string musicPath = sHomePath + "\\Music\\" + d.Name; if (File.Exists(musicPath)) contentManager.AddFile(true, musicPath, d.Type); else d.ResourceStatus = DownloadableResource.Status.Deleted; //} break; case DownloadableResource.FileType.Tlk: string tlkPath = sHomePath + "\\tlk\\" + d.Name; if (File.Exists(tlkPath)) contentManager.AddFile(true, tlkPath, d.Type); else d.ResourceStatus = DownloadableResource.Status.Deleted; break; default: Console.WriteLine("ERROR - Unsupported file type: " + d.Type.ToString()); break; } } Console.WriteLine("\n"); Console.WriteLine("Staging Client Content..."); contentManager.StageClientRequiredResources(); contentManager.ClearDeletedContent(); contentManager.SaveModuleList(directoryResourceRepository, false); Console.WriteLine(""); Console.WriteLine("Staging Client Complete."); return true; }