diff --git a/Content.Client/ContextMenu/UI/EntityMenuUIController.cs b/Content.Client/ContextMenu/UI/EntityMenuUIController.cs
index b33366ee63..24ff87fc3e 100644
--- a/Content.Client/ContextMenu/UI/EntityMenuUIController.cs
+++ b/Content.Client/ContextMenu/UI/EntityMenuUIController.cs
@@ -216,16 +216,7 @@ namespace Content.Client.ContextMenu.UI
// 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;
}
@@ -234,16 +225,12 @@ namespace Content.Client.ContextMenu.UI
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);
+ }
}
}
@@ -256,20 +243,36 @@ namespace Content.Client.ContextMenu.UI
EntityMenuElement element = new();
ContextMenuPopup subMenu = new(_context, element);
- 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);
- }
+ AddGroupToMenu(group, subMenu);
UpdateElement(element);
_context.AddElement(_context.RootMenu, element);
}
+ ///
+ /// Add the group of entities to the menu
+ ///
+ private void AddGroupToMenu(List group, ContextMenuPopup menu)
+ {
+ foreach (var entity in group)
+ {
+ AddEntityToMenu(entity, menu);
+ }
+ }
+
+ ///
+ /// Add the entity to the menu
+ ///
+ 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);
+ }
+
///
/// Remove an entity from the entity context menu.
///