This commit is contained in:
2026-01-22 23:30:03 -07:00
parent 74a1cad126
commit 45ddf20ba0

View File

@@ -158,83 +158,63 @@ public class IconMarketplaceDownloadIcon : MonoBehaviour
ShowStatus("Failed to make HTTP request");
return;
}
string response = request.downloadHandler.text;
if (response == "-999")
ShowStatus(null);
var jsonResponse = JObject.Parse(request.downloadHandler.text);
var icons = JsonConvert.DeserializeObject<MarketplaceIconType[]>(jsonResponse["data"].ToString());
var localUserID = BazookaManager.Instance.GetAccountID();
foreach (var entry in icons)
{
ShowStatus("Server error while fetching data");
}
else if (response == "-998")
{
ShowStatus("Client version too outdated to access servers");
}
else if (response == "-997")
{
ShowStatus("Encryption/decryption issues");
}
else if (response == "-996")
{
ShowStatus("Can't send requests on self-built instance");
}
else
{
ShowStatus(null);
var jsonResponse = JObject.Parse(response);
var icons = JsonConvert.DeserializeObject<MarketplaceIconType[]>(jsonResponse["data"].ToString());
var localUserID = BazookaManager.Instance.GetAccountID();
foreach (var entry in icons)
GameObject newIcon = Instantiate(sample, content.transform);
newIcon.name = "IconEntry";
Tools.RenderFromBase64(entry.Data, newIcon.transform.GetChild(0).GetChild(0).GetComponent<Image>());
newIcon.transform.GetChild(1).GetComponent<TMP_Text>().text = "Bird Name: " + entry.Name;
newIcon.transform.GetChild(2).GetComponent<TMP_Text>().text = "Price " + Tools.FormatWithCommas(entry.Price) + " coins";
newIcon.transform.GetChild(3).GetComponent<TMP_Text>().text = "Designer Name: " + entry.CreatorUsername;
var btnGrid = newIcon.transform.GetChild(4);
var buybtn = btnGrid.transform.GetChild(0).GetComponent<Button>();
var sellbtn = btnGrid.transform.GetChild(1).GetComponent<Button>();
var buyttnText = buybtn.transform.GetChild(0).GetComponent<TMP_Text>();
sellbtn.onClick.AddListener(() =>
{
GameObject newIcon = Instantiate(sample, content.transform);
newIcon.name = "IconEntry";
Tools.RenderFromBase64(entry.Data, newIcon.transform.GetChild(0).GetChild(0).GetComponent<Image>());
newIcon.transform.GetChild(1).GetComponent<TMP_Text>().text = "Bird Name: " + entry.Name;
newIcon.transform.GetChild(2).GetComponent<TMP_Text>().text = "Price " + Tools.FormatWithCommas(entry.Price) + " coins";
newIcon.transform.GetChild(3).GetComponent<TMP_Text>().text = "Designer Name: " + entry.CreatorUsername;
var btnGrid = newIcon.transform.GetChild(4);
var buybtn = btnGrid.transform.GetChild(0).GetComponent<Button>();
var sellbtn = btnGrid.transform.GetChild(1).GetComponent<Button>();
var buyttnText = buybtn.transform.GetChild(0).GetComponent<TMP_Text>();
sellbtn.onClick.AddListener(() =>
HandleSell(entry, buybtn, buyttnText, sellbtn, localUserID);
Tools.RefreshHierarchy(newIcon);
});
buybtn.onClick.AddListener(() =>
{
HandlePurchase(entry, buybtn, sellbtn, localUserID);
Tools.RefreshHierarchy(newIcon);
});
bool alreadyBought = BazookaManager.Instance.GetCustomBirdIconData().Data.Any(d => d.UUID == entry.UUID);
if (alreadyBought)
{
buybtn.interactable = false;
if (localUserID != entry.CreatorUserID)
{
HandleSell(entry, buybtn, buyttnText, sellbtn, localUserID);
Tools.RefreshHierarchy(newIcon);
});
buybtn.onClick.AddListener(() =>
{
HandlePurchase(entry, buybtn, sellbtn, localUserID);
Tools.RefreshHierarchy(newIcon);
});
bool alreadyBought = BazookaManager.Instance.GetCustomBirdIconData().Data.Any(d => d.UUID == entry.UUID);
if (alreadyBought)
{
buybtn.interactable = false;
if (localUserID != entry.CreatorUserID)
{
buyttnText.text = "Purchased";
sellbtn.gameObject.SetActive(true);
}
else
{
buyttnText.text = "Claimed";
}
buyttnText.text = "Purchased";
sellbtn.gameObject.SetActive(true);
}
else
{
if (localUserID != entry.CreatorUserID)
{
buyttnText.text = "Purchase";
}
else
{
buyttnText.text = "Claim";
}
buyttnText.text = "Claimed";
}
newIcon.SetActive(true);
Tools.RefreshHierarchy(newIcon);
}
else
{
if (localUserID != entry.CreatorUserID)
{
buyttnText.text = "Purchase";
}
else
{
buyttnText.text = "Claim";
}
}
newIcon.SetActive(true);
Tools.RefreshHierarchy(newIcon);
}
refreshButton.interactable = true;
optionsButton.interactable = true;