コード例 #1
0
        public bool TryGetItemDetails(DentEntity itemEntity, out ReadOnlyItemDetails details)
        {
            details = default;

            return(dentBank.TryGetOutput(itemEntity, out var output) &&
                   EntityManager.HasComponent <ItemTargetAssetIdComponent>(output) &&
                   itemManager.TryGetDetails(EntityManager.GetSharedComponentData <ItemTargetAssetIdComponent>(output).Value.FullString, out details));
        }
コード例 #2
0
            private void showSelection(NativeArray <UnitDefinedEquipments> equipments, Entity entity, UIFullViewEquipment fullView)
            {
exit:
                if (exitRequested)
                {
                    for (var i = 0; i < fullView.rows.Length; i++)
                    {
                        var row = fullView.rows[i];
                        if (i == fullView.ModifyIndex && i != fullView.FocusedIndex)
                        {
                            row.SetFocus(false);
                            row.animator.Update(1);
                        }
                        else if (i == fullView.FocusedIndex)
                        {
                            row.gameObject.SetActive(true);

                            row.SetFocus(true);
                            row.animator.Update(1);
                        }

                        row.SetSelected(false);
                    }

                    fullView.ModifyIndex = -1;
                    return;
                }

                for (var i = 0; i < fullView.rows.Length; i++)
                {
                    var row = fullView.rows[i];
                    if (i != 0)
                    {
                        row.SetFocus(false);
                        row.animator.Update(1);

                        row.gameObject.SetActive(false);
                        continue;
                    }

                    row.gameObject.SetActive(true);
                    row.SetFocus(true);
                    row.SetSelected(true);

                    var equipment = equipments[fullView.ModifyIndex];

                    gameResourceMgr.TryGetResource(equipment.Attachment, out var attachRes);
                    if (!dentBank.TryGetItemDetails(equipment.Item, out var details))
                    {
                        details = new ReadOnlyItemDetails
                        {
                            MasterServerId           = "null",
                            DisplayNameFallback      = $"not found ({equipment.Item.ToString()})",
                            DisplayNameTranslationId = $"not found ({equipment.Item.ToString()})",
                            DescriptionFallback      = $"not found ({equipment.Item.ToString()})",
                            DescriptionTranslationId = $"not found ({equipment.Item.ToString()})",
                        };
                    }

                    row.SetName(details.DisplayNameFallback);
                    row.equipmentIcon.sprite = itemManager.GetSpriteOf(details.MasterServerId, currentItemPrefix);

                    var currentSelectedItem = row.inventory.Get(row.inventory.AbsoluteCursor);
                    if (currentSelectedItem.itemEntity.Equals(default) == false && enterInputDown)
コード例 #3
0
            private void showCarousel(NativeArray <UnitDefinedEquipments> equipments, Entity entity, UIFullViewEquipment fullView)
            {
                if (exitRequested)
                {
                    fullView.ExitAction();
                    return;
                }

                if (movInput.y != 0 && (fullView.TimeBeforeNextItemInput <= 0 || inputUpdate.y))
                {
                    fullView.TimeBeforeNextItemInput = 0.2f;
                    fullView.FocusedIndex           += -movInput.y;
                }

                if (fullView.FocusedIndex < 0)
                {
                    fullView.FocusedIndex = equipments.Length - 1;
                }
                else if (fullView.FocusedIndex >= equipments.Length)
                {
                    fullView.FocusedIndex = 0;
                }

                for (var i = 0; i < fullView.rows.Length; i++)
                {
                    var row = fullView.rows[i];
                    if (i >= equipments.Length)
                    {
                        row.gameObject.SetActive(false);
                        continue;
                    }

                    row.gameObject.SetActive(true);
                    row.SetFocus(fullView.FocusedIndex == i);

                    var equipment = equipments[i];

                    gameResourceMgr.TryGetResource(equipment.Attachment, out var attachRes);
                    if (!dentBank.TryGetItemDetails(equipment.Item, out var details))
                    {
                        dentBank.CallAndStoreLater(equipment.Item);

                        details = new ReadOnlyItemDetails
                        {
                            MasterServerId           = "null",
                            DisplayNameFallback      = $"not found ({equipment.Item.ToString()})",
                            DisplayNameTranslationId = $"not found ({equipment.Item.ToString()})",
                            DescriptionFallback      = $"not found ({equipment.Item.ToString()})",
                            DescriptionTranslationId = $"not found ({equipment.Item.ToString()})",
                        };
                    }

                    row.SetName(details.DisplayNameFallback);
                    row.equipmentIcon.sprite = itemManager.GetSpriteOf(details.MasterServerId, currentItemPrefix);

                    if (fullView.FocusedIndex == i && enterInputDown)
                    {
                        fullView.ModifyIndex = i;

                        fullView.InventoryTask = connector.RpcClient.SendRequest
                                                 <UnitOverviewGetRestrictedItemInventory, UnitOverviewGetRestrictedItemInventory.Response>
                                                     (new UnitOverviewGetRestrictedItemInventory
                        {
                            EntityTarget     = GetComponent <ReplicatedGameEntity>(entity).Source,
                            AttachmentTarget = attachRes.Value.ToString()
                        });
                    }
                }
            }