From 27ddf004b860984659d0233fc539481dbe2d4a33 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Mon, 2 Feb 2026 18:15:52 -0700 Subject: [PATCH] Make icon marketplace use cache --- Assets/Scripts/CustomIconLoader.cs | 2 +- .../IconMarketplaceDownloadIcon.cs | 3 +- .../Scripts/Types/MarketplaceIconWithData.cs | 35 +++++++++++++++++++ .../Types/MarketplaceIconWithData.cs.meta | 2 ++ Assets/Scripts/Types/MarketplaceTempIcon.cs | 8 ----- 5 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 Assets/Scripts/Types/MarketplaceIconWithData.cs create mode 100644 Assets/Scripts/Types/MarketplaceIconWithData.cs.meta diff --git a/Assets/Scripts/CustomIconLoader.cs b/Assets/Scripts/CustomIconLoader.cs index e18def1..4b51231 100644 --- a/Assets/Scripts/CustomIconLoader.cs +++ b/Assets/Scripts/CustomIconLoader.cs @@ -29,7 +29,7 @@ public class CustomIconLoader : MonoBehaviour var jsonResponse = JObject.Parse(request.downloadHandler.text); if ((bool)jsonResponse["success"]) { - var icons = jsonResponse["data"].ToObject(); + var icons = jsonResponse["data"].ToObject(); foreach (var icon in icons) BazookaManager.Instance.iconCache.Add(new MarketplaceIcon { ID = icon.ID, Data = icon.Data }); } Debug.Log($"Downloaded {iconsToDownload.Count} custom icons"); diff --git a/Assets/Scripts/IconMarketplace/IconMarketplaceDownloadIcon.cs b/Assets/Scripts/IconMarketplace/IconMarketplaceDownloadIcon.cs index c875054..b58b4ca 100644 --- a/Assets/Scripts/IconMarketplace/IconMarketplaceDownloadIcon.cs +++ b/Assets/Scripts/IconMarketplace/IconMarketplaceDownloadIcon.cs @@ -170,7 +170,7 @@ public class IconMarketplaceDownloadIcon : MonoBehaviour { GameObject newIcon = Instantiate(sample, content.transform); newIcon.name = "IconEntry"; - Tools.RenderFromBase64(entry.Data, newIcon.transform.GetChild(0).GetChild(0).GetComponent()); + newIcon.transform.GetChild(0).GetChild(0).gameObject.AddComponent().ID = entry.ID; newIcon.transform.GetChild(1).GetComponent().text = "Icon Name: " + entry.Name; newIcon.transform.GetChild(2).GetComponent().text = "Price " + Tools.FormatWithCommas(entry.Price) + " coins"; newIcon.transform.GetChild(3).GetComponent().text = "Designer Name: " + entry.CreatorUsername; @@ -213,6 +213,7 @@ public class IconMarketplaceDownloadIcon : MonoBehaviour newIcon.SetActive(true); Tools.RefreshHierarchy(newIcon); } + CustomIconLoader.Init(FindObjectsByType(FindObjectsSortMode.None)); refreshButton.interactable = true; optionsButton.interactable = true; backButton.interactable = true; diff --git a/Assets/Scripts/Types/MarketplaceIconWithData.cs b/Assets/Scripts/Types/MarketplaceIconWithData.cs new file mode 100644 index 0000000..40125db --- /dev/null +++ b/Assets/Scripts/Types/MarketplaceIconWithData.cs @@ -0,0 +1,35 @@ +using System.Numerics; +using Newtonsoft.Json; +using UnityEngine.Scripting; + +[Preserve] +public class MarketplaceIconWithData +{ + [Preserve] + [JsonProperty("username")] + public string CreatorUsername { get; set; } + + [Preserve] + [JsonProperty("userid")] + public BigInteger CreatorUserID { get; set; } + + [Preserve] + [JsonProperty("data")] + public string Data { get; set; } + + [Preserve] + [JsonProperty("hash")] + public string Hash { get; set; } + + [Preserve] + [JsonProperty("id")] + public string ID { get; set; } + + [Preserve] + [JsonProperty("price")] + public BigInteger Price { get; set; } + + [Preserve] + [JsonProperty("name")] + public string Name { get; set; } +} \ No newline at end of file diff --git a/Assets/Scripts/Types/MarketplaceIconWithData.cs.meta b/Assets/Scripts/Types/MarketplaceIconWithData.cs.meta new file mode 100644 index 0000000..eb72be6 --- /dev/null +++ b/Assets/Scripts/Types/MarketplaceIconWithData.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1717a2bf1d6b2463faf2ef7fde6d3129 \ No newline at end of file diff --git a/Assets/Scripts/Types/MarketplaceTempIcon.cs b/Assets/Scripts/Types/MarketplaceTempIcon.cs index 5a2d36f..722bf96 100644 --- a/Assets/Scripts/Types/MarketplaceTempIcon.cs +++ b/Assets/Scripts/Types/MarketplaceTempIcon.cs @@ -13,10 +13,6 @@ public class MarketplaceTempIcon [JsonProperty("userid")] public BigInteger CreatorUserID { get; set; } - [Preserve] - [JsonProperty("data")] - public string Data { get; set; } - [Preserve] [JsonProperty("id")] public string ID { get; set; } @@ -25,10 +21,6 @@ public class MarketplaceTempIcon [JsonProperty("price")] public BigInteger Price { get; set; } - [Preserve] - [JsonProperty("buyable")] - public bool Buyable { get; set; } - [Preserve] [JsonProperty("name")] public string Name { get; set; }