using Content.Shared.MedicalScanner;
using Content.Shared.Verbs;
using Robust.Server.GameObjects;
+using Robust.Shared.Containers;
using Robust.Shared.Timing;
using SharedToolSystem = Content.Shared.Tools.Systems.SharedToolSystem;
SubscribeLocalEvent<CryoPodComponent, GasAnalyzerScanEvent>(OnGasAnalyzed);
SubscribeLocalEvent<CryoPodComponent, ActivatableUIOpenAttemptEvent>(OnActivateUIAttempt);
SubscribeLocalEvent<CryoPodComponent, AfterActivatableUIOpenEvent>(OnActivateUI);
+ SubscribeLocalEvent<CryoPodComponent, EntRemovedFromContainerMessage>(OnEjected);
}
public override void Update(float frameTime)
TryComp<TemperatureComponent>(entity.Comp.BodyContainer.ContainedEntity, out var temp);
TryComp<BloodstreamComponent>(entity.Comp.BodyContainer.ContainedEntity, out var bloodstream);
+ if (TryComp<HealthAnalyzerComponent>(entity, out var healthAnalyzer))
+ {
+ healthAnalyzer.ScannedEntity = entity.Comp.BodyContainer.ContainedEntity;
+ }
+
_userInterfaceSystem.TrySendUiMessage(
entity.Owner,
HealthAnalyzerUiKey.Key,
args.GasMixtures = gasMixDict;
}
+ private void OnEjected(Entity<CryoPodComponent> cryoPod, ref EntRemovedFromContainerMessage args)
+ {
+ if (TryComp<HealthAnalyzerComponent>(cryoPod.Owner, out var healthAnalyzer))
+ {
+ healthAnalyzer.ScannedEntity = null;
+ }
+
+ // if body is ejected - no need to display health-analyzer
+ _uiSystem.TryCloseAll(cryoPod.Owner, HealthAnalyzerUiKey.Key);
+ }
+
#endregion
}