Exemplo n.º 1
0
        private IEnumerable <SideloaderUpdateItem> CollectTasks(List <INode> nodes, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            var root = nodes.Single(x => x.Type == NodeType.Root);

            var modsDirPath = InstallDirectoryHelper.GetModsPath();

            modsDirPath.Create();

            var results = Enumerable.Empty <SideloaderUpdateItem>();

            foreach (var remoteModpackDir in GetSubNodes(root).Where(x => x.Type == NodeType.Directory))
            {
                cancellationToken.ThrowIfCancellationRequested();

                if (remoteModpackDir.Name.StartsWith("Sideloader Modpack"))
                {
                    var localModpackDir = new DirectoryInfo(Path.Combine(modsDirPath.FullName, remoteModpackDir.Name));
                    if (localModpackDir.Exists)
                    {
                        results = results.Concat(ProcessDirectory(remoteModpackDir, localModpackDir, cancellationToken));
                    }
                }
                else
                {
                    Console.WriteLine("Skipping non-modpack directory " + remoteModpackDir.Name);
                }
            }

            return(results);
        }
 private void toolStripButtonOpenModsDir_Click(object sender, EventArgs e)
 {
     try
     {
         Process.Start(InstallDirectoryHelper.GetModsPath().FullName);
     }
     catch (SystemException ex)
     {
         MessageBox.Show(ex.Message, "Failed to start application", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        public void ReloadList()
        {
            CancelListReload();
            objectListView1.ClearObjects();

            _cancellationTokenSource = new CancellationTokenSource();
            var token      = _cancellationTokenSource.Token;
            var observable = SideloaderModLoader.TryReadSideloaderMods(InstallDirectoryHelper.GetModsPath().FullName, token);

            observable
            .Buffer(TimeSpan.FromSeconds(3))
            .ObserveOn(this)
            .Subscribe(list => objectListView1.AddObjects((ICollection)list),
                       () =>
            {
                objectListView1.FastAutoResizeColumns();
                MainWindow.SetStatusText("Done loading zipmods");
            }, token);
        }