RaiseEvent.cs 916 B

123456789101112131415161718192021222324252627282930
  1. using Content.Shared.Construction;
  2. using JetBrains.Annotations;
  3. namespace Content.Server.Construction.Completions
  4. {
  5. [UsedImplicitly]
  6. public sealed partial class RaiseEvent : IGraphAction
  7. {
  8. [DataField("event", required:true)]
  9. public EntityEventArgs? Event { get; private set; }
  10. [DataField("directed")]
  11. public bool Directed { get; private set; } = true;
  12. [DataField("broadcast")]
  13. public bool Broadcast { get; private set; } = true;
  14. public void PerformAction(EntityUid uid, EntityUid? userUid, IEntityManager entityManager)
  15. {
  16. if (Event == null || !Directed && !Broadcast)
  17. return;
  18. if(Directed)
  19. entityManager.EventBus.RaiseLocalEvent(uid, (object)Event);
  20. if(Broadcast)
  21. entityManager.EventBus.RaiseEvent(EventSource.Local, (object)Event);
  22. }
  23. }
  24. }