430 lines
21 KiB
C#
430 lines
21 KiB
C#
|
using System;
|
||
|
using System.Globalization;
|
||
|
using System.IO;
|
||
|
using JetBrains.Annotations;
|
||
|
using SingularityGroup.HotReload.Editor.Cli;
|
||
|
using UnityEditor;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace SingularityGroup.HotReload.Editor {
|
||
|
internal static class HotReloadPrefs {
|
||
|
private const string RemoteServerKey = "HotReloadWindow.RemoteServer";
|
||
|
private const string RemoteServerHostKey = "HotReloadWindow.RemoteServerHost";
|
||
|
private const string LicenseEmailKey = "HotReloadWindow.LicenseEmail";
|
||
|
private const string RenderAuthLoginKey = "HotReloadWindow.RenderAuthLogin";
|
||
|
private const string FirstLoginCachedKey = "HotReloadWindow.FirstLoginCachedKey";
|
||
|
[Obsolete]
|
||
|
private const string ShowOnStartupKey = "HotReloadWindow.ShowOnStartup";
|
||
|
private const string PasswordCachedKey = "HotReloadWindow.PasswordCached";
|
||
|
private const string ExposeServerToLocalNetworkKey = "HotReloadWindow.ExposeServerToLocalNetwork";
|
||
|
private const string ErrorHiddenCachedKey = "HotReloadWindow.ErrorHiddenCachedKey";
|
||
|
private const string RefreshManuallyTipCachedKey = "HotReloadWindow.RefreshManuallyTipCachedKey";
|
||
|
private const string ShowLoginCachedKey = "HotReloadWindow.ShowLoginCachedKey";
|
||
|
private const string ConfigurationKey = "HotReloadWindow.Configuration";
|
||
|
private const string ShowPromoCodesCachedKey = "HotReloadWindow.ShowPromoCodesCached";
|
||
|
private const string ShowOnDeviceKey = "HotReloadWindow.ShowOnDevice";
|
||
|
private const string ShowChangelogKey = "HotReloadWindow.ShowChangelog";
|
||
|
private const string UnsupportedChangesKey = "HotReloadWindow.ShowUnsupportedChanges";
|
||
|
private const string LoggedBurstHintKey = "HotReloadWindow.LoggedBurstHint";
|
||
|
private const string ShouldDoAutoRefreshFixupKey = "HotReloadWindow.ShouldDoAutoRefreshFixup";
|
||
|
private const string ActiveDaysKey = "HotReloadWindow.ActiveDays";
|
||
|
[Obsolete]
|
||
|
private const string RateAppShownKey = "HotReloadWindow.RateAppShown";
|
||
|
private const string PatchesCollapseKey = "HotReloadWindow.PatchesCollapse";
|
||
|
private const string PatchesGroupAllKey = "HotReloadWindow.PatchesGroupAll";
|
||
|
private const string LaunchOnEditorStartKey = "HotReloadWindow.LaunchOnEditorStart";
|
||
|
private const string AutoRecompileUnsupportedChangesKey = "HotReloadWindow.AutoRecompileUnsupportedChanges";
|
||
|
private const string AutoRecompilePartiallyUnsupportedChangesKey = "HotReloadWindow.AutoRecompilePartiallyUnsupportedChanges";
|
||
|
private const string ShowNotificationsKey = "HotReloadWindow.ShowNotifications";
|
||
|
private const string ShowPatchingNotificationsKey = "HotReloadWindow.ShowPatchingNotifications";
|
||
|
private const string ShowCompilingUnsupportedNotificationsKey = "HotReloadWindow.ShowCompilingUnsupportedNotifications";
|
||
|
private const string AutoRecompileUnsupportedChangesImmediatelyKey = "HotReloadWindow.AutoRecompileUnsupportedChangesImmediately";
|
||
|
private const string AutoRecompileUnsupportedChangesOnExitPlayModeKey = "HotReloadWindow.AutoRecompileUnsupportedChangesOnExitPlayMode";
|
||
|
private const string AutoRecompileUnsupportedChangesInPlayModeKey = "HotReloadWindow.AutoRecompileUnsupportedChangesInPlayMode";
|
||
|
private const string AllowDisableUnityAutoRefreshKey = "HotReloadWindow.AllowDisableUnityAutoRefresh";
|
||
|
private const string DefaultAutoRefreshKey = "HotReloadWindow.DefaultAutoRefresh";
|
||
|
private const string DefaultAutoRefreshModeKey = "HotReloadWindow.DefaultAutoRefreshMode";
|
||
|
private const string DefaultScriptCompilationKeyKey = "HotReloadWindow.DefaultScriptCompilationKey";
|
||
|
private const string DefaultEditorTintKey = "HotReloadWindow.DefaultEditorTint";
|
||
|
private const string AppliedAutoRefreshKey = "HotReloadWindow.AppliedAutoRefresh";
|
||
|
private const string AppliedScriptCompilationKey = "HotReloadWindow.AppliedScriptCompilation";
|
||
|
private const string AppliedEditorTintKey = "HotReloadWindow.AppliedEditorTint";
|
||
|
private const string AllAssetChangesKey = "HotReloadWindow.AllAssetChanges";
|
||
|
private const string IncludeShaderChangesKey = "HotReloadWindow.IncludeShaderChanges";
|
||
|
private const string DisableConsoleWindowKey = "HotReloadWindow.DisableConsoleWindow";
|
||
|
private const string RedeemLicenseEmailKey = "HotReloadWindow.RedeemLicenseEmail";
|
||
|
private const string RedeemLicenseInvoiceKey = "HotReloadWindow.RedeemLicenseInvoice";
|
||
|
private const string RunTabEventsSuggestionsFoldoutKey = "HotReloadWindow.RunTabEventsSuggestionsFoldout";
|
||
|
private const string RunTabEventsTimelineFoldoutKey = "HotReloadWindow.RunTabEventsTimelineFoldout";
|
||
|
private const string RunTabUnsupportedChangesFilterKey = "HotReloadWindow.RunTabUnsupportedChangesFilter";
|
||
|
private const string RunTabCompileErrorFilterKey = "HotReloadWindow.RunTabCompileErrorFilter";
|
||
|
private const string RunTabPartiallyAppliedPatchesFilterKey = "HotReloadWindow.RunTabPartiallyAppliedPatchesFilter";
|
||
|
private const string RunTabAppliedPatchesFilterKey = "HotReloadWindow.RunTabAppliedPatchesFilter";
|
||
|
private const string RecompileDialogueShownKey = "HotReloadWindow.RecompileDialogueShown";
|
||
|
private const string OpenedWindowAtLeastOnceKey = "HotReloadWindow.OpenedWindowAtLeastOnce";
|
||
|
|
||
|
public const string DontShowPromptForDownloadKey = "ServerDownloader.DontShowPromptForDownload";
|
||
|
|
||
|
[Obsolete] public const string AllowHttpSettingCacheKey = "HotReloadWindow.AllowHttpSettingCacheKey";
|
||
|
[Obsolete] public const string AutoRefreshSettingCacheKey = "HotReloadWindow.AutoRefreshSettingCacheKey";
|
||
|
[Obsolete] public const string ScriptCompilationSettingCacheKey = "HotReloadWindow.ScriptCompilationSettingCacheKey";
|
||
|
[Obsolete] public const string ProjectGenerationSettingCacheKey = "HotReloadWindow.ProjectGenerationSettingCacheKey";
|
||
|
|
||
|
|
||
|
[Obsolete]
|
||
|
public static bool RemoteServer {
|
||
|
get { return EditorPrefs.GetBool(RemoteServerKey, false); }
|
||
|
set { EditorPrefs.SetBool(RemoteServerKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool DontShowPromptForDownload {
|
||
|
get { return EditorPrefs.GetBool(DontShowPromptForDownloadKey, false); }
|
||
|
set { EditorPrefs.SetBool(DontShowPromptForDownloadKey, value); }
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static string RemoteServerHost {
|
||
|
get { return EditorPrefs.GetString(RemoteServerHostKey); }
|
||
|
set { EditorPrefs.SetString(RemoteServerHostKey, value); }
|
||
|
}
|
||
|
|
||
|
public static string LicenseEmail {
|
||
|
get { return EditorPrefs.GetString(LicenseEmailKey); }
|
||
|
set { EditorPrefs.SetString(LicenseEmailKey, value); }
|
||
|
}
|
||
|
|
||
|
public static string LicensePassword {
|
||
|
get { return EditorPrefs.GetString(PasswordCachedKey); }
|
||
|
set { EditorPrefs.SetString(PasswordCachedKey, value); }
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static bool RenderAuthLogin { // false = render free trial
|
||
|
get { return EditorPrefs.GetBool(RenderAuthLoginKey); }
|
||
|
set { EditorPrefs.SetBool(RenderAuthLoginKey, value); }
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static bool FirstLogin {
|
||
|
get { return EditorPrefs.GetBool(FirstLoginCachedKey, true); }
|
||
|
set { EditorPrefs.SetBool(FirstLoginCachedKey, value); }
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static string ShowOnStartupLegacy { // WindowAutoOpen
|
||
|
get { return EditorPrefs.GetString(ShowOnStartupKey); }
|
||
|
set { EditorPrefs.SetString(ShowOnStartupKey, value); }
|
||
|
}
|
||
|
|
||
|
public static string showOnStartupPath { get; }= Path.Combine(CliUtils.GetAppDataPath(), "showOnStartup.txt");
|
||
|
static ShowOnStartupEnum? showOnStartup;
|
||
|
public static ShowOnStartupEnum ShowOnStartup {
|
||
|
get {
|
||
|
if (showOnStartup != null) {
|
||
|
return showOnStartup.Value;
|
||
|
}
|
||
|
if (!File.Exists(showOnStartupPath)) {
|
||
|
showOnStartup = ShowOnStartupEnum.Always;
|
||
|
return showOnStartup.Value;
|
||
|
}
|
||
|
var text = File.ReadAllText(showOnStartupPath);
|
||
|
ShowOnStartupEnum _showOnStartup;
|
||
|
if (Enum.TryParse(text, true, out _showOnStartup)) {
|
||
|
showOnStartup = _showOnStartup;
|
||
|
return showOnStartup.Value;
|
||
|
}
|
||
|
showOnStartup = ShowOnStartupEnum.Always;
|
||
|
return showOnStartup.Value;
|
||
|
}
|
||
|
set {
|
||
|
// ReSharper disable once AssignNullToNotNullAttribute
|
||
|
Directory.CreateDirectory(Path.GetDirectoryName(showOnStartupPath));
|
||
|
File.WriteAllText(showOnStartupPath, value.ToString());
|
||
|
showOnStartup = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
public static bool ErrorHidden {
|
||
|
get { return EditorPrefs.GetBool(ErrorHiddenCachedKey); }
|
||
|
set { EditorPrefs.SetBool(ErrorHiddenCachedKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool ShowLogin {
|
||
|
get { return EditorPrefs.GetBool(ShowLoginCachedKey, true); }
|
||
|
set { EditorPrefs.SetBool(ShowLoginCachedKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool ShowConfiguration {
|
||
|
get { return EditorPrefs.GetBool(ConfigurationKey, true); }
|
||
|
set { EditorPrefs.SetBool(ConfigurationKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool ShowPromoCodes {
|
||
|
get { return EditorPrefs.GetBool(ShowPromoCodesCachedKey, true); }
|
||
|
set { EditorPrefs.SetBool(ShowPromoCodesCachedKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool ShowOnDevice {
|
||
|
get { return EditorPrefs.GetBool(ShowOnDeviceKey, true); }
|
||
|
set { EditorPrefs.SetBool(ShowOnDeviceKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool ShowChangeLog {
|
||
|
get { return EditorPrefs.GetBool(ShowChangelogKey, true); }
|
||
|
set { EditorPrefs.SetBool(ShowChangelogKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool ShowUnsupportedChanges {
|
||
|
get { return EditorPrefs.GetBool(UnsupportedChangesKey, true); }
|
||
|
set { EditorPrefs.SetBool(UnsupportedChangesKey, value); }
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static bool RefreshManuallyTip {
|
||
|
get { return EditorPrefs.GetBool(RefreshManuallyTipCachedKey); }
|
||
|
set { EditorPrefs.SetBool(RefreshManuallyTipCachedKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool LoggedBurstHint {
|
||
|
get { return EditorPrefs.GetBool(LoggedBurstHintKey); }
|
||
|
set { EditorPrefs.SetBool(LoggedBurstHintKey, value); }
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static bool ShouldDoAutoRefreshFixup {
|
||
|
get { return EditorPrefs.GetBool(ShouldDoAutoRefreshFixupKey, true); }
|
||
|
set { EditorPrefs.SetBool(ShouldDoAutoRefreshFixupKey, value); }
|
||
|
}
|
||
|
|
||
|
public static string ActiveDays {
|
||
|
get { return EditorPrefs.GetString(ActiveDaysKey, string.Empty); }
|
||
|
set { EditorPrefs.SetString(ActiveDaysKey, value); }
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static bool RateAppShownLegacy {
|
||
|
get { return EditorPrefs.GetBool(RateAppShownKey, false); }
|
||
|
set { EditorPrefs.SetBool(RateAppShownKey, value); }
|
||
|
}
|
||
|
|
||
|
static string rateAppPath = Path.Combine(CliUtils.GetAppDataPath(), "ratedApp.txt");
|
||
|
static bool? rateAppShown;
|
||
|
public static bool RateAppShown {
|
||
|
get {
|
||
|
if (rateAppShown != null) {
|
||
|
return rateAppShown.Value;
|
||
|
}
|
||
|
rateAppShown = File.Exists(rateAppPath);
|
||
|
return rateAppShown.Value;
|
||
|
}
|
||
|
set {
|
||
|
// ReSharper disable once AssignNullToNotNullAttribute
|
||
|
Directory.CreateDirectory(Path.GetDirectoryName(rateAppPath));
|
||
|
if (value && !File.Exists(rateAppPath)) {
|
||
|
using (File.Create(rateAppPath)) { }
|
||
|
} else if (!value && File.Exists(rateAppPath)) {
|
||
|
File.Delete(rateAppPath);
|
||
|
}
|
||
|
rateAppShown = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static bool PatchesGroupAll {
|
||
|
get { return EditorPrefs.GetBool(PatchesGroupAllKey, false); }
|
||
|
set { EditorPrefs.SetBool(PatchesGroupAllKey, value); }
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static bool PatchesCollapse {
|
||
|
get { return EditorPrefs.GetBool(PatchesCollapseKey, true); }
|
||
|
set { EditorPrefs.SetBool(PatchesCollapseKey, value); }
|
||
|
}
|
||
|
|
||
|
[Obsolete]
|
||
|
public static ShowOnStartupEnum GetShowOnStartupEnum() {
|
||
|
ShowOnStartupEnum showOnStartupEnum;
|
||
|
if (Enum.TryParse(HotReloadPrefs.ShowOnStartupLegacy, true, out showOnStartupEnum)) {
|
||
|
return showOnStartupEnum;
|
||
|
}
|
||
|
return ShowOnStartupEnum.Always;
|
||
|
}
|
||
|
|
||
|
public static bool ExposeServerToLocalNetwork {
|
||
|
get { return EditorPrefs.GetBool(ExposeServerToLocalNetworkKey, false); }
|
||
|
set { EditorPrefs.SetBool(ExposeServerToLocalNetworkKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool LaunchOnEditorStart {
|
||
|
get { return EditorPrefs.GetBool(LaunchOnEditorStartKey, false); }
|
||
|
set { EditorPrefs.SetBool(LaunchOnEditorStartKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool AutoRecompileUnsupportedChanges {
|
||
|
get { return EditorPrefs.GetBool(AutoRecompileUnsupportedChangesKey, false); }
|
||
|
set { EditorPrefs.SetBool(AutoRecompileUnsupportedChangesKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool AutoRecompilePartiallyUnsupportedChanges {
|
||
|
get { return EditorPrefs.GetBool(AutoRecompilePartiallyUnsupportedChangesKey, false); }
|
||
|
set { EditorPrefs.SetBool(AutoRecompilePartiallyUnsupportedChangesKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool ShowNotifications {
|
||
|
get { return EditorPrefs.GetBool(ShowNotificationsKey, true); }
|
||
|
set { EditorPrefs.SetBool(ShowNotificationsKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool ShowPatchingNotifications {
|
||
|
get { return EditorPrefs.GetBool(ShowPatchingNotificationsKey, true); }
|
||
|
set { EditorPrefs.SetBool(ShowPatchingNotificationsKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool ShowCompilingUnsupportedNotifications {
|
||
|
get { return EditorPrefs.GetBool(ShowCompilingUnsupportedNotificationsKey, true); }
|
||
|
set { EditorPrefs.SetBool(ShowCompilingUnsupportedNotificationsKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool AutoRecompileUnsupportedChangesImmediately {
|
||
|
get { return EditorPrefs.GetBool(AutoRecompileUnsupportedChangesImmediatelyKey, false); }
|
||
|
set { EditorPrefs.SetBool(AutoRecompileUnsupportedChangesImmediatelyKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool AutoRecompileUnsupportedChangesOnExitPlayMode {
|
||
|
get { return EditorPrefs.GetBool(AutoRecompileUnsupportedChangesOnExitPlayModeKey, false); }
|
||
|
set { EditorPrefs.SetBool(AutoRecompileUnsupportedChangesOnExitPlayModeKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool AutoRecompileUnsupportedChangesInPlayMode {
|
||
|
get { return EditorPrefs.GetBool(AutoRecompileUnsupportedChangesInPlayModeKey, false); }
|
||
|
set { EditorPrefs.SetBool(AutoRecompileUnsupportedChangesInPlayModeKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool AllowDisableUnityAutoRefresh {
|
||
|
get { return EditorPrefs.GetBool(AllowDisableUnityAutoRefreshKey, false); }
|
||
|
set { EditorPrefs.SetBool(AllowDisableUnityAutoRefreshKey, value); }
|
||
|
}
|
||
|
|
||
|
public static int DefaultAutoRefresh {
|
||
|
get { return EditorPrefs.GetInt(DefaultAutoRefreshKey, -1); }
|
||
|
set { EditorPrefs.SetInt(DefaultAutoRefreshKey, value); }
|
||
|
}
|
||
|
|
||
|
[UsedImplicitly]
|
||
|
public static int DefaultAutoRefreshMode {
|
||
|
get { return EditorPrefs.GetInt(DefaultAutoRefreshModeKey, -1); }
|
||
|
set { EditorPrefs.SetInt(DefaultAutoRefreshModeKey, value); }
|
||
|
}
|
||
|
|
||
|
public static int DefaultScriptCompilation {
|
||
|
get { return EditorPrefs.GetInt(DefaultScriptCompilationKeyKey, -1); }
|
||
|
set { EditorPrefs.SetInt(DefaultScriptCompilationKeyKey, value); }
|
||
|
}
|
||
|
|
||
|
public static Color? DefaultEditorTint {
|
||
|
get { return ColorFromString(EditorPrefs.GetString(DefaultEditorTintKey, string.Empty)); }
|
||
|
set { EditorPrefs.SetString(DefaultEditorTintKey, ColorToString(value)); }
|
||
|
}
|
||
|
|
||
|
public static bool AppliedAutoRefresh {
|
||
|
get { return EditorPrefs.GetBool(AppliedAutoRefreshKey); }
|
||
|
set { EditorPrefs.SetBool(AppliedAutoRefreshKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool AppliedScriptCompilation {
|
||
|
get { return EditorPrefs.GetBool(AppliedScriptCompilationKey); }
|
||
|
set { EditorPrefs.SetBool(AppliedScriptCompilationKey, value); }
|
||
|
}
|
||
|
|
||
|
public static Color? AppliedEditorTint {
|
||
|
get { return ColorFromString(EditorPrefs.GetString(AppliedEditorTintKey, string.Empty)); }
|
||
|
set { EditorPrefs.SetString(AppliedEditorTintKey, ColorToString(value)); }
|
||
|
}
|
||
|
|
||
|
public static bool AllAssetChanges {
|
||
|
get { return EditorPrefs.GetBool(AllAssetChangesKey, false); }
|
||
|
set { EditorPrefs.SetBool(AllAssetChangesKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool IncludeShaderChanges {
|
||
|
get { return EditorPrefs.GetBool(IncludeShaderChangesKey, false); }
|
||
|
set { EditorPrefs.SetBool(IncludeShaderChangesKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool DisableConsoleWindow {
|
||
|
get { return EditorPrefs.GetBool(DisableConsoleWindowKey, false); }
|
||
|
set { EditorPrefs.SetBool(DisableConsoleWindowKey, value); }
|
||
|
}
|
||
|
|
||
|
public static string RedeemLicenseEmail {
|
||
|
get { return EditorPrefs.GetString(RedeemLicenseEmailKey); }
|
||
|
set { EditorPrefs.SetString(RedeemLicenseEmailKey, value); }
|
||
|
}
|
||
|
|
||
|
public static string RedeemLicenseInvoice {
|
||
|
get { return EditorPrefs.GetString(RedeemLicenseInvoiceKey); }
|
||
|
set { EditorPrefs.SetString(RedeemLicenseInvoiceKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool RunTabEventsTimelineFoldout {
|
||
|
get { return EditorPrefs.GetBool(RunTabEventsTimelineFoldoutKey, true); }
|
||
|
set { EditorPrefs.SetBool(RunTabEventsTimelineFoldoutKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool RunTabEventsSuggestionsFoldout {
|
||
|
get { return EditorPrefs.GetBool(RunTabEventsSuggestionsFoldoutKey, true); }
|
||
|
set { EditorPrefs.SetBool(RunTabEventsSuggestionsFoldoutKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool RunTabUnsupportedChangesFilter {
|
||
|
get { return EditorPrefs.GetBool(RunTabUnsupportedChangesFilterKey, true); }
|
||
|
set { EditorPrefs.SetBool(RunTabUnsupportedChangesFilterKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool RunTabCompileErrorFilter {
|
||
|
get { return EditorPrefs.GetBool(RunTabCompileErrorFilterKey, true); }
|
||
|
set { EditorPrefs.SetBool(RunTabCompileErrorFilterKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool RunTabPartiallyAppliedPatchesFilter {
|
||
|
get { return EditorPrefs.GetBool(RunTabPartiallyAppliedPatchesFilterKey, true); }
|
||
|
set { EditorPrefs.SetBool(RunTabPartiallyAppliedPatchesFilterKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool RunTabAppliedPatchesFilter {
|
||
|
get { return EditorPrefs.GetBool(RunTabAppliedPatchesFilterKey, true); }
|
||
|
set { EditorPrefs.SetBool(RunTabAppliedPatchesFilterKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool RecompileDialogueShown {
|
||
|
get { return EditorPrefs.GetBool(RecompileDialogueShownKey); }
|
||
|
set { EditorPrefs.SetBool(RecompileDialogueShownKey, value); }
|
||
|
}
|
||
|
|
||
|
public static bool OpenedWindowAtLeastOnce {
|
||
|
get { return EditorPrefs.GetBool(OpenedWindowAtLeastOnceKey); }
|
||
|
set { EditorPrefs.SetBool(OpenedWindowAtLeastOnceKey, value); }
|
||
|
}
|
||
|
|
||
|
private const string rgbaDelimiter = ";";
|
||
|
public static string ColorToString(Color? _color) {
|
||
|
if (_color == null) {
|
||
|
return null;
|
||
|
}
|
||
|
var color = _color.Value;
|
||
|
var cultInfo = CultureInfo.InvariantCulture;
|
||
|
string[] rgbaList = { color.r.ToString(cultInfo), color.g.ToString(cultInfo), color.b.ToString(cultInfo), color.a.ToString(cultInfo)};
|
||
|
return String.Join(rgbaDelimiter, rgbaList);
|
||
|
}
|
||
|
|
||
|
public static Color? ColorFromString(string ser) {
|
||
|
if (string.IsNullOrEmpty(ser)) {
|
||
|
return null;
|
||
|
}
|
||
|
string[] rgbaParts = ser.Split(rgbaDelimiter.ToCharArray());
|
||
|
return new Color(float.Parse(rgbaParts[0]), float.Parse(rgbaParts[1]),float.Parse(rgbaParts[2]),float.Parse(rgbaParts[3]));
|
||
|
}
|
||
|
}
|
||
|
}
|