Fix entity menu sometimes not opening properly. (#5673)

This commit is contained in:
Leon Friedrich
2021-12-03 14:37:52 +13:00
committed by GitHub
parent 665529f07b
commit b8a410a369

View File

@@ -1,7 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Content.Client.Examine; using Content.Client.Examine;
using Content.Client.Items.Managers;
using Content.Client.Verbs; using Content.Client.Verbs;
using Content.Client.Viewport; using Content.Client.Viewport;
using Content.Shared.CCVar; using Content.Shared.CCVar;
@@ -33,7 +32,6 @@ namespace Content.Client.ContextMenu.UI
public sealed partial class EntityMenuPresenter : ContextMenuPresenter public sealed partial class EntityMenuPresenter : ContextMenuPresenter
{ {
[Dependency] private readonly IEntitySystemManager _systemManager = default!; [Dependency] private readonly IEntitySystemManager _systemManager = default!;
[Dependency] private readonly IItemSlotManager _itemSlotManager = default!;
[Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IStateManager _stateManager = default!; [Dependency] private readonly IStateManager _stateManager = default!;
@@ -80,6 +78,10 @@ namespace Content.Client.ContextMenu.UI
/// </summary> /// </summary>
public void OpenRootMenu(List<IEntity> entities) public void OpenRootMenu(List<IEntity> entities)
{ {
// close any old menus first.
if (RootMenu.Visible)
Close();
var entitySpriteStates = GroupEntities(entities); var entitySpriteStates = GroupEntities(entities);
var orderedStates = entitySpriteStates.ToList(); var orderedStates = entitySpriteStates.ToList();
orderedStates.Sort((x, y) => string.CompareOrdinal(x.First().Prototype?.Name, y.First().Prototype?.Name)); orderedStates.Sort((x, y) => string.CompareOrdinal(x.First().Prototype?.Name, y.First().Prototype?.Name));