コード例 #1
0
        private void BenchMain_OnItemSelect(UIMenu sender, UIMenuItem selectedItem, int index)
        {
            if (CurBench == null || !CanUseBench)
            {
                return;
            }

            BenchList.RefreshIndex();
            BenchList.Clear();

            switch (index)
            {
            case 0:     // List ammo types for crafting
                BenchList.Subtitle.Caption = "~b~CRAFTING: ~s~SELECT AMMO";
                CurListMode = ListMode.Crafting;

                foreach (var ammoType in AmmoTypeManager.AmmoTypes)
                {
                    UIMenuItem item       = new UIMenuItem(ammoType.Value);
                    Conversion conversion = ConversionManager.GetConversion(ammoType.Key);

                    if (conversion == null)
                    {
                        item.Description = "Ammo type doesn't have conversion data.";
                        item.Enabled     = false;
                    }
                    else if (conversion.CraftingMaterials.Count == 0)
                    {
                        item.Description = "Ammo type doesn't have crafting data.";
                        item.Enabled     = false;
                    }

                    BenchList.BindMenuToItem(BenchAction, item);
                }

                break;

            case 1:     // List ammo types for dismantling
                BenchList.Subtitle.Caption = "~b~DISMANTLING: ~s~SELECT AMMO";
                CurListMode = ListMode.Dismantling;

                foreach (var ammoType in AmmoTypeManager.AmmoTypes)
                {
                    UIMenuItem item       = new UIMenuItem(ammoType.Value);
                    Conversion conversion = ConversionManager.GetConversion(ammoType.Key);

                    if (conversion == null)
                    {
                        item.Description = "Ammo type doesn't have conversion data.";
                        item.Enabled     = false;
                    }
                    else if (conversion.BreakdownMaterials.Count == 0)
                    {
                        item.Description = "Ammo type doesn't have dismantling data.";
                        item.Enabled     = false;
                    }

                    BenchList.BindMenuToItem(BenchAction, item);
                }

                break;

            case 2:     // Inventory
                BenchList.Subtitle.Caption = "BENCH INVENTORY";
                CurListMode = ListMode.Inventory;

                foreach (var material in MaterialManager.Materials)
                {
                    UIMenuItem item = new UIMenuItem(material.Value);
                    item.SetRightLabel(CurBench.GetMaterialAmount(material.Key).ToString());

                    BenchList.AddItem(item);
                }

                break;
            }
        }