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; }