예제 #1
0
        private void setItemView(EquipmentIcon iconItem, InventoryIconModel <DCustomEquipment> dataModel)
        {
            bool isPlayerMember = Service.Get <CPDataEntityCollection>().IsLocalPlayerMember() || !model.InventoryData.IsEquipmentMemberOnly(dataModel.Data);

            iconItem.SetupView(dataModel, isPlayerMember);
            itemImageBuilder.RequestImage(dataModel.Data, iconItem.SetIcon);
        }
예제 #2
0
        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);
        }
예제 #3
0
 public void SetupView(InventoryIconModel <DCustomEquipment> iconData, bool isPlayerMember)
 {
     IconData    = iconData;
     EquipmentId = IconData.Id;
     activateSelected(iconData.IsEquipped);
     if (!isPlayerMember)
     {
         setMemberViews(canEquip: false);
     }
     else
     {
         setMemberViews(canEquip: true);
     }
     setBreadcrumbId();
 }
예제 #4
0
 public static bool IsCustomEquipmentOwned(CustomEquipment equipment)
 {
     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))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
예제 #5
0
        private bool onItemReady(EditableItemEvents.ItemReady evt)
        {
            int           index = evt.Index;
            EditableItem  item  = evt.Item;
            EquipmentIcon componentInChildren = item.GetComponentInChildren <EquipmentIcon>();

            switch (index)
            {
            case 0:
                item.ShowActionButton = false;
                componentInChildren.SetupCreateButton();
                break;

            case 1:
                item.ShowActionButton = false;
                componentInChildren.SetupCatalogButton();
                break;

            default:
            {
                componentInChildren.SetupEquipmentButton();
                long key = model.DisplayedInventory[index - 2];
                InventoryIconModel <DCustomEquipment> inventoryIconModel = model.InventoryData.Inventory[key];
                item.ShowActionButton = true;
                item.Action           = EditableItem.ActionType.Delete;
                if (templateDefinitions.TryGetValue(inventoryIconModel.Data.DefinitionId, out var value) && !value.IsEditable)
                {
                    if (inventoryIconModel.IsHidden)
                    {
                        item.Action = EditableItem.ActionType.Hide;
                    }
                    else
                    {
                        item.Action = EditableItem.ActionType.Show;
                    }
                }
                AccessibilitySettings component = componentInChildren.GetComponent <AccessibilitySettings>();
                if (component != null)
                {
                    component.CustomToken = value.Name;
                }
                setItemView(componentInChildren, inventoryIconModel);
                break;
            }
            }
            return(false);
        }