Beispiel #1
0
 private static void UpdateCurrentSynchronousEvent(out bool sceneChanged)
 {
     sceneChanged = false;
     if (LongEventHandler.currentEvent.ShouldWaitUntilDisplayed)
     {
         return;
     }
     try
     {
         if (LongEventHandler.currentEvent.eventAction != null)
         {
             LongEventHandler.currentEvent.eventAction();
         }
         if (!LongEventHandler.currentEvent.levelToLoad.NullOrEmpty())
         {
             SceneManager.LoadScene(LongEventHandler.currentEvent.levelToLoad);
             sceneChanged = true;
         }
         LongEventHandler.currentEvent = null;
         LongEventHandler.eventThread  = null;
         LongEventHandler.levelLoadOp  = null;
         LongEventHandler.ExecuteToExecuteWhenFinished();
     }
     catch (Exception ex)
     {
         Log.Error("Exception from long event: " + ex);
         if (LongEventHandler.currentEvent != null && LongEventHandler.currentEvent.exceptionHandler != null)
         {
             LongEventHandler.currentEvent.exceptionHandler(ex);
         }
         LongEventHandler.currentEvent = null;
         LongEventHandler.eventThread  = null;
         LongEventHandler.levelLoadOp  = null;
     }
 }
Beispiel #2
0
 public static void ExecuteWhenFinished(Action action)
 {
     LongEventHandler.toExecuteWhenFinished.Add(action);
     if ((LongEventHandler.currentEvent == null || LongEventHandler.currentEvent.ShouldWaitUntilDisplayed) && !LongEventHandler.executingToExecuteWhenFinished)
     {
         LongEventHandler.ExecuteToExecuteWhenFinished();
     }
 }
Beispiel #3
0
 private static void UpdateCurrentEnumeratorEvent()
 {
     try
     {
         float num = Time.realtimeSinceStartup + 0.1f;
         while (LongEventHandler.currentEvent.eventActionEnumerator.MoveNext())
         {
             if (num <= Time.realtimeSinceStartup)
             {
                 return;
             }
         }
         IDisposable disposable = LongEventHandler.currentEvent.eventActionEnumerator as IDisposable;
         if (disposable != null)
         {
             disposable.Dispose();
         }
         LongEventHandler.currentEvent = null;
         LongEventHandler.eventThread  = null;
         LongEventHandler.levelLoadOp  = null;
         LongEventHandler.ExecuteToExecuteWhenFinished();
     }
     catch (Exception ex)
     {
         Log.Error("Exception from long event: " + ex);
         if (LongEventHandler.currentEvent != null)
         {
             IDisposable disposable2 = LongEventHandler.currentEvent.eventActionEnumerator as IDisposable;
             if (disposable2 != null)
             {
                 disposable2.Dispose();
             }
             if (LongEventHandler.currentEvent.exceptionHandler != null)
             {
                 LongEventHandler.currentEvent.exceptionHandler(ex);
             }
         }
         LongEventHandler.currentEvent = null;
         LongEventHandler.eventThread  = null;
         LongEventHandler.levelLoadOp  = null;
     }
 }
Beispiel #4
0
 private static void UpdateCurrentAsynchronousEvent()
 {
     if (LongEventHandler.eventThread == null)
     {
         LongEventHandler.eventThread = new Thread(delegate
         {
             LongEventHandler.RunEventFromAnotherThread(LongEventHandler.currentEvent.eventAction);
         });
         LongEventHandler.eventThread.Start();
     }
     else if (!LongEventHandler.eventThread.IsAlive)
     {
         bool flag = false;
         if (!LongEventHandler.currentEvent.levelToLoad.NullOrEmpty())
         {
             if (LongEventHandler.levelLoadOp == null)
             {
                 LongEventHandler.levelLoadOp = SceneManager.LoadSceneAsync(LongEventHandler.currentEvent.levelToLoad);
             }
             else if (LongEventHandler.levelLoadOp.isDone)
             {
                 flag = true;
             }
         }
         else
         {
             flag = true;
         }
         if (flag)
         {
             LongEventHandler.currentEvent = null;
             LongEventHandler.eventThread  = null;
             LongEventHandler.levelLoadOp  = null;
             LongEventHandler.ExecuteToExecuteWhenFinished();
         }
     }
 }