diff --git a/Content.Client/GameObjects/EntitySystems/VerbSystem.cs b/Content.Client/GameObjects/EntitySystems/VerbSystem.cs index aab42dc0af..6ec02a898f 100644 --- a/Content.Client/GameObjects/EntitySystems/VerbSystem.cs +++ b/Content.Client/GameObjects/EntitySystems/VerbSystem.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Reflection; using System.Threading; using Content.Client.State; @@ -129,6 +130,11 @@ namespace Content.Client.GameObjects.EntitySystems continue; } + if (entity.GetAllComponents().Any(s => !s.ShowContextMenu(playerEntity))) + { + continue; + } + if (ContainerHelpers.TryGetContainer(entity, out var container) && !container.ShowContents) { continue; diff --git a/Content.Shared/GameObjects/Components/Pointing/SharedPointingArrowComponent.cs b/Content.Shared/GameObjects/Components/Pointing/SharedPointingArrowComponent.cs index 4bca8f7007..fcd0e152c4 100644 --- a/Content.Shared/GameObjects/Components/Pointing/SharedPointingArrowComponent.cs +++ b/Content.Shared/GameObjects/Components/Pointing/SharedPointingArrowComponent.cs @@ -1,9 +1,16 @@ -using Robust.Shared.GameObjects; +using Content.Shared.GameObjects.Verbs; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; namespace Content.Shared.GameObjects.Components.Pointing { - public class SharedPointingArrowComponent : Component + public class SharedPointingArrowComponent : Component, IShowContextMenu { public sealed override string Name => "PointingArrow"; + + public bool ShowContextMenu(IEntity examiner) + { + return false; + } } } diff --git a/Content.Shared/GameObjects/Verbs/IShowContextMenu.cs b/Content.Shared/GameObjects/Verbs/IShowContextMenu.cs new file mode 100644 index 0000000000..3e51ad13d0 --- /dev/null +++ b/Content.Shared/GameObjects/Verbs/IShowContextMenu.cs @@ -0,0 +1,9 @@ +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.Verbs +{ + public interface IShowContextMenu : IComponent + { + bool ShowContextMenu(IEntity examiner); + } +}