Decompiled source of MorePalette v1.0.8

MorePalette.dll

Decompiled 2 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using HarmonyLib;
using MorePaletteScripts;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("MorePalette")]
[assembly: AssemblyDescription("More Palette for TABS")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("GeeztJeez")]
[assembly: AssemblyProduct("MorePalette")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyTrademark("MorePalette")]
[assembly: ComVisible(false)]
[assembly: Guid("3a45c3cf-230c-4310-952f-0887d4266a22")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.8.0")]
[module: UnverifiableCode]
namespace MorePalette
{
	[BepInPlugin("GeeztJeez.MorePalette", "MorePalette", "1.0.8")]
	internal class Loader : BaseUnityPlugin
	{
		public static string modName;

		public Sprite mainIcon;

		public AssetBundle bundle;

		public static string shortModName;

		private void Init()
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Expected O, but got Unknown
			Material val = new Material(Shader.Find("Standard"));
			val.enableInstancing = true;
			Utilities.SetOpaque(val);
			Material auraMaterial = bundle.LoadAsset<Material>("MPT_AuraMaterial");
			Material invisMaterial = bundle.LoadAsset<Material>("InvisibleMaterial");
			Material flatWhiteMaterial = bundle.LoadAsset<Material>("FlatWhiteMaterial");
			Material flatBlackMaterial = bundle.LoadAsset<Material>("FlatBlackMaterial");
			float[] array = new float[3] { 0.9f, 0.5f, 0.1f };
			Utilities.InsertToGame(shortModName + " Others", mainIcon, Generator.GenerateOldPaletteCat(auraMaterial, invisMaterial, flatWhiteMaterial, flatBlackMaterial, mainIcon).ToArray());
			Utilities.InsertToGame(shortModName + " OPQ Bright", mainIcon, Generator.GenerateSurfaceBrightVariants(val, mainIcon, 1000000, 50, 2, 3, 4, 1f));
			Utilities.InsertToGame(shortModName + " OPQ Dark", mainIcon, Generator.GenerateSurfaceBrightnessVariants(val, mainIcon, 2000000, 70, 2, 2, 1, 6, 0.1f, 0.9f));
			Utilities.InsertToGame(shortModName + " OPQ Unique", mainIcon, Generator.GenerateUniqueVariants(val, mainIcon, 4000000, 70, 5, 0.15f, 0.45f, 0.9f, 2, 2));
			Utilities.InsertToGame(shortModName + " TSP Normal", mainIcon, Generator.GenerateTransparentNormal(val, mainIcon, 5000000, 50, 4, 0.3f, 1f, array));
			Utilities.InsertToGame(shortModName + " TSP Pastel", mainIcon, Generator.GenerateTransparentPastel(val, mainIcon, 6000000, 50, 5, 0.15f, 0.45f, 0.9f, array));
			Utilities.InsertToGame(shortModName + " TSP Mono", mainIcon, Generator.GenerateTransparentGreyscale(val, mainIcon, 7000000, 50, array));
			Utilities.InsertToGame(shortModName + " TM Normal", mainIcon, Generator.GenerateTeamVariants(val, mainIcon, 10000000, 50, 2, 0.5f, 1f, 0.8f, array, greyscale: false, emissive: false));
			Utilities.InsertToGame(shortModName + " TM Classic", mainIcon, Generator.GenerateTeamVariants(val, mainIcon, 16000000, 50, 2, 0.65f, 0.85f, 0.9f, array, greyscale: false, emissive: false));
			Utilities.InsertToGame(shortModName + " TM Shades", mainIcon, Generator.GenerateTeamVariants(val, mainIcon, 8000000, 50, 1, 1f, 1f, 1f, array, greyscale: false, emissive: false));
			Utilities.InsertToGame(shortModName + " TM Pastel", mainIcon, Generator.GenerateTeamVariants(val, mainIcon, 9000000, 50, 1, 0.4f, 0.4f, 0.95f, array, greyscale: false, emissive: false));
			Utilities.InsertToGame(shortModName + " TM Mono", mainIcon, Generator.GenerateTeamVariants(val, mainIcon, 14000000, 50, 1, 0f, 0f, 1f, array, greyscale: true, emissive: false));
			Utilities.InsertToGame(shortModName + " TM Neon", mainIcon, Generator.GenerateTeamVariants(val, mainIcon, 11000000, 50, 1, 1f, 1f, 1f, array, greyscale: false, emissive: true));
			Utilities.InsertToGame(shortModName + " TM Dark SL", mainIcon, Generator.GenerateSkinTeamDarkVariants(val, mainIcon, 12000000, 48, array));
			Utilities.InsertToGame(shortModName + " TM Bright SL", mainIcon, Generator.GenerateSkinTeamBrightVariants(val, mainIcon, 13000000, 48, array));
		}

		static Loader()
		{
			modName = "MorePalette";
			shortModName = "MP";
		}

		private void Awake()
		{
			((MonoBehaviour)this).StartCoroutine(Call());
		}

		private IEnumerator Call()
		{
			yield return (object)new WaitUntil((Func<bool>)(() => (Object)(object)Object.FindObjectOfType<ServiceLocator>() != (Object)null));
			yield return (object)new WaitUntil((Func<bool>)(() => ServiceLocator.GetService<ISaveLoaderService>() != null));
			Debug.Log((object)$"Loading {modName}!");
			new Harmony(modName).PatchAll();
			bundle = Utilities.LoadBundle("morepaletteassetsbundle");
			if ((Object)(object)bundle != (Object)null)
			{
				mainIcon = bundle.LoadAsset<Sprite>("placeholder_paintpalette");
				Init();
				Debug.Log((object)$"Successfully loaded {modName}!");
			}
			else
			{
				Debug.LogError((object)$"Failed Loading {modName}, No assets found!");
			}
		}
	}
}
namespace MorePaletteScripts
{
	public static class ReflectionUtility
	{
		private const BindingFlags Flags = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;

		public static object GetField<T>(this T self, string name) where T : class
		{
			FieldInfo field = typeof(T).GetField(name, (BindingFlags)(-1));
			if (field != null)
			{
				return field.GetValue(self);
			}
			return null;
		}

		public static T SetField<T>(this T self, string name, object value) where T : class
		{
			FieldInfo field = typeof(T).GetField(name, (BindingFlags)(-1));
			if (field != null)
			{
				field.SetValue(self, value);
			}
			return self;
		}
	}
	public static class Generator
	{
		public static ColorPaletteCatagory[] GenerateSurfaceBrightVariants(Material mat, Sprite mainIcon, int baseID, int hueSteps, int metallicVariants, int smoothnessVariants, int emissionVariants, float value)
		{
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			int num = baseID;
			for (int i = 0; i < metallicVariants; i++)
			{
				float num2 = ((metallicVariants <= 1) ? 0f : ((float)i / (float)(metallicVariants - 1)));
				for (int j = 0; j < smoothnessVariants; j++)
				{
					float num3 = ((smoothnessVariants <= 1) ? 0f : ((float)j / (float)(smoothnessVariants - 1)));
					for (int k = 0; k < emissionVariants; k++)
					{
						float num4 = (float)k + 1f;
						string name = $"V{value:F1} M{num2:F0} S{num3:F0} E{num4:F0}";
						list.Add(GenerateRainbowSurface(mat, mainIcon, name, num, hueSteps, num2, num3, num4, value));
						num += hueSteps;
					}
				}
			}
			return list.ToArray();
		}

		public static ColorPaletteCatagory GenerateRainbowSurface(Material sharedDynamicMaterial, Sprite mainIcon, string name, int idStart, int hueSteps, float metallic, float smoothness, float emission, float value)
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Expected O, but got Unknown
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteData> list = new List<ColorPaletteData>();
			int num = 0;
			for (int i = 0; i < hueSteps; i++)
			{
				Color val = Color.HSVToRGB((float)i / (float)hueSteps, 1f, value);
				Material val2 = new Material(sharedDynamicMaterial);
				val2.enableInstancing = true;
				Utilities.SetOpaque(val2);
				val2.SetColor("_Color", val);
				val2.SetFloat("_Metallic", metallic);
				val2.SetFloat("_Glossiness", smoothness);
				if (emission > 0f)
				{
					val2.EnableKeyword("_EMISSION");
					val2.SetColor("_EmissionColor", val * emission);
				}
				list.Add(new ColorPaletteData
				{
					ColorIndex = Utilities.GetSafeColorID(idStart + num),
					m_color = val,
					m_material = val2
				});
				num++;
			}
			return new ColorPaletteCatagory
			{
				name = name,
				shardImage = mainIcon,
				Cataogry = (CatagoryType)0,
				Colors = list.ToArray()
			};
		}

		public static ColorPaletteCatagory[] GenerateSurfaceBrightnessVariants(Material mat, Sprite mainIcon, int baseID, int hueSteps, int metallicVariants, int smoothnessVariants, int emissionVariants, int brightnessSteps, float minValue, float maxValue)
		{
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			int num = baseID;
			int num2 = 500000;
			for (int i = 0; i < brightnessSteps; i++)
			{
				_ = (float)i / (float)(brightnessSteps - 1);
				float value = ((brightnessSteps <= 1) ? maxValue : Mathf.Lerp(maxValue, minValue, (float)i / (float)(brightnessSteps - 1)));
				ColorPaletteCatagory[] collection = GenerateSurfaceBrightVariants(mat, mainIcon, num, hueSteps, metallicVariants, smoothnessVariants, emissionVariants, value);
				list.AddRange(collection);
				num += num2;
			}
			return list.ToArray();
		}

		public static ColorPaletteCatagory[] GenerateUniqueVariants(Material sharedDynamicMaterial, Sprite mainIcon, int baseID, int hueSteps, int pastelVariants, float pastelMinSat, float pastelMaxSat, float pastelValue, int metallic, int smoothness)
		{
			//IL_0258: Unknown result type (might be due to invalid IL or missing references)
			//IL_0288: Unknown result type (might be due to invalid IL or missing references)
			//IL_029b: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Expected O, but got Unknown
			//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0161: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Expected O, but got Unknown
			//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0218: Unknown result type (might be due to invalid IL or missing references)
			//IL_0230: Unknown result type (might be due to invalid IL or missing references)
			//IL_0232: Unknown result type (might be due to invalid IL or missing references)
			//IL_0240: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			int num = baseID;
			int num2 = 300000;
			float[] array = new float[2] { 0f, 1f };
			float[] array2 = new float[2] { 0f, 1f };
			for (int i = 0; i < pastelVariants; i++)
			{
				float num3 = ((pastelVariants <= 1) ? 0f : ((float)i / (float)(pastelVariants - 1)));
				float num4 = Mathf.Lerp(pastelMinSat, pastelMaxSat, num3);
				for (int j = 0; j < 4; j++)
				{
					float num5 = array[j % 2];
					float num6 = array2[j / 2];
					List<ColorPaletteData> list2 = new List<ColorPaletteData>();
					for (int k = 0; k < hueSteps; k++)
					{
						Color val = Color.HSVToRGB((float)k / (float)hueSteps, num4, pastelValue);
						Material val2 = new Material(sharedDynamicMaterial);
						val2.enableInstancing = true;
						Utilities.SetOpaque(val2);
						val2.SetColor("_Color", val);
						val2.SetFloat("_Metallic", num5);
						val2.SetFloat("_Glossiness", num6);
						list2.Add(new ColorPaletteData
						{
							ColorIndex = Utilities.GetSafeColorID(num + k),
							m_color = val,
							m_material = val2
						});
					}
					list.Add(new ColorPaletteCatagory
					{
						name = $"S{num4:F1} M{num5:F0} G{num6:F0}",
						shardImage = mainIcon,
						Cataogry = (CatagoryType)0,
						Colors = list2.ToArray()
					});
					num += num2;
				}
			}
			Color val3 = default(Color);
			for (int l = 0; l < 4; l++)
			{
				float num7 = array[l % 2];
				float num8 = array2[l / 2];
				List<ColorPaletteData> list3 = new List<ColorPaletteData>();
				for (int m = 0; m < hueSteps; m++)
				{
					float num9 = ((hueSteps <= 1) ? 0f : ((float)m / (float)(hueSteps - 1)));
					((Color)(ref val3))..ctor(num9, num9, num9);
					Material val4 = new Material(sharedDynamicMaterial);
					val4.enableInstancing = true;
					Utilities.SetOpaque(val4);
					val4.SetColor("_Color", val3);
					val4.SetFloat("_Metallic", num7);
					val4.SetFloat("_Glossiness", num8);
					list3.Add(new ColorPaletteData
					{
						ColorIndex = Utilities.GetSafeColorID(num + m),
						m_color = val3,
						m_material = val4
					});
				}
				list.Add(new ColorPaletteCatagory
				{
					name = $"M{num7:F0} G{num8:F0}",
					shardImage = mainIcon,
					Cataogry = (CatagoryType)0,
					Colors = list3.ToArray()
				});
				num += num2;
			}
			return list.ToArray();
		}

		public static ColorPaletteCatagory[] GenerateTransparentPastel(Material sharedDynamicMaterial, Sprite mainIcon, int baseID, int hueSteps, int pastelVariants, float pastelMinSat, float pastelMaxSat, float pastelValue, float[] transparentAlphas)
		{
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Expected O, but got Unknown
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_011a: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			int num = baseID;
			int num2 = 300000;
			for (int i = 0; i < pastelVariants; i++)
			{
				float num3 = ((pastelVariants <= 1) ? 0f : ((float)i / (float)(pastelVariants - 1)));
				float num4 = Mathf.Lerp(pastelMinSat, pastelMaxSat, num3);
				foreach (float num5 in transparentAlphas)
				{
					List<ColorPaletteData> list2 = new List<ColorPaletteData>();
					for (int k = 0; k < hueSteps; k++)
					{
						Color val = Color.HSVToRGB((float)k / (float)hueSteps, num4, pastelValue);
						val.a = num5;
						Material val2 = new Material(sharedDynamicMaterial);
						val2.enableInstancing = true;
						Utilities.SetTransparent(val2);
						val2.SetColor("_Color", val);
						list2.Add(new ColorPaletteData
						{
							ColorIndex = Utilities.GetSafeColorID(num + k),
							m_color = val,
							m_material = val2
						});
					}
					list.Add(new ColorPaletteCatagory
					{
						name = $"Pastel S{num4:F1} A{num5:F1}",
						shardImage = mainIcon,
						Cataogry = (CatagoryType)0,
						Colors = list2.ToArray()
					});
					num += num2;
				}
			}
			return list.ToArray();
		}

		public static ColorPaletteCatagory[] GenerateTransparentGreyscale(Material sharedDynamicMaterial, Sprite mainIcon, int baseID, int valueSteps, float[] transparentAlphas)
		{
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Expected O, but got Unknown
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			int num = baseID;
			int num2 = 300000;
			Color val = default(Color);
			foreach (float num3 in transparentAlphas)
			{
				List<ColorPaletteData> list2 = new List<ColorPaletteData>();
				for (int j = 0; j < valueSteps; j++)
				{
					float num4 = ((valueSteps <= 1) ? 0f : ((float)j / (float)(valueSteps - 1)));
					((Color)(ref val))..ctor(num4, num4, num4, num3);
					Material val2 = new Material(sharedDynamicMaterial);
					val2.enableInstancing = true;
					Utilities.SetTransparent(val2);
					val2.SetColor("_Color", val);
					list2.Add(new ColorPaletteData
					{
						ColorIndex = Utilities.GetSafeColorID(num + j),
						m_color = val,
						m_material = val2
					});
				}
				list.Add(new ColorPaletteCatagory
				{
					name = $"Gray A{num3:F1}",
					shardImage = mainIcon,
					Cataogry = (CatagoryType)0,
					Colors = list2.ToArray()
				});
				num += num2;
			}
			return list.ToArray();
		}

		public static ColorPaletteCatagory[] GenerateTransparentNormal(Material sharedDynamicMaterial, Sprite mainIcon, int baseID, int hueSteps, int brightnessSteps, float minValue, float maxValue, float[] transparentAlphas)
		{
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Expected O, but got Unknown
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			int num = baseID;
			int num2 = 300000;
			for (int i = 0; i < brightnessSteps; i++)
			{
				float num3 = ((brightnessSteps <= 1) ? 0f : ((float)i / (float)(brightnessSteps - 1)));
				float num4 = Mathf.Lerp(maxValue, minValue, num3);
				foreach (float num5 in transparentAlphas)
				{
					List<ColorPaletteData> list2 = new List<ColorPaletteData>();
					for (int k = 0; k < hueSteps; k++)
					{
						Color val = Color.HSVToRGB((float)k / (float)hueSteps, 1f, num4);
						val.a = num5;
						Material val2 = new Material(sharedDynamicMaterial);
						val2.enableInstancing = true;
						Utilities.SetTransparent(val2);
						val2.SetColor("_Color", val);
						list2.Add(new ColorPaletteData
						{
							ColorIndex = Utilities.GetSafeColorID(num + k),
							m_color = val,
							m_material = val2
						});
					}
					list.Add(new ColorPaletteCatagory
					{
						name = $"Normal V{num4:F1} A{num5:F1}",
						shardImage = mainIcon,
						Cataogry = (CatagoryType)0,
						Colors = list2.ToArray()
					});
					num += num2;
				}
			}
			return list.ToArray();
		}

		public static ColorPaletteCatagory[] GenerateTeamVariants(Material material, Sprite mainIcon, int baseID, int hueSteps, int styleSteps, float minSat, float maxSat, float value, float[] alphaSteps, bool greyscale, bool emissive)
		{
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			int num = baseID;
			int num2 = 300000;
			int num3 = styleSteps;
			if (Mathf.Approximately(minSat, maxSat))
			{
				num3 = 1;
			}
			for (int i = 0; i < num3; i++)
			{
				float num4 = Utilities.SafeFactor(i, num3);
				float num5 = Mathf.Lerp(minSat, maxSat, num4);
				list.Add(GenerateTeamCategory(material, mainIcon, $"Opaque S{num5:F1}", num, hueSteps, num5, value, 1f, transparent: false, greyscale, emissive));
				num += num2;
				foreach (float num6 in alphaSteps)
				{
					list.Add(GenerateTeamCategory(material, mainIcon, $"Transparent S{num5:F1} A{num6:F1}", num, hueSteps, num5, value, num6, transparent: true, greyscale, emissive));
					num += num2;
				}
			}
			return list.ToArray();
		}

		public static ColorPaletteCatagory GenerateTeamCategory(Material sharedDynamicMaterial, Sprite mainIcon, string name, int idStart, int shadeSteps, float saturation, float value, float alpha, bool transparent, bool greyscale, bool emissive, float secondaryHueOffset = 0.66f)
		{
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: Expected O, but got Unknown
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Expected O, but got Unknown
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0173: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			List<TeamColorPaletteData> list = new List<TeamColorPaletteData>();
			float num = 0f;
			float num2 = 0.66f;
			Color val = default(Color);
			Color val2 = default(Color);
			for (int i = 0; i < shadeSteps; i++)
			{
				float num3 = ((shadeSteps <= 1) ? value : Mathf.Lerp(0.2f, value, (float)i / (float)(shadeSteps - 1)));
				if (greyscale)
				{
					float num4 = ((shadeSteps <= 1) ? 0.5f : ((float)i / ((float)shadeSteps - 1f)));
					((Color)(ref val))..ctor(num4, num4, num4, alpha);
					((Color)(ref val2))..ctor(1f - num4, 1f - num4, 1f - num4, alpha);
				}
				else
				{
					val = Color.HSVToRGB(num, saturation, num3);
					val2 = Color.HSVToRGB(num2, saturation, num3);
					val.a = alpha;
					val2.a = alpha;
				}
				Material val3 = new Material(sharedDynamicMaterial);
				Material val4 = new Material(sharedDynamicMaterial);
				if (transparent)
				{
					Utilities.SetTransparent(val3);
					Utilities.SetTransparent(val4);
				}
				else
				{
					Utilities.SetOpaque(val3);
					Utilities.SetOpaque(val4);
				}
				val3.SetColor("_Color", val);
				val4.SetColor("_Color", val2);
				if (emissive)
				{
					val3.EnableKeyword("_EMISSION");
					val4.EnableKeyword("_EMISSION");
					val3.SetColor("_EmissionColor", val * 3f);
					val4.SetColor("_EmissionColor", val2 * 3f);
				}
				int safeColorID = Utilities.GetSafeColorID(idStart + i);
				list.Add(new TeamColorPaletteData
				{
					ColorIndex = safeColorID,
					m_colorRed = val,
					m_colorBlue = val2,
					m_materialRed = val3,
					m_materialBlue = val4
				});
			}
			return new ColorPaletteCatagory
			{
				name = name,
				shardImage = mainIcon,
				Cataogry = (CatagoryType)1,
				TeamColors = list.ToArray(),
				Colors = (ColorPaletteData[])(object)new ColorPaletteData[0]
			};
		}

		public static ColorPaletteCatagory GenerateOthersVariant(Material mat, Sprite mainIcon, string catName, int baseID, int steps, float saturation, float value, float alpha, bool isGreyscale = false, float emissionIntensity = 0f)
		{
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Expected O, but got Unknown
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteData> list = new List<ColorPaletteData>();
			Color val = default(Color);
			for (int i = 0; i < steps; i++)
			{
				float num = ((steps <= 1) ? 0f : ((float)i / (float)(steps - 1)));
				if (isGreyscale)
				{
					((Color)(ref val))..ctor(num, num, num, alpha);
				}
				else
				{
					val = Color.HSVToRGB(num, saturation, value);
					val.a = alpha;
				}
				Material val2 = new Material(mat);
				val2.SetColor("_Color", val);
				list.Add(new ColorPaletteData
				{
					ColorIndex = Utilities.GetSafeColorID(baseID + i),
					m_color = val,
					m_material = val2
				});
			}
			return new ColorPaletteCatagory
			{
				name = catName,
				shardImage = mainIcon,
				Cataogry = (CatagoryType)0,
				Colors = list.ToArray()
			};
		}

		public static List<ColorPaletteCatagory> GenerateOldPaletteCat(Material auraMaterial, Material invisMaterial, Material flatWhiteMaterial, Material flatBlackMaterial, Sprite mainIcon)
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Expected O, but got Unknown
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Expected O, but got Unknown
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Expected O, but got Unknown
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ab: Expected O, but got Unknown
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_020f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0237: Unknown result type (might be due to invalid IL or missing references)
			//IL_023c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0249: Unknown result type (might be due to invalid IL or missing references)
			//IL_024b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0254: Unknown result type (might be due to invalid IL or missing references)
			//IL_027c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0281: Unknown result type (might be due to invalid IL or missing references)
			//IL_028e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0290: Unknown result type (might be due to invalid IL or missing references)
			//IL_0299: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02de: Unknown result type (might be due to invalid IL or missing references)
			//IL_0306: Unknown result type (might be due to invalid IL or missing references)
			//IL_030b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0318: Unknown result type (might be due to invalid IL or missing references)
			//IL_031a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0323: Unknown result type (might be due to invalid IL or missing references)
			//IL_0346: Unknown result type (might be due to invalid IL or missing references)
			//IL_034b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0358: Unknown result type (might be due to invalid IL or missing references)
			//IL_035a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0363: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Unknown result type (might be due to invalid IL or missing references)
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0389: Unknown result type (might be due to invalid IL or missing references)
			//IL_038b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0395: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_042b: Unknown result type (might be due to invalid IL or missing references)
			//IL_045e: Unknown result type (might be due to invalid IL or missing references)
			Material val = new Material(Shader.Find("Standard"));
			((Object)val).name = "MP-Grey-Transparent";
			val.color = new Color(0.5f, 0.5f, 0.5f, 0.5f);
			val.SetOverrideTag("RenderType", "Transparent");
			val.SetFloat("_Mode", 3f);
			val.SetInt("_SrcBlend", 5);
			val.SetInt("_DstBlend", 10);
			val.EnableKeyword("_ALPHABLEND_ON");
			val.renderQueue = 3000;
			Material val2 = new Material(Shader.Find("Standard"));
			((Object)val2).name = "MP-Black-Transparent";
			val2.color = new Color(0f, 0f, 0f, 0.5f);
			val2.SetOverrideTag("RenderType", "Transparent");
			val2.SetFloat("_Mode", 3f);
			val2.SetInt("_SrcBlend", 5);
			val2.SetInt("_DstBlend", 10);
			val2.EnableKeyword("_ALPHABLEND_ON");
			val2.renderQueue = 3000;
			Material val3 = new Material(Shader.Find("Standard"));
			((Object)val3).name = "MP-White-Transparent";
			val3.color = new Color(1f, 1f, 1f, 0.5f);
			val3.SetOverrideTag("RenderType", "Transparent");
			val3.SetFloat("_Mode", 3f);
			val3.SetInt("_SrcBlend", 5);
			val3.SetInt("_DstBlend", 10);
			val3.EnableKeyword("_ALPHABLEND_ON");
			val3.renderQueue = 3000;
			Material val4 = new Material(Shader.Find("Standard"));
			((Object)val4).name = "MP-Glow-White";
			val4.color = new Color(2f, 2f, 2f, 2f);
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			list.Add(new ColorPaletteCatagory
			{
				name = "Miscs & Old",
				shardImage = mainIcon,
				Cataogry = (CatagoryType)0,
				Colors = (ColorPaletteData[])(object)new ColorPaletteData[6]
				{
					new ColorPaletteData
					{
						ColorIndex = 7544323,
						m_color = new Color(0.5f, 0.5f, 0.5f, 0.5f),
						m_material = invisMaterial
					},
					new ColorPaletteData
					{
						ColorIndex = 3423223,
						m_color = new Color(0.5f, 0.5f, 0.5f, 0.5f),
						m_material = val
					},
					new ColorPaletteData
					{
						ColorIndex = 34232112,
						m_color = new Color(0.1f, 0.1f, 0.1f, 0.5f),
						m_material = val2
					},
					new ColorPaletteData
					{
						ColorIndex = 6435322,
						m_color = new Color(0.9f, 0.9f, 0.9f, 0.5f),
						m_material = val3
					},
					new ColorPaletteData
					{
						ColorIndex = 5663424,
						m_color = new Color(2f, 2f, 2f),
						m_material = val4
					},
					new ColorPaletteData
					{
						ColorIndex = 6435211,
						m_color = Color.black,
						m_material = flatBlackMaterial
					}
				}
			});
			list.Add(GenerateOthersVariant(auraMaterial, mainIcon, "Aura Rainbow", 15000000, 180, 1f, 1f, 1f));
			list.Add(GenerateOthersVariant(auraMaterial, mainIcon, "Aura Greyscale", 15100000, 180, 0f, 1f, 1f, isGreyscale: true));
			list.Add(GenerateOthersVariant(flatWhiteMaterial, mainIcon, "Flat Rainbow", 15200000, 180, 1f, 1f, 1f));
			list.Add(GenerateOthersVariant(flatWhiteMaterial, mainIcon, "Flat Greyscale", 15300000, 180, 0f, 1f, 1f, isGreyscale: true));
			return list;
		}

		public static ColorPaletteCatagory[] GenerateSkinTeamDarkVariants(Material material, Sprite mainIcon, int baseID, int shadeSteps, float[] alphaSteps)
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			int num = 100000;
			list.Add(GenerateSkinTeamDarkCategory(material, mainIcon, "Opaque", baseID, shadeSteps, 1f, transparent: false));
			int num2 = baseID + num;
			foreach (float num3 in alphaSteps)
			{
				list.Add(GenerateSkinTeamDarkCategory(material, mainIcon, $"Transparent {num3:F1}", num2, shadeSteps, num3, transparent: true));
				num2 += num;
			}
			return list.ToArray();
		}

		public static ColorPaletteCatagory GenerateSkinTeamDarkCategory(Material sharedDynamicMaterial, Sprite mainIcon, string name, int idStart, int shadeSteps, float alpha, bool transparent)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Expected O, but got Unknown
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Expected O, but got Unknown
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			List<TeamColorPaletteData> list = new List<TeamColorPaletteData>();
			Color val = Color32.op_Implicit(new Color32((byte)231, (byte)103, (byte)103, byte.MaxValue));
			Color val2 = Color32.op_Implicit(new Color32((byte)89, (byte)48, (byte)48, byte.MaxValue));
			Color val3 = Color32.op_Implicit(new Color32((byte)108, (byte)142, (byte)209, byte.MaxValue));
			Color val4 = Color32.op_Implicit(new Color32((byte)56, (byte)61, (byte)91, byte.MaxValue));
			for (int i = 0; i < shadeSteps; i++)
			{
				float num = Utilities.SafeFactor(i, shadeSteps);
				Color val5 = Color.Lerp(val2, val, num);
				Color val6 = Color.Lerp(val4, val3, num);
				val5.a = alpha;
				val6.a = alpha;
				Material val7 = new Material(sharedDynamicMaterial);
				Material val8 = new Material(sharedDynamicMaterial);
				if (transparent)
				{
					Utilities.SetTransparent(val7);
					Utilities.SetTransparent(val8);
				}
				else
				{
					Utilities.SetOpaque(val7);
					Utilities.SetOpaque(val8);
				}
				val7.SetColor("_Color", val5);
				val8.SetColor("_Color", val6);
				list.Add(new TeamColorPaletteData
				{
					ColorIndex = Utilities.GetSafeColorID(idStart + i),
					m_colorRed = val5,
					m_colorBlue = val6,
					m_materialRed = val7,
					m_materialBlue = val8
				});
			}
			return new ColorPaletteCatagory
			{
				name = name,
				shardImage = mainIcon,
				Cataogry = (CatagoryType)1,
				TeamColors = list.ToArray(),
				Colors = (ColorPaletteData[])(object)new ColorPaletteData[0]
			};
		}

		public static ColorPaletteCatagory[] GenerateSkinTeamBrightVariants(Material material, Sprite mainIcon, int baseID, int shadeSteps, float[] alphaSteps)
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			List<ColorPaletteCatagory> list = new List<ColorPaletteCatagory>();
			int num = 100000;
			list.Add(GenerateSkinTeamBrightCategory(material, mainIcon, "Opaque", baseID, shadeSteps, 1f, transparent: false));
			int num2 = baseID + num;
			foreach (float num3 in alphaSteps)
			{
				list.Add(GenerateSkinTeamBrightCategory(material, mainIcon, $"Transparent {num3:F1}", num2, shadeSteps, num3, transparent: true));
				num2 += num;
			}
			return list.ToArray();
		}

		public static ColorPaletteCatagory GenerateSkinTeamBrightCategory(Material sharedDynamicMaterial, Sprite mainIcon, string name, int idStart, int shadeSteps, float alpha, bool transparent)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Expected O, but got Unknown
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Expected O, but got Unknown
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_011b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Unknown result type (might be due to invalid IL or missing references)
			List<TeamColorPaletteData> list = new List<TeamColorPaletteData>();
			Color val = Color32.op_Implicit(new Color32((byte)217, (byte)126, (byte)126, byte.MaxValue));
			Color val2 = Color32.op_Implicit(new Color32((byte)231, (byte)103, (byte)103, byte.MaxValue));
			Color val3 = Color32.op_Implicit(new Color32((byte)145, (byte)155, (byte)224, byte.MaxValue));
			Color val4 = Color32.op_Implicit(new Color32((byte)108, (byte)142, (byte)209, byte.MaxValue));
			for (int i = 0; i < shadeSteps; i++)
			{
				float num = Utilities.SafeFactor(i, shadeSteps);
				Color val5 = Color.Lerp(val2, val, num);
				Color val6 = Color.Lerp(val4, val3, num);
				val5.a = alpha;
				val6.a = alpha;
				Material val7 = new Material(sharedDynamicMaterial);
				Material val8 = new Material(sharedDynamicMaterial);
				if (transparent)
				{
					Utilities.SetTransparent(val7);
					Utilities.SetTransparent(val8);
				}
				else
				{
					Utilities.SetOpaque(val7);
					Utilities.SetOpaque(val8);
				}
				val7.SetColor("_Color", val5);
				val8.SetColor("_Color", val6);
				list.Add(new TeamColorPaletteData
				{
					ColorIndex = Utilities.GetSafeColorID(idStart + i),
					m_colorRed = val5,
					m_colorBlue = val6,
					m_materialRed = val7,
					m_materialBlue = val8
				});
			}
			return new ColorPaletteCatagory
			{
				name = name,
				shardImage = mainIcon,
				Cataogry = (CatagoryType)1,
				TeamColors = list.ToArray(),
				Colors = (ColorPaletteData[])(object)new ColorPaletteData[0]
			};
		}
	}
	public static class Utilities
	{
		public static HashSet<int> usedIDs = new HashSet<int>();

		public static void SetOpaque(Material mat)
		{
			mat.SetFloat("_Mode", 0f);
			mat.SetInt("_SrcBlend", 1);
			mat.SetInt("_DstBlend", 0);
			mat.SetInt("_ZWrite", 1);
			mat.DisableKeyword("_ALPHATEST_ON");
			mat.DisableKeyword("_ALPHABLEND_ON");
			mat.DisableKeyword("_ALPHAPREMULTIPLY_ON");
			mat.SetFloat("_Metallic", 0f);
			mat.SetFloat("_Glossiness", 0f);
			mat.renderQueue = -1;
		}

		public static float SafeFactor(int index, int steps)
		{
			if (steps > 1)
			{
				return (float)index / ((float)steps - 1f);
			}
			return 0f;
		}

		public static void SetTransparent(Material mat)
		{
			mat.SetFloat("_Mode", 3f);
			mat.SetInt("_SrcBlend", 5);
			mat.SetInt("_DstBlend", 10);
			mat.SetInt("_ZWrite", 0);
			mat.DisableKeyword("_ALPHATEST_ON");
			mat.EnableKeyword("_ALPHABLEND_ON");
			mat.DisableKeyword("_ALPHAPREMULTIPLY_ON");
			mat.SetFloat("_Metallic", 0f);
			mat.SetFloat("_Glossiness", 0f);
			mat.renderQueue = 3000;
		}

		public static AssetBundle LoadBundle(string name)
		{
			Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name);
			if (manifestResourceStream == null)
			{
				return null;
			}
			return AssetBundle.LoadFromStream(manifestResourceStream);
		}

		public static int GetSafeColorID(int requestedID)
		{
			int i;
			for (i = requestedID; usedIDs.Contains(i); i++)
			{
			}
			usedIDs.Add(i);
			return i;
		}

		public static void InsertToGame(string name, Sprite icon, ColorPaletteCatagory[] kids)
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			UnitEditorColorPalette[] array = Resources.FindObjectsOfTypeAll<UnitEditorColorPalette>();
			foreach (UnitEditorColorPalette obj in array)
			{
				List<ParentCatagories> list = ((ParentCatagories[])obj.GetField<UnitEditorColorPalette>("m_ColorPalleteParentCatagories")).ToList();
				list.Add(new ParentCatagories
				{
					name = name,
					colorWheelSprite = icon,
					colorPaletteCatagories = kids
				});
				obj.SetField<UnitEditorColorPalette>("m_ColorPalleteParentCatagories", list.ToArray());
				obj.Initialize();
			}
		}
	}
}