internal void CraftPathsImmediatelyNeeded()
 {
     if (!craftPathsCalculated)
     {
         RecipePath.PrepareGetCraftPaths();
         craftPaths           = RecipePath.GetCraftPaths(Main.recipe[index], CancellationToken.None, false);
         craftPathsCalculated = true;
     }
 }
        private void DoGetCraftPath()
        {
            //var firstTask = Task.Run(() => craftPaths = RecipePath.GetCraftPaths(Main.recipe[index], cancellationTokenSource.Token), cancellationTokenSource.Token);
            RecipePath.PrepareGetCraftPaths();
            var task = new Task(TaskAction);

            RecipeBrowser.instance.concurrentTasks.Enqueue(task);
            //firstTask.Start();
            craftPathCalculationBegun = true;
        }
 private void TaskAction()
 {
     craftPathCancellationTokenSource = new CancellationTokenSource(1);             // TODO: Configurable
     // could a full override a simple?
     craftPaths = RecipePath.GetCraftPaths(Main.recipe[index], craftPathCancellationTokenSource.Token, true);
     if (!craftPathCancellationTokenSource.Token.IsCancellationRequested)
     {
         craftPathCalculated = true;
         //RecipeCatalogueUI.instance.updateNeeded = true;
         if (RecipeCatalogueUI.instance.slowUpdateNeeded == 0)
         {
             RecipeCatalogueUI.instance.slowUpdateNeeded = 5;
         }
         if (ItemCatalogueUI.instance.slowUpdateNeeded == 0)
         {
             ItemCatalogueUI.instance.slowUpdateNeeded = 30;
         }
     }
 }
Exemple #4
0
        private void DoGetCraftPaths()
        {
            cancellationTokenSource = new CancellationTokenSource(500);
            RecipePath.PrepareGetCraftPaths();
            var firstTask = Task.Run(() => craftPaths = RecipePath.GetCraftPaths(Main.recipe[index], cancellationTokenSource.Token), cancellationTokenSource.Token);
            //var firstTask = new Task(() => craftPaths = RecipePath.GetCraftPaths(Main.recipe[index], cancellationTokenSource.Token), cancellationTokenSource.Token);
            var secondTask = firstTask.ContinueWith((t) =>
            {
                if (!cancellationTokenSource.Token.IsCancellationRequested)
                {
                    craftPathsCalculated = true;
                    //RecipeCatalogueUI.instance.updateNeeded = true;
                    if (RecipeCatalogueUI.instance.slowUpdateNeeded == 0)
                    {
                        RecipeCatalogueUI.instance.slowUpdateNeeded = 5;
                    }
                }
                //else
                //	Main.NewText(this.index + " cancelled");
            });

            //firstTask.Start();
            craftPathsCalculationBegun = true;
        }