using Robust.Shared.Utility; namespace Content.Client.SurveillanceCamera; public sealed class SurveillanceCameraMonitorSystem : EntitySystem { public override void Update(float frameTime) { var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var comp)) { comp.TimeLeft -= frameTime; if (comp.TimeLeft <= 0) { comp.OnFinish?.Invoke(); RemCompDeferred(uid); } } } public void AddTimer(EntityUid uid, Action onFinish) { var comp = EnsureComp(uid); comp.OnFinish = onFinish; } public void RemoveTimer(EntityUid uid) { RemCompDeferred(uid); } }