using Robust.Shared.Utility; namespace Content.Client.SurveillanceCamera; public sealed class SurveillanceCameraMonitorSystem : EntitySystem { public override void Update(float frameTime) { foreach (var comp in EntityQuery()) { if (Paused(comp.Owner)) { continue; } comp.TimeLeft -= frameTime; if (comp.TimeLeft <= 0 || Deleted(comp.Owner)) { if (comp.OnFinish != null) { comp.OnFinish(); } EntityManager.RemoveComponentDeferred(comp.Owner); } } } public void AddTimer(EntityUid uid, Action onFinish) { var comp = EnsureComp(uid); comp.OnFinish = onFinish; } public void RemoveTimer(EntityUid uid) { EntityManager.RemoveComponentDeferred(uid); } }