Internals are kept on as long as any breathing tool is on (#28595)

This commit is contained in:
Plykiya
2024-06-06 00:01:45 -07:00
committed by GitHub
parent 180f1e8005
commit dec1c281a8
5 changed files with 23 additions and 27 deletions

View File

@@ -10,21 +10,21 @@ public sealed partial class AtmosphereSystem
SubscribeLocalEvent<BreathToolComponent, ComponentShutdown>(OnBreathToolShutdown);
}
private void OnBreathToolShutdown(EntityUid uid, BreathToolComponent component, ComponentShutdown args)
private void OnBreathToolShutdown(Entity<BreathToolComponent> entity, ref ComponentShutdown args)
{
DisconnectInternals(component);
DisconnectInternals(entity);
}
public void DisconnectInternals(BreathToolComponent component)
public void DisconnectInternals(Entity<BreathToolComponent> entity)
{
var old = component.ConnectedInternalsEntity;
component.ConnectedInternalsEntity = null;
var old = entity.Comp.ConnectedInternalsEntity;
entity.Comp.ConnectedInternalsEntity = null;
if (TryComp<InternalsComponent>(old, out var internalsComponent))
{
_internals.DisconnectBreathTool((old.Value, internalsComponent));
_internals.DisconnectBreathTool((old.Value, internalsComponent), entity.Owner);
}
component.IsFunctional = false;
entity.Comp.IsFunctional = false;
}
}