private static void SetItem(string item, int amount) { UIMenuColoredItem menuItem = new UIMenuColoredItem(item, Color.Gray, Color.Green); menuItem.SetRightLabel("~h~" + (amount > 0 ? "~g~" : "~r~") + amount); GlobalVariables.characterMenu.AddItem(menuItem); }
public ScriptManager() { KeyDown += onKeyDown; Tick += onTick; UI.Notify("Script manager loaded"); _menuPool = new MenuPool(); // var mainMenu = new UIMenu("Native UI", "~b~NATIVEUI SHOWCASE"); UIMenuColoredItem myItem = new UIMenuColoredItem("Simple Button", Color.White, Color.Black); myItem.TextColor = Color.Red; myItem.HighlightedTextColor = Color.Yellow; myMenu.AddItem(myItem); myMenu.AddItem(new UIMenuCheckboxItem("Simple Checkbox", false)); myMenu.AddItem(new UIMenuListItem("Simple List", new List <dynamic> { "Item 1", "Item 2", "Item 3" }, 0)); myMenu.AddItem(new UIMenuItem("Another Button", "Items can have descriptions too!")); _menuPool.Add(myMenu); //Sprite sprite = new Sprite("shopui_title_graphics_michael", "shopui_title_graphics_michael", Point.Empty, Size.Empty); //myMenu.SetBannerType(sprite); // var banner = new UIResRectangle(Point.Empty, Size.Empty, Color.FromArgb(255, 255, 255, 255)); //banner.Color = Color.FromArgb(255, 255, 255, 255); // myMenu.SetBannerType(banner); //myMenu.SetBannerType(banner); _menuPool.RefreshIndex(); KeyDown += (o, e) => { if (e.KeyCode == Keys.F5) // Our menu on/off switch { myMenu.Visible = !myMenu.Visible; } }; // myMenu.OnItemSelect += ItemSelectHandler; }
private void RefreshMenu() { myMenu.Clear(); UIMenuColoredItem item = new UIMenuColoredItem("Save Current Vehicle", Color.FromArgb(80, 80, 50, 80), Color.FromArgb(180, 205, 41, 255)); item.Description = $"Press Enter to save, {VehicleList.DeleteCarKeyCode} to repair."; item.SetLeftBadge(UIMenuItem.BadgeStyle.Star); myMenu.AddItem(item); foreach (var i in VehicleList.Vehicles) { item = new UIMenuColoredItem(i.VehicleHash.ToString() + " (" + i.PrimaryColor.ToString() + ")", Color.FromArgb(30, 50, 50, 50), Color.FromArgb(180, 234, 237, 64)); item.Description = $"Press Enter to spawn, {VehicleList.DeleteCarKeyCode} to delete."; item.SetLeftBadge(UIMenuItem.BadgeStyle.Car); myMenu.AddItem(item); } myMenu.RefreshIndex(); }
public UIMenuColoredItem AddColoredItem(UIMenu menu, string title, string desc, Color color1, Color color2, string rightLabel = "", UIMenuItem.BadgeStyle badge = UIMenuItem.BadgeStyle.None, bool isBadgeLeft = true) { var menuItem = new UIMenuColoredItem(title, desc, color1, color2); if (rightLabel != "") { menuItem.SetRightLabel(rightLabel); } if (isBadgeLeft) { menuItem.SetLeftBadge(badge); } else { menuItem.SetRightBadge(badge); } menu.AddItem(menuItem); return(menuItem); }
private void OnRenderCharacterList(object[] args) { if (args.Length < 2) { return; } _charList = JsonConvert.DeserializeObject <List <CharDisplay> >(args[0] as string); _selectedCharId = (int)args[1]; _charMenu = new MenuPool(); var p = new Point(1350, 200); var menu = new UIMenu("Char Select", "Select a character", p); _charMenu.Add(menu); foreach (var c in _charList) { var ch = new UIMenuItem($"{c.CharName}"); menu.AddItem(ch); } var spawnCharItem = new UIMenuColoredItem("Spawn Character", Color.DarkCyan, Color.LightBlue); menu.AddItem(spawnCharItem); var createCharItem = new UIMenuColoredItem("Create New Character", Color.CadetBlue, Color.LightBlue); menu.AddItem(createCharItem); menu.OnItemSelect += (sender, item, index) => { if (item == createCharItem) { Events.CallLocal("createchar"); _charMenu.CloseAllMenus(); return; } if (item == spawnCharItem) { if (_selectedCharId < 0) { return; } SpawnChar(null); _charMenu.CloseAllMenus(); return; } var selectedChar = _charList.Find(c => c.CharName == item.Text); SelectChar(new object[] { selectedChar.CharID }); }; menu.Visible = true; if (_selectedCharId >= 0) { SelectChar(new object[] { _selectedCharId }); } }
public Main() { // Initialize managers AmmoTypeManager.Init(); MaterialManager.Init(); ConversionManager.Init(); BenchManager.Init(); // NativeUI Point noBannerOffset = new Point(0, -107); UIResRectangle emptyBanner = new UIResRectangle(Point.Empty, Size.Empty, Color.Empty); // Main menu BenchMain = new UIMenu(string.Empty, "SELECT AN OPTION", noBannerOffset); BenchMain.SetBannerType(emptyBanner); // Generic list menu for displaying ammo types/bench materials, subtitle changes with BenchMain item selection BenchList = new UIMenu(string.Empty, "LIST MENU TITLE", noBannerOffset); BenchList.SetBannerType(emptyBanner); // Action menu, subtitle changes with BenchList item selection BenchAction = new UIMenu(string.Empty, "ACTION MENU TITLE", noBannerOffset); BenchAction.SetBannerType(emptyBanner); MaterialHeader = new UIMenuColoredItem("~b~MATERIAL", Color.Transparent, Color.Transparent); MaterialHeader.SetRightLabel("~b~BENCH"); MaterialHeader.Enabled = false; // Amount button AmountItem = new UIMenuItem("Amount"); AmountItem.SetRightLabel("Select..."); // Confirm button ConfirmItem = new UIMenuItem("Confirm"); ConfirmItem.SetLeftBadge(UIMenuItem.BadgeStyle.Tick); // Separators MaterialSeparator = new UIMenuColoredItem("TITLE", Color.Black, Color.Black); MaterialSeparator.Enabled = false; ActionSeparator = new UIMenuColoredItem("~b~ACTION", Color.Black, Color.Black); ActionSeparator.Enabled = false; // Menu relations BenchMain.BindMenuToItem(BenchList, new UIMenuItem("Craft Ammo")); BenchMain.BindMenuToItem(BenchList, new UIMenuItem("Dismantle Ammo")); BenchMain.BindMenuToItem(BenchList, new UIMenuItem("Bench Materials")); // Add menus to the menupool MenuPool.Add(BenchMain); MenuPool.Add(BenchList); MenuPool.Add(BenchAction); // Menu events BenchMain.OnItemSelect += BenchMain_OnItemSelect; BenchList.OnItemSelect += BenchList_OnItemSelect; AmountItem.Activated += AmountItem_Activated; ConfirmItem.Activated += ConfirmItem_Activated; // Events Tick += Main_Tick; Aborted += Main_Aborted; }
private void BenchList_OnItemSelect(UIMenu sender, UIMenuItem selectedItem, int index) { if (CurBench == null || !CanUseBench || CurListMode == ListMode.None || CurListMode == ListMode.Inventory) { return; } CurAmmoType = AmmoTypeManager.GetHashes()[index]; CurAmount = 0; BenchAction.RefreshIndex(); BenchAction.Clear(); CurCraftingAmounts.Clear(); MaterialMenuItems.Clear(); switch (CurListMode) { case ListMode.Crafting: BenchAction.Subtitle.Caption = $"~b~CRAFTING: ~s~{selectedItem.Text.ToUpperInvariant()}"; MaterialSeparator.Text = "~b~REQUIRES"; bool isMaxCapacity = Util.CalcAmmoCapacity(CurAmmoType) == 0; AmountItem.SetRightLabel(isMaxCapacity ? "Full" : "Select..."); BenchAction.AddItem(AmountItem); BenchAction.AddItem(MaterialSeparator); BenchAction.AddItem(MaterialHeader); // Crafting material display foreach (var material in ConversionManager.Conversions[CurAmmoType].CraftingMaterials) { UIMenuColoredItem item = new UIMenuColoredItem($"→ {material.Value} {MaterialManager.GetName(material.Key)}", Color.Transparent, Color.Transparent); item.SetRightLabel(CurBench.GetMaterialAmount(material.Key).ToString()); item.HighlightedTextColor = Color.WhiteSmoke; item.Enabled = false; MaterialMenuItems[material.Key] = item; BenchAction.AddItem(item); } BenchAction.AddItem(ActionSeparator); BenchAction.AddItem(ConfirmItem); AmountItem.Enabled = !isMaxCapacity; ConfirmItem.Enabled = false; break; case ListMode.Dismantling: BenchAction.Subtitle.Caption = $"~b~DISMANTLING: ~s~{selectedItem.Text.ToUpperInvariant()}"; MaterialSeparator.Text = "~b~GIVES"; bool canDismantle = Game.Player.Character.GetAmmoByType(CurAmmoType) > 0; AmountItem.SetRightLabel(canDismantle ? "Select..." : "No Ammo"); BenchAction.AddItem(AmountItem); BenchAction.AddItem(MaterialSeparator); BenchAction.AddItem(MaterialHeader); // Dismantling material display foreach (var material in ConversionManager.Conversions[CurAmmoType].BreakdownMaterials) { int min = material.Value.Item1; int max = material.Value.Item2; UIMenuColoredItem item = new UIMenuColoredItem($"→ {(min == max ? max.ToString() : $"{min}-{max}")} {MaterialManager.GetName(material.Key)}", Color.Transparent, Color.Transparent); item.SetRightLabel(CurBench.GetMaterialAmount(material.Key).ToString()); item.HighlightedTextColor = Color.WhiteSmoke; MaterialMenuItems[material.Key] = item; BenchAction.AddItem(item); } BenchAction.AddItem(ActionSeparator); BenchAction.AddItem(ConfirmItem); AmountItem.Enabled = canDismantle; ConfirmItem.Enabled = false; break; }