Deprecate IActionBlocker in favour of cancellable events (#4193)
* Deprecate IActionBlocker in favour of cancellable events * Bring back old speech/emoting component restrictions * Rename action blocker listener methods * Use Entity System public methods instead of extension methods Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
This commit is contained in:
14
Content.Shared/Emoting/EmoteAttemptEvent.cs
Normal file
14
Content.Shared/Emoting/EmoteAttemptEvent.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
namespace Content.Shared.Emoting
|
||||
{
|
||||
public class EmoteAttemptEvent : CancellableEntityEventArgs
|
||||
{
|
||||
public EmoteAttemptEvent(IEntity entity)
|
||||
{
|
||||
Entity = entity;
|
||||
}
|
||||
|
||||
public IEntity Entity { get; }
|
||||
}
|
||||
}
|
||||
22
Content.Shared/Emoting/EmoteSystem.cs
Normal file
22
Content.Shared/Emoting/EmoteSystem.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
namespace Content.Shared.Emoting
|
||||
{
|
||||
public class EmoteSystem : EntitySystem
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<EmoteAttemptEvent>(OnEmoteAttempt);
|
||||
}
|
||||
|
||||
private void OnEmoteAttempt(EmoteAttemptEvent ev)
|
||||
{
|
||||
if (!ev.Entity.HasComponent<SharedEmotingComponent>())
|
||||
{
|
||||
ev.Cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user