Exemple #1
0
 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>();
         }
     }
 }