private void OpenUserInterface(EntityUid user, HealthAnalyzerComponent healthAnalyzer)
        {
            if (!TryComp <ActorComponent>(user, out var actor))
            {
                return;
            }

            healthAnalyzer.UserInterface?.Open(actor.PlayerSession);
        }
        private void OnAfterInteract(EntityUid uid, HealthAnalyzerComponent healthAnalyzer, AfterInteractEvent args)
        {
            if (healthAnalyzer.CancelToken != null)
            {
                healthAnalyzer.CancelToken.Cancel();
                healthAnalyzer.CancelToken = null;
                return;
            }

            if (args.Target == null)
            {
                return;
            }

            if (!args.CanReach)
            {
                return;
            }

            if (healthAnalyzer.CancelToken != null)
            {
                return;
            }

            if (!HasComp <MobStateComponent>(args.Target))
            {
                return;
            }

            healthAnalyzer.CancelToken = new CancellationTokenSource();
            _doAfterSystem.DoAfter(new DoAfterEventArgs(args.User, healthAnalyzer.ScanDelay, healthAnalyzer.CancelToken.Token, target: args.Target)
            {
                BroadcastFinishedEvent  = new TargetScanSuccessfulEvent(args.User, args.Target, healthAnalyzer),
                BroadcastCancelledEvent = new ScanCancelledEvent(healthAnalyzer),
                BreakOnTargetMove       = true,
                BreakOnUserMove         = true,
                BreakOnStun             = true,
                NeedHand = true
            });
        }
 private void HandleActivateInWorld(EntityUid uid, HealthAnalyzerComponent healthAnalyzer, ActivateInWorldEvent args)
 {
     OpenUserInterface(args.User, healthAnalyzer);
 }
 public TargetScanSuccessfulEvent(EntityUid user, EntityUid?target, HealthAnalyzerComponent component)
 {
     User      = user;
     Target    = target;
     Component = component;
 }
 public ScanCancelledEvent(HealthAnalyzerComponent healthAnalyzer)
 {
     HealthAnalyzer = healthAnalyzer;
 }