Files
tbd-station-14/Content.Server/Construction/Completions/RaiseEvent.cs
2022-05-13 17:59:03 +10:00

31 lines
884 B
C#

using Content.Shared.Construction;
using JetBrains.Annotations;
namespace Content.Server.Construction.Completions
{
[UsedImplicitly]
public sealed class RaiseEvent : IGraphAction
{
[DataField("event", required:true)]
public EntityEventArgs? Event { get; } = null;
[DataField("directed")]
public bool Directed { get; } = true;
[DataField("broadcast")]
public bool Broadcast { get; } = true;
public void PerformAction(EntityUid uid, EntityUid? userUid, IEntityManager entityManager)
{
if (Event == null || !Directed && !Broadcast)
return;
if(Directed)
entityManager.EventBus.RaiseLocalEvent(uid, (object)Event, false);
if(Broadcast)
entityManager.EventBus.RaiseEvent(EventSource.Local, (object)Event);
}
}
}