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; } }