public static void AddToCompilationStack(InkCompiler.CompilationStackItem compilationStackItem)
 {
     if (!instance.compilationStack.Contains(compilationStackItem))
     {
         instance.compilationStack.Add(compilationStackItem);
         instance.Save(true);
     }
 }
 public static void AddToCompilationStack(InkCompiler.CompilationStackItem compilationStackItem)
 {
     if (!InkLibrary.Instance.compilationStack.Contains(compilationStackItem))
     {
         InkLibrary.Instance.compilationStack.Add(compilationStackItem);
         SaveToFile();
     }
 }
 private static void TryCompileNextFileInStack()
 {
     if (!compiling)
     {
         return;
     }
     InkCompiler.CompilationStackItem fileToCompile = null;
     foreach (var x in instance.compilationStack)
     {
         if (x.state == CompilationStackItem.State.Compiling)
         {
             return;
         }
         if (x.state == CompilationStackItem.State.Queued)
         {
             fileToCompile = x;
             break;
         }
     }
     if (fileToCompile != null)
     {
         if (fileToCompile.immediate)
         {
             CompileInkThreaded(fileToCompile);
         }
         else
         {
             if (EditorApplication.isCompiling)
             {
                 Debug.LogWarning("Was compiling scripts when ink compilation started! This seems to cause the thread to cancel and complete, but the work isn't done. It may cause a timeout.");
             }
             ThreadPool.QueueUserWorkItem(CompileInkThreaded, fileToCompile);
         }
     }
     else
     {
     }
 }