internal void Populate()
 {
     if (SynchronizationContext.Current == null)
     {
         SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
     }
     Task.Factory.StartNew(
         delegate
     {
         var modSources = ModCompile.FindModSources();
         var modFiles   = ModOrganizer.FindMods();
         return(Tuple.Create(modSources, modFiles));
     })
     .ContinueWith(task =>
     {
         var modSources = task.Result.Item1;
         var modFiles   = task.Result.Item2;
         foreach (string sourcePath in modSources)
         {
             var builtMod = modFiles.SingleOrDefault(m => m.Name == Path.GetFileName(sourcePath));
             items.Add(new UIModSourceItem(sourcePath, builtMod));
         }
         updateNeeded = true;
     }, TaskScheduler.FromCurrentSynchronizationContext());
 }
Example #2
0
 public override void OnActivate()
 {
     ModCompile.UpdateReferencesFolder();
     uIPanel.Append(uiLoader);
     modList.Clear();
     items.Clear();
     Populate();
 }
Example #3
0
 public override void OnActivate()
 {
     _cts = new CancellationTokenSource();
     ModCompile.UpdateReferencesFolder();
     _uIPanel.Append(_uiLoader);
     _modList.Clear();
     _items.Clear();
     Populate();
 }