New custom icon system (not fully done yet)
This commit is contained in:
@@ -129,9 +129,9 @@ public class IconMarketplaceDownloadIcon : MonoBehaviour
|
||||
}
|
||||
}
|
||||
var currentIcons = new JArray();
|
||||
foreach (var icon in BazookaManager.Instance.GetCustomBirdIconData().Data)
|
||||
foreach (var icon in BazookaManager.Instance.GetCustomBirdIconData().Purchased)
|
||||
{
|
||||
currentIcons.Add(icon.UUID);
|
||||
currentIcons.Add(icon);
|
||||
}
|
||||
ShowStatus("Loading...");
|
||||
WWWForm dataForm = new();
|
||||
@@ -160,14 +160,14 @@ public class IconMarketplaceDownloadIcon : MonoBehaviour
|
||||
}
|
||||
ShowStatus(null);
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
var icons = JsonConvert.DeserializeObject<MarketplaceIconType[]>(jsonResponse["data"].ToString());
|
||||
var icons = JsonConvert.DeserializeObject<MarketplaceTempIcon[]>(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>());
|
||||
Tools.RenderFromBase64(Tools.FixIconData(entry.Data).Item1, 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;
|
||||
@@ -187,7 +187,7 @@ public class IconMarketplaceDownloadIcon : MonoBehaviour
|
||||
HandlePurchase(entry, buybtn, sellbtn, localUserID);
|
||||
Tools.RefreshHierarchy(newIcon);
|
||||
});
|
||||
bool alreadyBought = BazookaManager.Instance.GetCustomBirdIconData().Data.Any(d => d.UUID == entry.UUID);
|
||||
bool alreadyBought = BazookaManager.Instance.GetCustomBirdIconData().Purchased.Any(d => d == entry.ID);
|
||||
if (alreadyBought)
|
||||
{
|
||||
buybtn.interactable = false;
|
||||
@@ -221,7 +221,7 @@ public class IconMarketplaceDownloadIcon : MonoBehaviour
|
||||
backButton.interactable = true;
|
||||
}
|
||||
|
||||
void HandlePurchase(MarketplaceIconType data, Button button, Button sellButton, BigInteger? localUserID)
|
||||
void HandlePurchase(MarketplaceTempIcon data, Button button, Button sellButton, BigInteger? localUserID)
|
||||
{
|
||||
button.interactable = false;
|
||||
MarketplaceIconStorageType marketplaceIconStorage = BazookaManager.Instance.GetCustomBirdIconData();
|
||||
@@ -237,9 +237,7 @@ public class IconMarketplaceDownloadIcon : MonoBehaviour
|
||||
iconPurchaseSound.Stop();
|
||||
iconPurchaseSound.Play();
|
||||
}
|
||||
var list = marketplaceIconStorage.Data.ToList();
|
||||
list.Add(data);
|
||||
marketplaceIconStorage.Data = list.ToArray();
|
||||
marketplaceIconStorage.Purchased.Add(data.ID);
|
||||
if (localUserID != data.CreatorUserID)
|
||||
{
|
||||
button.transform.GetChild(0).GetComponent<TMP_Text>().text = "Purchased";
|
||||
@@ -253,29 +251,21 @@ public class IconMarketplaceDownloadIcon : MonoBehaviour
|
||||
BazookaManager.Instance.SetCustomBirdIconData(marketplaceIconStorage);
|
||||
}
|
||||
|
||||
void HandleSell(MarketplaceIconType data, Button buyBtn, TMP_Text buyttnText, Button sellButton, BigInteger? localUserID)
|
||||
void HandleSell(MarketplaceTempIcon data, Button buyBtn, TMP_Text buyttnText, Button sellButton, BigInteger? localUserID)
|
||||
{
|
||||
MarketplaceIconStorageType marketplaceIconStorage = BazookaManager.Instance.GetCustomBirdIconData();
|
||||
var list = marketplaceIconStorage.Data.ToList();
|
||||
var owned = list.FirstOrDefault(d => d.UUID == data.UUID);
|
||||
if (owned != null)
|
||||
var owned = marketplaceIconStorage.Purchased.Contains(data.ID);
|
||||
if (owned)
|
||||
{
|
||||
list.Remove(owned);
|
||||
marketplaceIconStorage.Data = list.ToArray();
|
||||
marketplaceIconStorage.Purchased.Remove(data.ID);
|
||||
marketplaceIconStorage.Balance += data.Price;
|
||||
if (data.UUID == marketplaceIconStorage.Selected) marketplaceIconStorage.Selected = null;
|
||||
if (data.ID == marketplaceIconStorage.Selected) marketplaceIconStorage.Selected = null;
|
||||
iconPurchaseSound.Stop();
|
||||
iconPurchaseSound.Play();
|
||||
balanceText.text = Tools.FormatWithCommas(marketplaceIconStorage.Balance);
|
||||
BazookaManager.Instance.SetCustomBirdIconData(marketplaceIconStorage);
|
||||
if (localUserID != data.CreatorUserID)
|
||||
{
|
||||
buyttnText.text = "Purchase";
|
||||
}
|
||||
else
|
||||
{
|
||||
buyttnText.text = "Claim";
|
||||
}
|
||||
if (localUserID != data.CreatorUserID) buyttnText.text = "Purchase";
|
||||
else buyttnText.text = "Claim";
|
||||
buyBtn.interactable = true;
|
||||
sellButton.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user