You've already forked Darklings-FightingGame
mirror of
https://github.com/izzy2lost/Darklings-FightingGame.git
synced 2026-03-10 11:35:19 -07:00
156 lines
6.0 KiB
C#
156 lines
6.0 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace PlayFab.PfEditor
|
|
{
|
|
public class ProgressBar
|
|
{
|
|
public enum ProgressBarStates { off = 0, on = 1, spin = 2, error = 3, warning = 4, success = 5 }
|
|
public static ProgressBarStates currentProgressBarState = ProgressBarStates.off;
|
|
|
|
public static float progress = 0;
|
|
private static GUIStyle pbarStyle = PlayFabEditorHelper.uiStyle.GetStyle("progressBarFg");
|
|
private static GUIStyle pbarBgStyle = PlayFabEditorHelper.uiStyle.GetStyle("progressBarBg");
|
|
|
|
private static float progressWidth = 0;
|
|
private static float animationSpeed = 1f;
|
|
private static float tickRate = .15f;
|
|
private static float stTime;
|
|
private static float endTime;
|
|
private static float lastUpdateTime;
|
|
private static bool isReveresed;
|
|
|
|
public static void UpdateState(ProgressBarStates state)
|
|
{
|
|
if (currentProgressBarState == ProgressBarStates.off && state != ProgressBarStates.off)
|
|
{
|
|
stTime = (float)EditorApplication.timeSinceStartup;
|
|
endTime = stTime + animationSpeed;
|
|
}
|
|
|
|
currentProgressBarState = state;
|
|
}
|
|
|
|
//not a good way to do this right now.
|
|
public static void UpdateProgress(float p)
|
|
{
|
|
progress = p;
|
|
}
|
|
|
|
public static void Draw()
|
|
{
|
|
pbarBgStyle = PlayFabEditorHelper.uiStyle.GetStyle("progressBarBg");
|
|
if (currentProgressBarState == ProgressBarStates.off)
|
|
{
|
|
stTime = 0;
|
|
endTime = 0;
|
|
progressWidth = 0;
|
|
lastUpdateTime = 0;
|
|
isReveresed = false;
|
|
|
|
progressWidth = EditorGUIUtility.currentViewWidth;
|
|
pbarStyle = PlayFabEditorHelper.uiStyle.GetStyle("progressBarClear");
|
|
pbarBgStyle = PlayFabEditorHelper.uiStyle.GetStyle("progressBarClear");
|
|
//return;
|
|
}
|
|
else if (EditorWindow.focusedWindow != PlayFabEditor.window)
|
|
{
|
|
// pause draw while we are in the bg
|
|
return;
|
|
}
|
|
else if (currentProgressBarState == ProgressBarStates.success)
|
|
{
|
|
if ((float)EditorApplication.timeSinceStartup - stTime < animationSpeed)
|
|
{
|
|
progressWidth = EditorGUIUtility.currentViewWidth;
|
|
pbarStyle = PlayFabEditorHelper.uiStyle.GetStyle("progressBarSuccess");
|
|
}
|
|
else if (PlayFabEditor.blockingRequests.Count > 0)
|
|
{
|
|
UpdateState(ProgressBarStates.spin);
|
|
}
|
|
else
|
|
{
|
|
UpdateState(ProgressBarStates.off);
|
|
}
|
|
}
|
|
else if (currentProgressBarState == ProgressBarStates.warning)
|
|
{
|
|
if ((float)EditorApplication.timeSinceStartup - stTime < animationSpeed)
|
|
{
|
|
progressWidth = EditorGUIUtility.currentViewWidth;
|
|
pbarStyle = PlayFabEditorHelper.uiStyle.GetStyle("progressBarWarn");
|
|
}
|
|
else if (PlayFabEditor.blockingRequests.Count > 0)
|
|
{
|
|
UpdateState(ProgressBarStates.spin);
|
|
}
|
|
else
|
|
{
|
|
UpdateState(ProgressBarStates.off);
|
|
}
|
|
}
|
|
else if (currentProgressBarState == ProgressBarStates.error)
|
|
{
|
|
if ((float)EditorApplication.timeSinceStartup - stTime < animationSpeed)
|
|
{
|
|
progressWidth = EditorGUIUtility.currentViewWidth;
|
|
pbarStyle = PlayFabEditorHelper.uiStyle.GetStyle("progressBarError");
|
|
}
|
|
else if (PlayFabEditor.blockingRequests.Count > 0)
|
|
{
|
|
UpdateState(ProgressBarStates.spin);
|
|
}
|
|
else
|
|
{
|
|
UpdateState(ProgressBarStates.off);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
if ((float)EditorApplication.timeSinceStartup - lastUpdateTime > tickRate)
|
|
{
|
|
lastUpdateTime = (float)EditorApplication.timeSinceStartup;
|
|
pbarStyle = PlayFabEditorHelper.uiStyle.GetStyle("progressBarFg");
|
|
|
|
if (currentProgressBarState == ProgressBarStates.on)
|
|
{
|
|
progressWidth = EditorGUIUtility.currentViewWidth * progress;
|
|
}
|
|
else if (currentProgressBarState == ProgressBarStates.spin)
|
|
{
|
|
var currentTime = (float)EditorApplication.timeSinceStartup;
|
|
if (currentTime < endTime && !isReveresed)
|
|
{
|
|
UpdateProgress((currentTime - stTime) / animationSpeed);
|
|
progressWidth = EditorGUIUtility.currentViewWidth * progress;
|
|
}
|
|
else if (currentTime < endTime && isReveresed)
|
|
{
|
|
UpdateProgress((currentTime - stTime) / animationSpeed);
|
|
progressWidth = EditorGUIUtility.currentViewWidth - EditorGUIUtility.currentViewWidth * progress;
|
|
}
|
|
else
|
|
{
|
|
isReveresed = !isReveresed;
|
|
stTime = (float)EditorApplication.timeSinceStartup;
|
|
endTime = stTime + animationSpeed;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
using (new UnityHorizontal(pbarBgStyle))
|
|
{
|
|
if (isReveresed)
|
|
{
|
|
GUILayout.FlexibleSpace();
|
|
}
|
|
EditorGUILayout.LabelField("", pbarStyle, GUILayout.Width(progressWidth));
|
|
}
|
|
}
|
|
}
|
|
}
|