diff --git a/Content.Shared/Actions/SharedActionsSystem.cs b/Content.Shared/Actions/SharedActionsSystem.cs index 2a7bc39b90..d32bd23da0 100644 --- a/Content.Shared/Actions/SharedActionsSystem.cs +++ b/Content.Shared/Actions/SharedActionsSystem.cs @@ -58,6 +58,7 @@ public abstract class SharedActionsSystem : EntitySystem SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnGetState); + SubscribeLocalEvent(OnValidate); SubscribeLocalEvent(OnInstantValidate); SubscribeLocalEvent(OnEntityValidate); SubscribeLocalEvent(OnWorldValidate); @@ -316,19 +317,9 @@ public abstract class SharedActionsSystem : EntitySystem private void OnValidate(Entity ent, ref ActionValidateEvent args) { - if (ent.Comp.CheckConsciousness && !_actionBlocker.CanConsciouslyPerformAction(args.User)) - { + if ((ent.Comp.CheckConsciousness && !_actionBlocker.CanConsciouslyPerformAction(args.User)) + || (ent.Comp.CheckCanInteract && !_actionBlocker.CanInteract(args.User, null))) args.Invalid = true; - return; - } - - if (ent.Comp.CheckCanInteract && !_actionBlocker.CanInteract(args.User, null)) - { - args.Invalid = true; - return; - } - - // Event is not set here, only below } private void OnInstantValidate(Entity ent, ref ActionValidateEvent args)