public static void ChangePenguinOutfit([NamedToggleValue(typeof(EquipmentNameGenerator), 0u)] int definitionId)
    {
        CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>();

        if (cPDataEntityCollection.TryGetComponent(cPDataEntityCollection.LocalPlayerHandle, out AvatarDetailsData component))
        {
            Dictionary <int, TemplateDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >();
            TemplateDefinition       templateDefinition     = dictionary[definitionId];
            AvatarDefinition         definitionByName       = Service.Get <AvatarService>().GetDefinitionByName("penguinAvatar");
            EquipmentModelDefinition equipmentDefinition    = definitionByName.GetEquipmentDefinition(templateDefinition.AssetName);
            DCustomEquipment         dCustomEquipment       = default(DCustomEquipment);
            dCustomEquipment.DefinitionId = templateDefinition.Id;
            dCustomEquipment.Name         = equipmentDefinition.Name;
            dCustomEquipment.Id           = 1L + (long)definitionId;
            dCustomEquipment.Parts        = new DCustomEquipmentPart[equipmentDefinition.Parts.Length];
            for (int i = 0; i < equipmentDefinition.Parts.Length; i++)
            {
                dCustomEquipment.Parts[i].SlotIndex = equipmentDefinition.Parts[i].SlotIndex;
                DCustomEquipmentDecal[] decals = new DCustomEquipmentDecal[0];
                dCustomEquipment.Parts[i].Decals = decals;
            }
            component.Outfit = new DCustomEquipment[1]
            {
                dCustomEquipment
            };
        }
    }
 private void renderRewardItem(long requestId, DCustomEquipment customEquipment)
 {
     itemImageBuilder = ItemImageBuilder.acquire();
     try
     {
         AbstractImageBuilder.CallbackToken callbackToken = default(AbstractImageBuilder.CallbackToken);
         callbackToken.Id           = requestId;
         callbackToken.DefinitionId = customEquipment.DefinitionId;
         itemImageBuilder.RequestImage(customEquipment, delegate(bool success, Texture2D texture, AbstractImageBuilder.CallbackToken token)
         {
             if (success)
             {
                 onIconReady(texture);
             }
             else
             {
                 cleanupItemImageBuilder();
             }
         }, callbackToken, itemIconBackgroundColor, itemIconPenguinColor);
     }
     catch (Exception ex)
     {
         Log.LogException(this, ex);
         cleanupItemImageBuilder();
     }
 }
Example #3
0
    public static DCustomEquipment[] ConvertResponseToOutfit(CustomEquipment[] outfit)
    {
        if (outfit == null)
        {
            return(new DCustomEquipment[0]);
        }
        DCustomEquipment[] array = new DCustomEquipment[outfit.Length];
        int num = 0;

        for (int i = 0; i < outfit.Length; i++)
        {
            try
            {
                array[num++] = ConvertResponseToCustomEquipment(outfit[i]);
            }
            catch (KeyNotFoundException)
            {
            }
        }
        if (num != array.Length)
        {
            DCustomEquipment[] array2 = new DCustomEquipment[num];
            Array.Copy(array, array2, num);
            return(array2);
        }
        return(array);
    }
Example #4
0
        public void SetUpButton(CatalogItemData catalogItemData, Color foreground, Color background, bool isCreatorNameHidden = false)
        {
            itemData = catalogItemData;
            DCustomEquipment equipment = CustomEquipmentResponseAdaptor.ConvertResponseToCustomEquipment(itemData.equipment);

            if (isCreatorNameHidden)
            {
                DisableName();
            }
            CreatorNameText.text = itemData.creatorName;
            CatalogItemIcon component = GetComponent <CatalogItemIcon>();

            AbstractImageBuilder.CallbackToken callbackToken = default(AbstractImageBuilder.CallbackToken);
            callbackToken.Id           = itemData.clothingCatalogItemId;
            callbackToken.DefinitionId = equipment.DefinitionId;
            base.itemImageBuilder.RequestImage(equipment, component.SetIcon, callbackToken, background, foreground);
            if (!isAlreadyOwned)
            {
                isAlreadyOwned = ((itemData.equipment.equipmentId != 0) ? true : false);
            }
            ItemOwned.SetActive(isAlreadyOwned);
            PriceTagText.text = itemData.cost.ToString();
            PriceTag.SetActive(!isAlreadyOwned);
            int definitionId = equipment.DefinitionId;
            Dictionary <int, TemplateDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >();
            TemplateDefinition templateDefinition           = dictionary.Values.ToList().First((TemplateDefinition x) => x.Id == definitionId);

            isMemberUnlocked = !templateDefinition.IsMemberOnly || Service.Get <CPDataEntityCollection>().IsLocalPlayerMember();
            if (!isMemberUnlocked)
            {
                MemberLock.SetActive(value: true);
            }
        }
    private bool onInventoryRetrieved(InventoryServiceEvents.InventoryLoaded evt)
    {
        Service.Get <EventDispatcher>().RemoveListener <InventoryServiceEvents.InventoryLoaded>(onInventoryRetrieved);
        DataEntityHandle localPlayerHandle = Service.Get <CPDataEntityCollection>().LocalPlayerHandle;

        if (!localPlayerHandle.IsNull)
        {
            InventoryData inventoryData = Service.Get <CPDataEntityCollection>().AddComponent <InventoryData>(localPlayerHandle);
            inventoryData.Inventory = new Dictionary <long, InventoryIconModel <DCustomEquipment> >();
            inventoryData.CurrentAvatarEquipment = new List <long>();
            for (int i = 0; i < evt.Inventory.Count; i++)
            {
                try
                {
                    DCustomEquipment data = CustomEquipmentResponseAdaptor.ConvertResponseToCustomEquipment(evt.Inventory[i]);
                    InventoryIconModel <DCustomEquipment> value = new InventoryIconModel <DCustomEquipment>(data.Id, data, isEquipped: false, isMemberItem: true);
                    inventoryData.Inventory.Add(data.Id, value);
                }
                catch (KeyNotFoundException)
                {
                }
            }
        }
        else
        {
            Log.LogError(this, "Unable to find the LocalPlayerHandle.");
        }
        if (callback != null)
        {
            callback();
            callback = null;
        }
        return(false);
    }
        private bool onPurchaseComplete(CatalogServiceEvents.ItemPurchaseCompleteEvent e)
        {
            int coins = Service.Get <CPDataEntityCollection>().GetComponent <CoinsData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle).Coins;

            if (e.Response.newCoinTotal < coins)
            {
                coins -= (int)e.Response.newCoinTotal;
                Service.Get <CPDataEntityCollection>().GetComponent <CoinsData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle).RemoveCoins(coins);
            }
            if (selectedItem.clothingCatalogItemId == purchaseItem.clothingCatalogItemId && buyPanel != null)
            {
                buyPanel.SetState(CatalogShopBuyPanelState.Success);
            }
            if (itemForPurchase.HasValue)
            {
                DCustomEquipment data = CustomEquipmentResponseAdaptor.ConvertResponseToCustomEquipment(itemForPurchase.Value);
                data.Id = e.Response.equipmentId;
                data.DateTimeCreated = DateTime.UtcNow.GetTimeInMilliseconds();
                DataEntityHandle localPlayerHandle = Service.Get <CPDataEntityCollection>().LocalPlayerHandle;
                InventoryData    component         = Service.Get <CPDataEntityCollection>().GetComponent <InventoryData>(localPlayerHandle);
                if (component != null)
                {
                    InventoryIconModel <DCustomEquipment> value = new InventoryIconModel <DCustomEquipment>(data.Id, data, isEquipped: false, isMemberItem: true);
                    component.Inventory.Add(data.Id, value);
                    Service.Get <NotificationBreadcrumbController>().AddPersistentBreadcrumb(BreadcrumbType, data.Id.ToString());
                }
                else
                {
                    Log.LogError(this, "Unable to locate InventoryData object.");
                }
            }
            Service.Get <CatalogServiceProxy>().cache.ClearCache();
            return(false);
        }
Example #7
0
 public DCatalogShopItem(int themeid, int id, string submitterName, TemplateDefinition template, DCustomEquipment customEquipment)
 {
     ThemeId         = themeid;
     Id              = id;
     SubmitterName   = submitterName;
     Template        = template;
     CustomEquipment = customEquipment;
 }
        public void RequestImage(DCustomEquipment equipment, RequestImageCallback callback)
        {
            CallbackToken callbackToken = default(CallbackToken);

            callbackToken.Id           = equipment.Id;
            callbackToken.DefinitionId = equipment.DefinitionId;
            RequestImage(equipment, callback, callbackToken, Color.clear, Color.clear);
        }
        private static string calcHash(DCustomEquipment data, Color backgroundColor, Color penguinColor)
        {
            StructHash structHash = default(StructHash);

            structHash.Combine(data.GetFullHash());
            structHash.Combine(backgroundColor);
            structHash.Combine(penguinColor);
            return(Convert.ToString(structHash));
        }
 public void Init(DCustomEquipment item)
 {
     submittedItem = item;
     if (ItemNameText != null)
     {
         TemplateDefinition templateDefinition = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >().Values.ToList().First((TemplateDefinition x) => x.Id == item.DefinitionId);
         ItemNameText.text = Service.Get <Localizer>().GetTokenTranslation(templateDefinition.Name);
     }
 }
        public void RemoveImageFromCache(DCustomEquipment equipment)
        {
            string hashName = calcHash(equipment, Color.clear, Color.clear);

            if (imageCache.ContainsImage(hashName))
            {
                imageCache.RemoveImage(hashName);
            }
        }
        private static DCustomOutfit createOutfit(DCustomEquipment equipment)
        {
            DCustomOutfit result = default(DCustomOutfit);

            result.LodLevel  = 0;
            result.Equipment = new DCustomEquipment[1] {
                equipment
            };
            return(result);
        }
Example #13
0
        private bool onEquipmentRemovedFromAvatar(InventoryModelEvents.EquipmentRemovedFromAvatar evt)
        {
            DCustomEquipment data = inventoryModel.InventoryData.Inventory[evt.EquipmentId].Data;

            if (!Model.RemoveEquipment(data.Name))
            {
                Log.LogErrorFormatted(this, "Equipment {0} was not removed from AvatarModel with id {1}.", data.Name, evt.EquipmentId);
            }
            inventoryModel.RemoveEquipmentById(evt.EquipmentId);
            return(false);
        }
Example #14
0
 public DCustomEquipment[] GetCurrentAvatarEquipment()
 {
     DCustomEquipment[] array = new DCustomEquipment[InventoryData.CurrentAvatarEquipment.Count];
     for (int i = 0; i < InventoryData.CurrentAvatarEquipment.Count; i++)
     {
         long             key  = InventoryData.CurrentAvatarEquipment[i];
         DCustomEquipment data = InventoryData.Inventory[key].Data;
         data.Name = data.Name.ToLower();
         array[i]  = data;
     }
     return(array);
 }
        private void applyEquipmentToMannequin(TemplateDefinition templateDefinition)
        {
            EquipmentModelDefinition equipmentDefinition = Model.Definition.GetEquipmentDefinition(templateDefinition.AssetName);

            currentTemplateDefition       = templateDefinition;
            currentEquipment              = default(DCustomEquipment);
            currentEquipment.DefinitionId = templateDefinition.Id;
            currentEquipment.Name         = templateDefinition.AssetName;
            totalRenders   = equipmentDefinition.Parts.Length;
            itemZoomOffset = templateDefinition.ZoomOffset;
            Model.ApplyEquipment(currentEquipment);
        }
Example #16
0
    public DCustomEquipment[] GetOutfitByIds(long[] equipmentIds)
    {
        List <DCustomEquipment> list = new List <DCustomEquipment>();

        for (int i = 0; i < equipmentIds.Length; i++)
        {
            if (InventoryData.Inventory.ContainsKey(equipmentIds[i]))
            {
                DCustomEquipment data = InventoryData.Inventory[equipmentIds[i]].Data;
                list.Add(data);
            }
        }
        return(list.ToArray());
    }
        public void RequestImage(DCustomEquipment equipment, RequestImageCallback callback, CallbackToken callbackToken, Color backgroundColor, Color penguinColor)
        {
            string           imageHash        = calcHash(equipment, backgroundColor, penguinColor);
            ItemRenderParams itemRenderParams = new ItemRenderParams();

            itemRenderParams.CallbackToken   = callbackToken;
            itemRenderParams.equipment       = equipment;
            itemRenderParams.BackgroundColor = backgroundColor;
            itemRenderParams.bodyColor       = penguinColor;
            itemRenderParams.ImageHash       = imageHash;
            ItemRenderParams renderParams = itemRenderParams;

            RequestImage(renderParams, callback);
        }
        private IEnumerator renderToTexture(ItemRenderParams param)
        {
            param.OutputTexture = null;
            DCustomEquipment equipment = param.equipment;
            int equipmentTemplateId    = equipment.DefinitionId;
            Dictionary <int, TemplateDefinition> templates = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >();

            if (!templates.ContainsKey(equipmentTemplateId))
            {
                Log.LogErrorFormatted(this, "Unable to locate template {0} in template definitions with id {1}.", equipment.Name, equipmentTemplateId);
                yield break;
            }
            TemplateDefinition templateDefinition = templates[equipmentTemplateId];
            AssetRequest <TemplateRenderData> templateRequest;

            try
            {
                templateRequest = Content.LoadAsync(templateDefinition.RenderDataKey);
            }
            catch (Exception)
            {
                Log.LogErrorFormatted(this, "Could not load render data for template definition {0} at {1}.", templateDefinition.Name, templateDefinition.RenderDataKey.Key);
                yield break;
            }
            if (templateRequest != null)
            {
                yield return(templateRequest);

                TemplateRenderData templateRenderData = templateRequest.Asset;
                penguin.transform.rotation = templateRenderData.ItemRotation;
                ModelRendererConfig config = new ModelRendererConfig(penguin.transform, templateRenderData.ItemPosition, new Vector2(256f, 256f))
                {
                    FieldOfView               = templateRenderData.CameraFOV,
                    FrameObjectInCamera       = false,
                    UseOcclusionCulling       = false,
                    AutoDestroyObjectToRender = false
                };
                if (param.BackgroundColor != Color.clear)
                {
                    config.CameraBackgroundColor = param.BackgroundColor;
                    config.UseSolidBackground    = true;
                }
                ModelRenderer modelRenderer = new ModelRenderer(config);
                modelRenderer.RotateCamera(templateRenderData.CameraRotation.eulerAngles);
                yield return(new WaitForEndOfFrame());

                param.OutputTexture = modelRenderer.Image;
                modelRenderer.Destroy();
            }
        }
        protected void SetEquipment()
        {
            DCustomEquipment  dCustomEquipment  = CustomEquipmentResponseAdaptor.ConvertResponseToCustomEquipment(ItemData.equipment);
            AvatarDetailsData avatarDetailsData = new AvatarDetailsData();

            DCustomEquipment[] outfit = ((dCustomEquipment.Parts.Length != 0) ? new DCustomEquipment[1] {
                dCustomEquipment
            } : new DCustomEquipment[0]);
            avatarDetailsData.Init(outfit);
            if (!Service.Get <CPDataEntityCollection>().LocalPlayerHandle.IsNull&& Service.Get <CPDataEntityCollection>().TryGetComponent <AvatarDetailsData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle, out var component))
            {
                avatarDetailsData.BodyColor = component.BodyColor;
            }
            AvatarRenderTextureComponent.RenderAvatar(avatarDetailsData);
        }
        public static DCustomEquipment[] ConvertResponseToOutfit(CustomEquipment[] outfit)
        {
            if (outfit == null)
            {
                return(new DCustomEquipment[0]);
            }
            DCustomEquipment[] array = new DCustomEquipment[outfit.Length];
            int num = 0;

            for (int i = 0; i < outfit.Length; i++)
            {
                try
                {
                    ref DCustomEquipment reference = ref array[num++];
                    reference = ConvertResponseToCustomEquipment(outfit[i]);
                }
Example #21
0
 public static bool TryGetDCustomEquipment(CustomEquipment equipment, out DCustomEquipment equipmentData)
 {
     if (Service.Get <CPDataEntityCollection>().TryGetComponent <InventoryData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle, out var component) && component.Inventory != null)
     {
         Dictionary <long, InventoryIconModel <DCustomEquipment> > .Enumerator enumerator = component.Inventory.GetEnumerator();
         while (enumerator.MoveNext())
         {
             InventoryIconModel <DCustomEquipment> value = enumerator.Current.Value;
             if (IsEquipmentEqual(value.Data, equipment))
             {
                 equipmentData = value.Data;
                 return(true);
             }
         }
     }
     equipmentData = default(DCustomEquipment);
     return(false);
 }
Example #22
0
 public static bool IsEquipmentEqual(DCustomEquipment equipment1, CustomEquipment equipment2)
 {
     if (equipment1.DefinitionId != equipment2.definitionId)
     {
         return(false);
     }
     if (equipment1.Parts.Length != equipment2.parts.Length)
     {
         return(false);
     }
     for (int i = 0; i < equipment1.Parts.Length; i++)
     {
         if (!IsEquipmentPartEqual(equipment1.Parts[i], equipment2.parts[i]))
         {
             return(false);
         }
     }
     return(true);
 }
Example #23
0
        private TagsArray[] getTagCollection(DCustomEquipment equipment)
        {
            List <TagDefinition[]> list = new List <TagDefinition[]>();

            TagDefinition[] equipmentTags = Service.Get <TagsManager>().GetEquipmentTags(equipment);
            if (equipmentTags.Length == 0)
            {
                return(new TagsArray[0]);
            }
            list.Add(equipmentTags);
            TagsArray[] array = new TagsArray[list.Count];
            int         num   = array.Length;

            for (int i = 0; i < num; i++)
            {
                array[i].TagDefinitions = list[i];
            }
            return(array);
        }
    private bool onInventoryRetrieved(InventoryServiceEvents.InventoryLoaded evt)
    {
        Service.Get <EventDispatcher>().RemoveListener <InventoryServiceEvents.InventoryLoaded>(onInventoryRetrieved);
        DataEntityHandle localPlayerHandle = Service.Get <CPDataEntityCollection>().LocalPlayerHandle;

        if (!localPlayerHandle.IsNull)
        {
            inventoryData           = Service.Get <CPDataEntityCollection>().AddComponent <InventoryData>(localPlayerHandle);
            inventoryData.Inventory = new Dictionary <long, InventoryIconModel <DCustomEquipment> >();
            inventoryData.CurrentAvatarEquipment = new List <long>();
            setTemplateData();
            for (int i = 0; i < evt.Inventory.Count; i++)
            {
                try
                {
                    DCustomEquipment data = CustomEquipmentResponseAdaptor.ConvertResponseToCustomEquipment(evt.Inventory[i]);
                    InventoryIconModel <DCustomEquipment> value = new InventoryIconModel <DCustomEquipment>(data.Id, data, isEquipped: false, isMemberItem: true);
                    inventoryData.Inventory.Add(data.Id, value);
                }
                catch (KeyNotFoundException)
                {
                }
            }
            if (Service.Get <CPDataEntityCollection>().TryGetComponent(localPlayerHandle, out AvatarDetailsData component) && component.Outfit != null)
            {
                DCustomOutfit currentAvatarEquipment = default(DCustomOutfit);
                currentAvatarEquipment.Equipment = component.Outfit;
                setCurrentAvatarEquipment(currentAvatarEquipment);
            }
        }
        else
        {
            Log.LogError(this, "Unable to find the LocalPlayerHandle.");
        }
        setDefaultScreen();
        string key = SceneTransitionService.SceneArgs.ShowCatalogOnEntry.ToString();

        if (Service.Get <SceneTransitionService>().HasSceneArg(key) && (bool)Service.Get <SceneTransitionService>().GetSceneArg(key))
        {
            showCatalog();
        }
        return(false);
    }
Example #25
0
 private void renderRewardItem(long requestId, DCustomEquipment customEquipment)
 {
     try
     {
         AbstractImageBuilder.CallbackToken callbackToken = default(AbstractImageBuilder.CallbackToken);
         callbackToken.Id           = requestId;
         callbackToken.DefinitionId = customEquipment.DefinitionId;
         itemImageBuilder.RequestImage(customEquipment, delegate(bool success, Texture2D texture, AbstractImageBuilder.CallbackToken token)
         {
             if (success)
             {
                 onIconReady(texture, 0);
             }
         }, callbackToken, Color.clear, Color.clear);
     }
     catch (Exception ex)
     {
         Log.LogException(this, ex);
     }
 }
        private void addChallengeItem(int currentThemeDataIndex)
        {
            GameObject gameObject = UnityEngine.Object.Instantiate(ChallengeItem);

            gameObject.transform.SetParent(scrollRectContent, worldPositionStays: false);
            CatalogChallengeItem component = gameObject.GetComponent <CatalogChallengeItem>();

            component.SetChallengeTheme(themes[currentThemeDataIndex], currentThemeDataIndex);
            CatalogItemIcon  component2       = gameObject.GetComponent <CatalogItemIcon>();
            CurrentThemeData currentThemeData = themes[currentThemeDataIndex];

            if (currentThemeData.mostPopularItem.HasValue)
            {
                DCustomEquipment equipment     = CustomEquipmentResponseAdaptor.ConvertResponseToCustomEquipment(currentThemeData.mostPopularItem.Value.equipment);
                Color[]          colorsByIndex = Service.Get <CatalogServiceProxy>().themeColors.GetColorsByIndex(currentThemeDataIndex);
                AbstractImageBuilder.CallbackToken callbackToken = default(AbstractImageBuilder.CallbackToken);
                callbackToken.Id           = ((equipment.Id == 0) ? currentThemeData.mostPopularItem.Value.clothingCatalogItemId : equipment.Id);
                callbackToken.DefinitionId = equipment.DefinitionId;
                base.itemImageBuilder.RequestImage(equipment, component2.SetIcon, callbackToken, Color.clear, colorsByIndex[0]);
            }
        }
Example #27
0
        public bool IsEquipmentMemberOnly(DCustomEquipment equipment)
        {
            Dictionary <int, TemplateDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >();

            if (dictionary.TryGetValue(equipment.DefinitionId, out var value))
            {
                if (value.IsMemberOnly)
                {
                    return(true);
                }
                Dictionary <int, FabricDefinition> dictionary2 = Service.Get <GameData>().Get <Dictionary <int, FabricDefinition> >();
                Dictionary <int, DecalDefinition>  dictionary3 = Service.Get <GameData>().Get <Dictionary <int, DecalDefinition> >();
                DCustomEquipmentPart[]             parts       = equipment.Parts;
                for (int i = 0; i < parts.Length; i++)
                {
                    if (parts[i].Decals == null)
                    {
                        continue;
                    }
                    for (int j = 0; j < parts[i].Decals.Length; j++)
                    {
                        DecalDefinition value3;
                        if (parts[i].Decals[j].Type == EquipmentDecalType.FABRIC)
                        {
                            if (dictionary2.TryGetValue(parts[i].Decals[j].DefinitionId, out var value2) && value2.IsMemberOnly)
                            {
                                return(true);
                            }
                        }
                        else if (dictionary3.TryGetValue(parts[i].Decals[j].DefinitionId, out value3) && value3.IsMemberOnly)
                        {
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
Example #28
0
    public TagDefinition[] GetEquipmentTags(DCustomEquipment equipment)
    {
        Dictionary <int, TemplateDefinition> dictionary  = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >();
        Dictionary <int, FabricDefinition>   dictionary2 = Service.Get <GameData>().Get <Dictionary <int, FabricDefinition> >();
        Dictionary <int, DecalDefinition>    dictionary3 = Service.Get <GameData>().Get <Dictionary <int, DecalDefinition> >();
        List <TagDefinition> list = new List <TagDefinition>();

        if (dictionary.TryGetValue(equipment.DefinitionId, out TemplateDefinition value))
        {
            list.AddRange(value.Tags);
            DCustomEquipmentPart[] parts = equipment.Parts;
            for (int i = 0; i < parts.Length; i++)
            {
                if (parts[i].Decals == null)
                {
                    continue;
                }
                for (int j = 0; j < parts[i].Decals.Length; j++)
                {
                    DecalDefinition value3;
                    if (parts[i].Decals[j].Type == EquipmentDecalType.FABRIC)
                    {
                        if (dictionary2.TryGetValue(parts[i].Decals[j].DefinitionId, out FabricDefinition value2))
                        {
                            list.AddRange(value2.Tags);
                        }
                    }
                    else if (dictionary3.TryGetValue(parts[i].Decals[j].DefinitionId, out value3))
                    {
                        list.AddRange(value3.Tags);
                    }
                }
            }
        }
        return(list.ToArray());
    }
        private bool onEquipmentCreated(InventoryServiceEvents.EquipmentCreated evt)
        {
            serviceEventChannel.RemoveListener <InventoryServiceEvents.EquipmentCreated>(onEquipmentCreated);
            serviceEventChannel.RemoveListener <InventoryServiceErrors.EquipmentCreationError>(onEquipmentCreationError);
            long             equipmentId          = evt.EquipmentId;
            DCustomEquipment customEquipmentModel = itemModel.CustomEquipmentModel;

            customEquipmentModel.Id = equipmentId;
            customEquipmentModel.DateTimeCreated = DateTime.UtcNow.GetTimeInMilliseconds();
            InventoryData component = Service.Get <CPDataEntityCollection>().GetComponent <InventoryData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle);

            if (component != null)
            {
                InventoryIconModel <DCustomEquipment> value = new InventoryIconModel <DCustomEquipment>(equipmentId, customEquipmentModel, isEquipped: false, isMemberItem: true);
                component.Inventory.Add(equipmentId, value);
            }
            else
            {
                Log.LogError(this, "Unable to locate InventoryData object.");
            }
            Service.Get <NotificationBreadcrumbController>().AddPersistentBreadcrumb(BreadcrumbType, equipmentId.ToString());
            CustomizationContext.EventBus.DispatchEvent(default(CustomizerUIEvents.SaveClothingItemSuccess));
            return(false);
        }
 public EquipmentAddedToAvatar(DCustomEquipment data)
 {
     Data = data;
 }