Fix gas tank bug (#10197)
* Fix gas tank bug * avoid partial connects * Revert "avoid partial connects" This reverts commit 598a871442b74bfe05948e3df8ed47722315722d.
This commit is contained in:
@@ -213,13 +213,17 @@ namespace Content.Server.Atmos.EntitySystems
|
|||||||
UpdateUserInterface(component);
|
UpdateUserInterface(component);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DisconnectFromInternals(GasTankComponent component, EntityUid? owner = null)
|
public void DisconnectFromInternals(GasTankComponent component)
|
||||||
{
|
{
|
||||||
if (!component.IsConnected) return;
|
if (component.User == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var internals = GetInternalsComponent(component);
|
||||||
component.User = null;
|
component.User = null;
|
||||||
|
|
||||||
_actions.SetToggled(component.ToggleAction, false);
|
_actions.SetToggled(component.ToggleAction, false);
|
||||||
|
|
||||||
_internals.DisconnectTank(GetInternalsComponent(component, owner));
|
_internals.DisconnectTank(internals);
|
||||||
component.DisconnectStream?.Stop();
|
component.DisconnectStream?.Stop();
|
||||||
|
|
||||||
if (component.DisconnectSound != null)
|
if (component.DisconnectSound != null)
|
||||||
@@ -230,6 +234,7 @@ namespace Content.Server.Atmos.EntitySystems
|
|||||||
|
|
||||||
private InternalsComponent? GetInternalsComponent(GasTankComponent component, EntityUid? owner = null)
|
private InternalsComponent? GetInternalsComponent(GasTankComponent component, EntityUid? owner = null)
|
||||||
{
|
{
|
||||||
|
owner ??= component.User;
|
||||||
if (Deleted(component.Owner)) return null;
|
if (Deleted(component.Owner)) return null;
|
||||||
if (owner != null) return CompOrNull<InternalsComponent>(owner.Value);
|
if (owner != null) return CompOrNull<InternalsComponent>(owner.Value);
|
||||||
return _containers.TryGetContainingContainer(component.Owner, out var container)
|
return _containers.TryGetContainingContainer(component.Owner, out var container)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Content.Server.Atmos.Components;
|
using Content.Server.Atmos.Components;
|
||||||
using Content.Server.Atmos.EntitySystems;
|
using Content.Server.Atmos.EntitySystems;
|
||||||
using Content.Server.Body.Components;
|
using Content.Server.Body.Components;
|
||||||
using Content.Server.Hands.Systems;
|
using Content.Server.Hands.Systems;
|
||||||
@@ -79,7 +79,7 @@ public sealed class InternalsSystem : EntitySystem
|
|||||||
|
|
||||||
if (TryComp(component.GasTankEntity, out GasTankComponent? tank))
|
if (TryComp(component.GasTankEntity, out GasTankComponent? tank))
|
||||||
{
|
{
|
||||||
_gasTank.DisconnectFromInternals(tank, component.Owner);
|
_gasTank.DisconnectFromInternals(tank);
|
||||||
}
|
}
|
||||||
|
|
||||||
component.GasTankEntity = null;
|
component.GasTankEntity = null;
|
||||||
@@ -93,7 +93,7 @@ public sealed class InternalsSystem : EntitySystem
|
|||||||
|
|
||||||
if (TryComp(component.GasTankEntity, out GasTankComponent? tank))
|
if (TryComp(component.GasTankEntity, out GasTankComponent? tank))
|
||||||
{
|
{
|
||||||
_gasTank.DisconnectFromInternals(tank, component.Owner);
|
_gasTank.DisconnectFromInternals(tank);
|
||||||
}
|
}
|
||||||
|
|
||||||
component.GasTankEntity = tankEntity;
|
component.GasTankEntity = tankEntity;
|
||||||
|
|||||||
Reference in New Issue
Block a user