Exemplo n.º 1
0
        /// <summary>
        /// We don't want to make the installer index all the archives, that's just a waste of time, so instead
        /// we'll pass just enough information to VFS to let it know about the files we have.
        /// </summary>
        private void PrimeVFS()
        {
            HashedArchives.Do(a => VFS.AddKnown(new VirtualFile()
            {
                Paths = new string[] { a.Value },
                Hash  = a.Key
            }));
            VFS.RefreshIndexes();


            ModList.Directives
            .OfType <FromArchive>()
            .Do(f =>
            {
                var updated_path = new string[f.ArchiveHashPath.Length];
                f.ArchiveHashPath.CopyTo(updated_path, 0);
                updated_path[0] = VFS.HashIndex[updated_path[0]].Where(e => e.IsConcrete).First().FullPath;
                VFS.AddKnown(new VirtualFile()
                {
                    Paths = updated_path
                });
            });

            VFS.BackfillMissing();
        }