Exemplo n.º 1
0
        public void SetOptionsFromInteractor(Interactor activator)
        {
            if (!activator)
            {
                return;
            }
            var body = activator.GetComponent <CharacterBody>();

            if (!body || !body.inventory)
            {
                return;
            }
            var opts = new List <PickupPickerController.Option>();

            for (int i = 0; i < body.inventory.itemAcquisitionOrder.Count; i++)
            {
                var iind = body.inventory.itemAcquisitionOrder[i];
                var idef = ItemCatalog.GetItemDef(iind);
                var pind = PickupCatalog.FindPickupIndex(iind);
                if (idef && pind != PickupIndex.none && idef.canRemove && !idef.hidden && !blacklistedItems.Contains(idef))
                {
                    opts.Add(new PickupPickerController.Option {
                        available   = true,
                        pickupIndex = pind
                    });
                }
            }
            ppc.SetOptionsServer(opts.ToArray());
        }
Exemplo n.º 2
0
        private static void SetPickupPickerControllerAspectOptions(PickupPickerController controller, PickupDef pickupDef)
        {
            List <PickupPickerController.Option> options = new List <PickupPickerController.Option>();

            if (pickupDef.itemIndex != ItemIndex.None)
            {
                foreach (ItemIndex itemIndex in Catalog.aspectItemIndexes)
                {
                    bool valid     = !Catalog.disabledItemIndexes.Contains(itemIndex);
                    bool available = !Run.instance.IsItemExpansionLocked(itemIndex);

                    if (valid && available)
                    {
                        PickupIndex pickupIndex = PickupCatalog.FindPickupIndex(itemIndex);
                        options.Add(new PickupPickerController.Option {
                            available = true, pickupIndex = pickupIndex
                        });
                    }
                }
            }
            else if (pickupDef.equipmentIndex != EquipmentIndex.None)
            {
                foreach (EquipmentIndex equipIndex in Catalog.aspectEquipIndexes)
                {
                    bool available = !Run.instance.IsEquipmentExpansionLocked(equipIndex);

                    if (available)
                    {
                        PickupIndex pickupIndex = PickupCatalog.FindPickupIndex(equipIndex);
                        options.Add(new PickupPickerController.Option {
                            available = true, pickupIndex = pickupIndex
                        });
                    }
                }
            }
            else
            {
                options.Add(new PickupPickerController.Option {
                    available = true, pickupIndex = pickupDef.pickupIndex
                });
            }

            controller.SetOptionsServer(options.ToArray());
        }