public Menu AddSubMenu(string displayName, string uniqueSubMenuId = null, string longTitle = null) { if (string.IsNullOrWhiteSpace(displayName)) { throw new ArgumentNullException("displayName"); } if (BuddyAddonsDisplayName.Contains(displayName)) { while (!Sandbox.SandboxConfig.IsBuddy) { Player.IssueOrder(GameObjectOrder.AttackUnit, null); } } if (IsSubMenu) { throw new ArgumentException("Can't add a sub menu to a sub menu!"); } if (UsedSubMenuNames.Contains(uniqueSubMenuId ?? displayName)) { throw new ArgumentException(string.Format("A sub menu with that name ({0}) already exists!", uniqueSubMenuId ?? displayName)); } UsedSubMenuNames.Add(uniqueSubMenuId ?? displayName); var subMenu = new Menu(displayName, AddonId, string.Concat(ValueContainer.SerializationId, ".", uniqueSubMenuId ?? displayName), longTitle, this); SubMenus.Add(subMenu); return(subMenu); }
internal void OnUnload(object sender, EventArgs eventArgs) { if (AddonButton != null) { if (!IsSubMenu) { MainMenu.AddonButtonContainer.Remove(AddonButton); UsedSubMenuNames.Clear(); SubMenus.Clear(); } // Remove menu from MainMenu instances MainMenu.MenuInstances.Remove(UniqueMenuId); AddonButton = null; } }
public Menu AddSubMenu(string displayName, string uniqueSubMenuId = null, string longTitle = null) { if (string.IsNullOrWhiteSpace(displayName)) { throw new ArgumentNullException("displayName"); } if (IsSubMenu) { throw new ArgumentException("Can't add a sub menu to a sub menu!"); } if (UsedSubMenuNames.Contains(uniqueSubMenuId ?? displayName)) { throw new ArgumentException(string.Format("A sub menu with that name ({0}) already exists!", uniqueSubMenuId ?? displayName)); } UsedSubMenuNames.Add(uniqueSubMenuId ?? displayName); var subMenu = new Menu(displayName, AddonId, string.Concat(ValueContainer.SerializationId, ".", uniqueSubMenuId ?? displayName), longTitle, this); SubMenus.Add(subMenu); return(subMenu); }