using System; using System.Numerics; using TMPro; using UnityEngine; using UnityEngine.UI; public static class Tools { public static Sprite GetIconForUser(BigInteger user) { if (user == 1) return Resources.Load("Icons/Icons/bird_-1"); else if (user == 2) return Resources.Load("Icons/Icons/bird_-2"); else if (user == 4) return Resources.Load("Icons/Icons/bird_-3"); else if (user == 3) return Resources.Load("Icons/Icons/bird_-4"); else return Resources.Load("Icons/Icons/bird_1"); } public static string FormatWithCommas(string number) { try { return FormatWithCommas(BigInteger.Parse(number)); } catch { return number; } } public static string FormatWithCommas(BigInteger number) { return string.Format("{0:N0}", number); } public static void UpdateStatusText(TMP_Text statusText, string message, Color color) { statusText.text = message; statusText.color = color; } public static void RenderFromBase64(string base64, Image targetImage) { byte[] imageData = Convert.FromBase64String(base64); Texture2D tex = new(2, 2, TextureFormat.ARGB32, false); if (!tex.LoadImage(imageData)) return; tex.filterMode = FilterMode.Point; tex.Apply(false, false); Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new UnityEngine.Vector2(0.5f, 0.5f)); targetImage.sprite = sprite; } public static void RenderFromBase64(string base64, SpriteRenderer targetImage) { byte[] imageData = Convert.FromBase64String(base64); Texture2D tex = new(2, 2, TextureFormat.ARGB32, false); if (!tex.LoadImage(imageData)) return; tex.filterMode = FilterMode.Point; tex.Apply(false, false); Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new UnityEngine.Vector2(0.5f, 0.5f)); targetImage.sprite = sprite; } public static void RefreshHierarchy(GameObject root) { foreach (Transform child in root.transform) RefreshHierarchy(child.gameObject); if (root.TryGetComponent(out var rect)) LayoutRebuilder.ForceRebuildLayoutImmediate(rect); } public static (string, string) FixIconData(string i) { int t = i.Length; int h = 128; int d = t - h; int a = d / 4; int b = h / 4; string D = string.Concat( i.Substring(0, a), i.Substring(a + b, a), i.Substring(a * 2 + b * 2, a), i.Substring(a * 3 + b * 3, d - a * 3) ); string H = string.Concat( i.Substring(a, b), i.Substring(a * 2 + b, b), i.Substring(a * 3 + b * 2, b), i.Substring(a * 4 + b * 3, b) ); return (D, H); } }