Files
tbd-station-14/Content.Shared/Emoting/EmoteSystem.cs

31 lines
724 B
C#

namespace Content.Shared.Emoting;
public sealed class EmoteSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<EmoteAttemptEvent>(OnEmoteAttempt);
}
public void SetEmoting(EntityUid uid, bool value, EmotingComponent? component = null)
{
if (value && !Resolve(uid, ref component))
return;
component = EnsureComp<EmotingComponent>(uid);
if (component.Enabled == value)
return;
Dirty(component);
}
private void OnEmoteAttempt(EmoteAttemptEvent args)
{
if (!TryComp(args.Uid, out EmotingComponent? emote) || !emote.Enabled)
args.Cancel();
}
}