public static async Task Update(string whitelistCacheFileName, string output) { var api = await LoadAsync(whitelistCacheFileName); var spaceEngineers = new SpaceEngineers(); var typeDefinitions = await TypeDefinitions.LoadAsync(spaceEngineers.GetInstallPath("Content\\Data")); await api.SaveAsync(typeDefinitions, output); }
public static async Task <TypeDefinitions> LoadAsync(string path) { var def = new TypeDefinitions(); var terminals = Terminals.Load(Path.Combine(Environment.CurrentDirectory, "terminal.cache")); var text = new SpaceEngineersText(); await Task.Run(() => { var sbcFiles = Directory.EnumerateFiles(path, "*.sbc", SearchOption.AllDirectories); Parallel.ForEach(sbcFiles, f => def.Search(f, terminals, text)); }); return(def); }
public async Task SaveAsync(TypeDefinitions typeDefinitions, string path) { var generators = new DocumentGenerator[] { new ApiIndexGenerator(), new TypeGenerator(typeDefinitions), new MemberGenerator(), new NamespaceIndexGenerator(), new NamespaceGenerator() }; var directory = new DirectoryInfo(path); if (!directory.Exists) { directory.Create(); } await Task.Run(() => { Task.WaitAll(generators.Select(g => g.Generate(directory, this)).ToArray()); }); }