res-avatar-unity/Assets/_PoiyomiShaders/Scripts/ThryEditor/Editor/Config.cs
2023-07-15 19:51:23 -07:00

197 lines
6.1 KiB
C#
Executable file

// Material/Shader Inspector for Unity 2017/2018
// Copyright (C) 2019 Thryrallo
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.IO;
using UnityEditor;
using UnityEngine;
namespace Thry
{
public class Config
{
// consts
private const string PATH_CONFIG_FILE = "Thry/Config.json";
private const string VERSION = "2.39.4";
// static
private static Config config;
public static void OnCompile()
{
if (!File.Exists(PATH_CONFIG_FILE))
{
//Settings.firstTimePopup();
}
else
{
string prevVersion = Singleton.verion;
string installedVersion = VERSION;
int versionComparision = Helper.CompareVersions(installedVersion, prevVersion);
if (versionComparision != 0)
{
config.verion = VERSION;
config.Save();
}
if (versionComparision == 1)
{
Settings.updatedPopup(versionComparision);
}
else if (versionComparision == -1)
{
config.OnUpgrade(prevVersion);
Debug.Log(">>> Thry Editor has been updated to version " + installedVersion);
}
}
}
public static Config Singleton
{
get
{
if (config == null)
{
if (File.Exists(PATH_CONFIG_FILE))
config = JsonUtility.FromJson<Config>(FileHelper.ReadFileIntoString(PATH_CONFIG_FILE));
else
config = new Config().Save();
}
return config;
}
}
//actual config class
public TextureDisplayType default_texture_type = TextureDisplayType.small;
public bool showRenderQueue = true;
public bool showManualReloadButton = false;
public bool allowCustomLockingRenaming = false;
public bool autoMarkPropertiesAnimated = true;
public TextureImporterFormat texturePackerCompressionWithAlphaOverwrite = TextureImporterFormat.Automatic;
public TextureImporterFormat texturePackerCompressionNoAlphaOverwrite = TextureImporterFormat.Automatic;
public TextureImporterFormat gradientEditorCompressionOverwrite = TextureImporterFormat.Automatic;
public string locale = "English";
public string gradient_name = "gradient_<hash>.png";
public bool autoSetAnchorOverride = true;
public HumanBodyBones humanBoneAnchor = HumanBodyBones.Spine;
public string anchorOverrideObjectName = "AutoAnchorObject";
public bool autoSetAnchorAskedOnce = false;
public bool enableDeveloperMode = false;
public bool forceAsyncCompilationPreview = true;
public string verion = VERSION;
public Config Save()
{
FileHelper.WriteStringToFile(JsonUtility.ToJson(this, true), PATH_CONFIG_FILE);
return this;
}
private void OnUpgrade(string oldVersionString)
{
Version newVersion = new Version(VERSION);
Version oldVersion = new Version(oldVersionString);
//Upgrade locking valuesd from Animated property to tags
if (newVersion >= "2.11.0" && oldVersion > "2.0" && oldVersion < "2.11.0")
{
ShaderOptimizer.UpgradeAnimatedPropertiesToTagsOnAllMaterials();
}
}
}
public class Version
{
private string value;
public Version(string s)
{
if (string.IsNullOrEmpty(s)) s = "0";
this.value = s;
}
public static bool operator ==(Version x, Version y)
{
return Helper.CompareVersions(x.value, y.value) == 0;
}
public static bool operator !=(Version x, Version y)
{
return Helper.CompareVersions(x.value, y.value) != 0;
}
public static bool operator >(Version x, Version y)
{
return Helper.CompareVersions(x.value, y.value) == -1;
}
public static bool operator <(Version x, Version y)
{
return Helper.CompareVersions(x.value, y.value) == 1;
}
public static bool operator >=(Version x, Version y)
{
return Helper.CompareVersions(x.value, y.value) < 1;
}
public static bool operator <=(Version x, Version y)
{
return Helper.CompareVersions(x.value, y.value) > -1;
}
public static bool operator ==(Version x, string y)
{
return Helper.CompareVersions(x.value, y) == 0;
}
public static bool operator !=(Version x, string y)
{
return Helper.CompareVersions(x.value, y) != 0;
}
public static bool operator >(Version x, string y)
{
return Helper.CompareVersions(x.value, y) == -1;
}
public static bool operator <(Version x, string y)
{
return Helper.CompareVersions(x.value, y) == 1;
}
public static bool operator >=(Version x, string y)
{
return Helper.CompareVersions(x.value, y) < 1;
}
public static bool operator <=(Version x, string y)
{
return Helper.CompareVersions(x.value, y) > -1;
}
public override bool Equals(object o)
{
if (o is Version) return this == (o as Version);
if (o is string) return this == (o as string);
return false;
}
public override string ToString()
{
return value;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
}