public void Init(PropDefinition def) { consumableType = def.GetNameOnServer(); consumableCost = def.Cost; Title.text = Service.Get <Localizer>().GetTokenTranslation(def.Name); if (def.Shareable) { ShareableIcon.SetActive(value: true); } Content.LoadAsync(onIconLoaded, def.GetIconContentKey()); SelectButton.onClick.AddListener(onSelected); setInventoryCount(Service.Get <CPDataEntityCollection>().GetComponent <ConsumableInventoryData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle).ConsumableInventory); Service.Get <CPDataEntityCollection>().GetComponent <ConsumableInventoryData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle).OnConsumableInventoryChanged += setInventoryCount; breadcrumb.SetBreadcrumbId($"Consumable_{def.GetNameOnServer()}"); }
public void Init(PropDefinition def) { definition = def; Title.text = Service.Get <Localizer>().GetTokenTranslation(def.Name); Content.LoadAsync(onIconLoaded, def.GetIconContentKey()); SelectButton.onClick.AddListener(onSelected); if (def.ExperienceType == PropDefinition.ConsumableExperience.PartyGameLobby) { breadcrumb.SetBreadcrumbId(PartyGameBreadcrumbType, definition.Id.ToString()); TutorialBreadcrumb.SetBreadcrumbId($"PartyGame_{definition.Id}"); } else if (def.PropType == PropDefinition.PropTypes.Consumable) { breadcrumb.SetBreadcrumbId(ConsumableBreadcrumbType, definition.Id.ToString()); TutorialBreadcrumb.SetBreadcrumbId($"Consumable_{definition.Id}"); } else { breadcrumb.SetBreadcrumbId(GearBreadcrumbType, definition.Id.ToString()); TutorialBreadcrumb.SetBreadcrumbId($"Gear_{definition.Id}"); } ConsumableInventory consumableInventory = Service.Get <CPDataEntityCollection>().GetComponent <ConsumableInventoryData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle).ConsumableInventory; if (consumableInventory.inventoryMap.ContainsKey(definition.GetNameOnServer())) { int itemCount = consumableInventory.inventoryMap[definition.GetNameOnServer()].GetItemCount(); if (itemCount == 0) { ItemCountIcon.SetActive(value: false); } else { ItemCountIcon.SetActive(value: true); ItemCountIcon.GetComponentInChildren <Text>().text = itemCount.ToString(); } } else { ItemCountIcon.SetActive(value: false); } if (def.PropType == PropDefinition.PropTypes.Durable) { showSelectedState(); } }
private void onInventoryChanged(ConsumableInventory inventory) { foreach (KeyValuePair <string, InventoryItemStock> item in inventory.inventoryMap) { if (inventoryItems.ContainsKey(item.Key)) { if (item.Value.GetItemCount() > 0) { if (inventoryItems.ContainsKey(item.Key)) { inventoryItems[item.Key].SetCount(item.Value.GetItemCount()); } } else { Object.Destroy(inventoryItems[item.Key]); inventoryItems.Remove(item.Key); } } else if (item.Value.GetItemCount() > 0) { PropDefinition propDefinition = Service.Get <PropService>().Props[item.Key]; GameObject gameObject = Object.Instantiate(inventoryItemPrefab); gameObject.transform.SetParent(ContentPanel.transform, worldPositionStays: false); gameObject.GetComponent <MarketplaceInventoryItem>().Init(itemSprites[propDefinition.GetIconContentKey().Key.ToLower()], propDefinition, item.Value.GetItemCount()); inventoryItems[item.Key] = gameObject.GetComponent <MarketplaceInventoryItem>(); } } }