SurveillanceCameraMonitorSystem.cs 939 B

12345678910111213141516171819202122232425262728293031323334
  1. using Robust.Shared.Utility;
  2. namespace Content.Client.SurveillanceCamera;
  3. public sealed class SurveillanceCameraMonitorSystem : EntitySystem
  4. {
  5. public override void Update(float frameTime)
  6. {
  7. var query = EntityQueryEnumerator<ActiveSurveillanceCameraMonitorVisualsComponent>();
  8. while (query.MoveNext(out var uid, out var comp))
  9. {
  10. comp.TimeLeft -= frameTime;
  11. if (comp.TimeLeft <= 0)
  12. {
  13. comp.OnFinish?.Invoke();
  14. RemCompDeferred<ActiveSurveillanceCameraMonitorVisualsComponent>(uid);
  15. }
  16. }
  17. }
  18. public void AddTimer(EntityUid uid, Action onFinish)
  19. {
  20. var comp = EnsureComp<ActiveSurveillanceCameraMonitorVisualsComponent>(uid);
  21. comp.OnFinish = onFinish;
  22. }
  23. public void RemoveTimer(EntityUid uid)
  24. {
  25. RemCompDeferred<ActiveSurveillanceCameraMonitorVisualsComponent>(uid);
  26. }
  27. }