// If there is only a single group. We will just directly list individual entities
if (entityGroups.Count == 1)
{
- foreach (var entity in entityGroups[0])
- {
- var element = new EntityMenuElement(entity);
- element.SubMenu = new ContextMenuPopup(_context, element);
- element.SubMenu.OnPopupOpen += () => _verb.OpenVerbMenu(entity, popup: element.SubMenu);
- element.SubMenu.OnPopupHide += element.SubMenu.MenuBody.DisposeAllChildren;
-
- _context.AddElement(_context.RootMenu, element);
- Elements.TryAdd(entity, element);
- }
+ AddGroupToMenu(entityGroups[0], _context.RootMenu);
return;
}
if (group.Count > 1)
{
AddGroupToUI(group);
- continue;
}
-
- // this group only has a single entity, add a simple menu element
- var element = new EntityMenuElement(group[0]);
- element.SubMenu = new ContextMenuPopup(_context, element);
- element.SubMenu.OnPopupOpen += () => _verb.OpenVerbMenu(group[0], popup: element.SubMenu);
- element.SubMenu.OnPopupHide += element.SubMenu.MenuBody.DisposeAllChildren;
- _context.AddElement(_context.RootMenu, element);
- Elements.TryAdd(group[0], element);
+ else
+ {
+ // this group only has a single entity, add a simple menu element
+ AddEntityToMenu(group[0], _context.RootMenu);
+ }
}
}
EntityMenuElement element = new();
ContextMenuPopup subMenu = new(_context, element);
+ AddGroupToMenu(group, subMenu);
+
+ UpdateElement(element);
+ _context.AddElement(_context.RootMenu, element);
+ }
+
+ /// <summary>
+ /// Add the group of entities to the menu
+ /// </summary>
+ private void AddGroupToMenu(List<EntityUid> group, ContextMenuPopup menu)
+ {
foreach (var entity in group)
{
- var subElement = new EntityMenuElement(entity);
- subElement.SubMenu = new ContextMenuPopup(_context, subElement);
- subElement.SubMenu.OnPopupOpen += () => _verb.OpenVerbMenu(entity, popup: subElement.SubMenu);
- subElement.SubMenu.OnPopupHide += subElement.SubMenu.MenuBody.DisposeAllChildren;
- _context.AddElement(subMenu, subElement);
- Elements.TryAdd(entity, subElement);
+ AddEntityToMenu(entity, menu);
}
+ }
- UpdateElement(element);
- _context.AddElement(_context.RootMenu, element);
+ /// <summary>
+ /// Add the entity to the menu
+ /// </summary>
+ private void AddEntityToMenu(EntityUid entity, ContextMenuPopup menu)
+ {
+ var element = new EntityMenuElement(entity);
+ element.SubMenu = new ContextMenuPopup(_context, element);
+ element.SubMenu.OnPopupOpen += () => _verb.OpenVerbMenu(entity, popup: element.SubMenu);
+ element.SubMenu.OnPopupHide += element.SubMenu.MenuBody.DisposeAllChildren;
+ _context.AddElement(menu, element);
+ Elements.TryAdd(entity, element);
}
/// <summary>