93 lines
3.1 KiB
C#

#if UNITY_EDITOR
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
namespace ERP
{
public class ERPWindow : EditorWindow
{
private static ERPWindow _window;
[MenuItem("Window/Editor Rich Presence")]
private static void Init()
{
_window = (ERPWindow)GetWindow(typeof(ERPWindow), false, "Editor Rich Presence");
_window.Show();
}
private void OnGUI()
{
if (ERP.discord == null && !ERP.Failed)
ERP.DelayStart();
if (ERP.Failed | ERP.Errored)
{
GUILayout.Label($"ERP Failed to start", EditorStyles.boldLabel);
if (GUILayout.Button("Retry"))
{
ERP.Errored = false;
ERP.Failed = false;
ERP.Init();
}
return;
}
GUILayout.Label("Editor Rich Presence", EditorStyles.boldLabel);
GUILayout.Label("Current Project: " + ERP.projectName);
GUILayout.Label("Current Scene: " + ERP.sceneName);
GUILayout.Label(string.Empty);
GUILayout.Label($"Scene Name Visible: {ERP.showSceneName}");
GUILayout.Label($"Project Name Visible: {ERP.showProjectName}");
GUILayout.Label($"Reset Timestap on scene change: {ERP.resetOnSceneChange}");
if (ToggleButton("Hide Scene name", "Show Scene name", ref ERP.showSceneName))
{
ERP.UpdateActivity();
ERPSettings.SaveSettings();
}
if (ToggleButton("Hide Project name", "Show Project name", ref ERP.showProjectName))
{
ERP.UpdateActivity();
ERPSettings.SaveSettings();
}
if (ToggleButton("Don't reset timestap on scene change", "Reset timestap on scene change", ref ERP.resetOnSceneChange))
{
ERP.UpdateActivity();
ERPSettings.SaveSettings();
}
if (ToggleButton("Disable Debug Mode", "Enable Debug Mode", ref ERP.debugMode))
{
ERPSettings.SaveSettings();
}
GUILayout.Label(string.Empty);
GUILayout.BeginHorizontal();
if (GUILayout.Button("GitHub Repository"))
{
Application.OpenURL("https://github.com/MarshMello0/Editor-Rich-Presence");
}
if (GUILayout.Button("Asset Store Page"))
{
Application.OpenURL("https://assetstore.unity.com/packages/tools/utilities/editor-rich-presence-178736");
}
GUILayout.EndHorizontal();
}
private bool ToggleButton(string trueText, string falseText, ref bool value)
{
if (value && GUILayout.Button(trueText))
{
value = false;
return true;
}
else if (!value && GUILayout.Button(falseText))
{
value = true;
return true;
}
return false;
}
}
}
#endif