New custom icon system (not fully done yet)

This commit is contained in:
2026-01-24 16:06:03 -07:00
parent ca4d78d711
commit 42b67e9e06
23 changed files with 647 additions and 532 deletions

View File

@@ -44,8 +44,6 @@ public class LeaderboardsMenu : MonoBehaviour
[SerializeField] private GameObject totalBerriesContent;
[SerializeField] private GameObject totalBerriesSampleObject;
[SerializeField] private Dictionary<string, string> customIcons;
void Awake()
{
selectionScoreButton.onClick.AddListener(() => SwitchMenu(1));
@@ -222,8 +220,7 @@ public class LeaderboardsMenu : MonoBehaviour
var jsonResponse = JObject.Parse(response);
if ((bool)jsonResponse["success"])
{
var entries = (JObject)jsonResponse["data"]["entries"];
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
var entries = (JObject)jsonResponse["data"];
foreach (var prop in entries.Properties())
{
JObject entry = (JObject)prop.Value;
@@ -255,27 +252,12 @@ public class LeaderboardsMenu : MonoBehaviour
if (customIcon == null)
{
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
if (icon == 1)
{
playerIcon.sprite = Tools.GetIconForUser(uid);
}
if (icon == 1) playerIcon.sprite = Tools.GetIconForUser(uid);
playerOverlayIcon.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlay);
if (overlay == 0)
{
playerOverlayIcon.gameObject.SetActive(false);
}
else if (overlay == 8)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
}
else if (overlay == 11)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
}
else if (overlay == 13)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
}
if (overlay != 0) playerOverlayIcon.gameObject.SetActive(true);
if (overlay == 8) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
else if (overlay == 11) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
else if (overlay == 13) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
try
{
playerIcon.color = new Color((int)birdColor[0] / 255f, (int)birdColor[1] / 255f, (int)birdColor[2] / 255f);
@@ -287,11 +269,7 @@ public class LeaderboardsMenu : MonoBehaviour
playerOverlayIcon.color = Color.white;
}
}
else
{
Tools.RenderFromBase64(customIcons[customIcon], playerIcon);
playerOverlayIcon.gameObject.SetActive(false);
}
else playerIcon.gameObject.AddComponent<WaitingForCustomIcon>().ID = customIcon;
playerIconButton.onClick.AddListener(async () =>
{
var clone = Instantiate(profilePrefab.gameObject, profilePrefab.gameObject.transform.parent);
@@ -300,6 +278,7 @@ public class LeaderboardsMenu : MonoBehaviour
});
entryInfo.SetActive(true);
}
CustomIconLoader.Init(FindObjectsByType<WaitingForCustomIcon>(FindObjectsSortMode.None));
}
else
{
@@ -346,8 +325,7 @@ public class LeaderboardsMenu : MonoBehaviour
var jsonResponse = JObject.Parse(response);
if ((bool)jsonResponse["success"])
{
var entries = (JObject)jsonResponse["data"]["entries"];
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
var entries = (JObject)jsonResponse["data"];
foreach (var prop in entries.Properties())
{
JObject entry = (JObject)prop.Value;
@@ -379,27 +357,12 @@ public class LeaderboardsMenu : MonoBehaviour
if (customIcon == null)
{
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
if (icon == 1)
{
playerIcon.sprite = Tools.GetIconForUser(uid);
}
if (icon == 1) playerIcon.sprite = Tools.GetIconForUser(uid);
playerOverlayIcon.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlay);
if (overlay == 0)
{
playerOverlayIcon.gameObject.SetActive(false);
}
else if (overlay == 8)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
}
else if (overlay == 11)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
}
else if (overlay == 13)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
}
if (overlay != 0) playerOverlayIcon.gameObject.SetActive(true);
if (overlay == 8) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
else if (overlay == 11) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
else if (overlay == 13) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
try
{
playerIcon.color = new Color((int)birdColor[0] / 255f, (int)birdColor[1] / 255f, (int)birdColor[2] / 255f);
@@ -411,11 +374,7 @@ public class LeaderboardsMenu : MonoBehaviour
playerOverlayIcon.color = Color.white;
}
}
else
{
Tools.RenderFromBase64(customIcons[customIcon], playerIcon);
playerOverlayIcon.gameObject.SetActive(false);
}
else playerIcon.gameObject.AddComponent<WaitingForCustomIcon>().ID = customIcon;
playerIconButton.onClick.AddListener(async () =>
{
var clone = Instantiate(profilePrefab.gameObject, profilePrefab.gameObject.transform.parent);
@@ -424,6 +383,7 @@ public class LeaderboardsMenu : MonoBehaviour
});
entryInfo.SetActive(true);
}
CustomIconLoader.Init(FindObjectsByType<WaitingForCustomIcon>(FindObjectsSortMode.None));
}
else
{
@@ -470,8 +430,7 @@ public class LeaderboardsMenu : MonoBehaviour
var jsonResponse = JObject.Parse(response);
if ((bool)jsonResponse["success"])
{
var entries = (JObject)jsonResponse["data"]["entries"];
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
var entries = (JObject)jsonResponse["data"];
foreach (var prop in entries.Properties())
{
JObject entry = (JObject)prop.Value;
@@ -503,27 +462,12 @@ public class LeaderboardsMenu : MonoBehaviour
if (customIcon == null)
{
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
if (icon == 1)
{
playerIcon.sprite = Tools.GetIconForUser(uid);
}
if (icon == 1) playerIcon.sprite = Tools.GetIconForUser(uid);
playerOverlayIcon.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlay);
if (overlay == 0)
{
playerOverlayIcon.gameObject.SetActive(false);
}
else if (overlay == 8)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
}
else if (overlay == 11)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
}
else if (overlay == 13)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
}
if (overlay != 0) playerOverlayIcon.gameObject.SetActive(true);
if (overlay == 8) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
else if (overlay == 11) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
else if (overlay == 13) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
try
{
playerIcon.color = new Color((int)birdColor[0] / 255f, (int)birdColor[1] / 255f, (int)birdColor[2] / 255f);
@@ -535,11 +479,7 @@ public class LeaderboardsMenu : MonoBehaviour
playerOverlayIcon.color = Color.white;
}
}
else
{
Tools.RenderFromBase64(customIcons[customIcon], playerIcon);
playerOverlayIcon.gameObject.SetActive(false);
}
else playerIcon.gameObject.AddComponent<WaitingForCustomIcon>().ID = customIcon;
playerIconButton.onClick.AddListener(async () =>
{
var clone = Instantiate(profilePrefab.gameObject, profilePrefab.gameObject.transform.parent);
@@ -548,6 +488,7 @@ public class LeaderboardsMenu : MonoBehaviour
});
entryInfo.SetActive(true);
}
CustomIconLoader.Init(FindObjectsByType<WaitingForCustomIcon>(FindObjectsSortMode.None));
}
else
{
@@ -593,8 +534,7 @@ public class LeaderboardsMenu : MonoBehaviour
var jsonResponse = JObject.Parse(response);
if ((bool)jsonResponse["success"])
{
var entries = (JObject)jsonResponse["data"]["entries"];
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
var entries = (JObject)jsonResponse["data"];
foreach (var prop in entries.Properties())
{
JObject entry = (JObject)prop.Value;
@@ -626,27 +566,12 @@ public class LeaderboardsMenu : MonoBehaviour
if (customIcon == null)
{
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
if (icon == 1)
{
playerIcon.sprite = Tools.GetIconForUser(uid);
}
if (icon == 1) playerIcon.sprite = Tools.GetIconForUser(uid);
playerOverlayIcon.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlay);
if (overlay == 0)
{
playerOverlayIcon.gameObject.SetActive(false);
}
else if (overlay == 8)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
}
else if (overlay == 11)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
}
else if (overlay == 13)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
}
if (overlay != 0) playerOverlayIcon.gameObject.SetActive(true);
if (overlay == 8) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
else if (overlay == 11) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
else if (overlay == 13) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
try
{
playerIcon.color = new Color((int)birdColor[0] / 255f, (int)birdColor[1] / 255f, (int)birdColor[2] / 255f);
@@ -658,11 +583,7 @@ public class LeaderboardsMenu : MonoBehaviour
playerOverlayIcon.color = Color.white;
}
}
else
{
Tools.RenderFromBase64(customIcons[customIcon], playerIcon);
playerOverlayIcon.gameObject.SetActive(false);
}
else playerIcon.gameObject.AddComponent<WaitingForCustomIcon>().ID = customIcon;
playerIconButton.onClick.AddListener(async () =>
{
var clone = Instantiate(profilePrefab.gameObject, profilePrefab.gameObject.transform.parent);
@@ -671,6 +592,7 @@ public class LeaderboardsMenu : MonoBehaviour
});
entryInfo.SetActive(true);
}
CustomIconLoader.Init(FindObjectsByType<WaitingForCustomIcon>(FindObjectsSortMode.None));
}
else
{
@@ -718,8 +640,7 @@ public class LeaderboardsMenu : MonoBehaviour
var jsonResponse = JObject.Parse(response);
if ((bool)jsonResponse["success"])
{
var entries = (JObject)jsonResponse["data"]["entries"];
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
var entries = (JObject)jsonResponse["data"];
foreach (var prop in entries.Properties())
{
JObject entry = (JObject)prop.Value;
@@ -751,27 +672,12 @@ public class LeaderboardsMenu : MonoBehaviour
if (customIcon == null)
{
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
if (icon == 1)
{
playerIcon.sprite = Tools.GetIconForUser(uid);
}
if (icon == 1) playerIcon.sprite = Tools.GetIconForUser(uid);
playerOverlayIcon.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlay);
if (overlay == 0)
{
playerOverlayIcon.gameObject.SetActive(false);
}
else if (overlay == 8)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
}
else if (overlay == 11)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
}
else if (overlay == 13)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
}
if (overlay != 0) playerOverlayIcon.gameObject.SetActive(true);
if (overlay == 8) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
else if (overlay == 11) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
else if (overlay == 13) playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
try
{
playerIcon.color = new Color((int)birdColor[0] / 255f, (int)birdColor[1] / 255f, (int)birdColor[2] / 255f);
@@ -783,11 +689,7 @@ public class LeaderboardsMenu : MonoBehaviour
playerOverlayIcon.color = Color.white;
}
}
else
{
Tools.RenderFromBase64(customIcons[customIcon], playerIcon);
playerOverlayIcon.gameObject.SetActive(false);
}
else playerIcon.gameObject.AddComponent<WaitingForCustomIcon>().ID = customIcon;
playerIconButton.onClick.AddListener(async () =>
{
var clone = Instantiate(profilePrefab.gameObject, profilePrefab.gameObject.transform.parent);
@@ -796,6 +698,7 @@ public class LeaderboardsMenu : MonoBehaviour
});
entryInfo.SetActive(true);
}
CustomIconLoader.Init(FindObjectsByType<WaitingForCustomIcon>(FindObjectsSortMode.None));
}
else
{