1
0

AtmosphereSystem.BreathTool.cs 893 B

123456789101112131415161718192021222324252627282930
  1. using Content.Server.Atmos.Components;
  2. using Content.Server.Body.Components;
  3. namespace Content.Server.Atmos.EntitySystems;
  4. public sealed partial class AtmosphereSystem
  5. {
  6. private void InitializeBreathTool()
  7. {
  8. SubscribeLocalEvent<BreathToolComponent, ComponentShutdown>(OnBreathToolShutdown);
  9. }
  10. private void OnBreathToolShutdown(Entity<BreathToolComponent> entity, ref ComponentShutdown args)
  11. {
  12. DisconnectInternals(entity);
  13. }
  14. public void DisconnectInternals(Entity<BreathToolComponent> entity)
  15. {
  16. var old = entity.Comp.ConnectedInternalsEntity;
  17. entity.Comp.ConnectedInternalsEntity = null;
  18. if (TryComp<InternalsComponent>(old, out var internalsComponent))
  19. {
  20. _internals.DisconnectBreathTool((old.Value, internalsComponent), entity.Owner);
  21. }
  22. entity.Comp.IsFunctional = false;
  23. }
  24. }