A game about forced loneliness, made by TACStudios
1using System;
2
3namespace UnityEditor.TestTools.TestRunner
4{
5 internal class DelayedCallback
6 {
7 private Action m_Callback;
8 private double m_CallbackTime;
9 private double m_Delay;
10
11 public DelayedCallback(Action function, double timeFromNow)
12 {
13 m_Callback = function;
14 m_CallbackTime = EditorApplication.timeSinceStartup + timeFromNow;
15 m_Delay = timeFromNow;
16 EditorApplication.update += Update;
17 }
18
19 public void Clear()
20 {
21 EditorApplication.update -= Update;
22 m_CallbackTime = 0.0;
23 m_Callback = null;
24 }
25
26 private void Update()
27 {
28 if (EditorApplication.timeSinceStartup > m_CallbackTime)
29 {
30 // Clear state before firing callback to ensure reset (callback could call ExitGUI)
31 var callback = m_Callback;
32 Clear();
33
34 callback?.Invoke();
35 }
36 }
37
38 public void Reset()
39 {
40 if (m_Callback != null)
41 {
42 m_CallbackTime = EditorApplication.timeSinceStartup + m_Delay;
43 }
44 }
45 }
46}