Fixes airlock autoclose, adds a sanity check to welding doors shut. (#3211)
* removes unused door var, sanity checks welding * Fixes doors failing to autoclose.
This commit is contained in:
@@ -67,13 +67,6 @@ namespace Content.Server.GameObjects.Components.Doors
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The amount of time the door has been open. Used to automatically close the door if it autocloses.
|
|
||||||
/// </summary>
|
|
||||||
[ViewVariables]
|
|
||||||
private float _openTimeCounter;
|
|
||||||
[ViewVariables(VVAccess.ReadWrite)]
|
|
||||||
|
|
||||||
private static readonly TimeSpan AutoCloseDelay = TimeSpan.FromSeconds(5);
|
private static readonly TimeSpan AutoCloseDelay = TimeSpan.FromSeconds(5);
|
||||||
|
|
||||||
private CancellationTokenSource? _stateChangeCancelTokenSource;
|
private CancellationTokenSource? _stateChangeCancelTokenSource;
|
||||||
@@ -441,7 +434,6 @@ namespace Content.Server.GameObjects.Components.Doors
|
|||||||
public void Close()
|
public void Close()
|
||||||
{
|
{
|
||||||
State = DoorState.Closing;
|
State = DoorState.Closing;
|
||||||
_openTimeCounter = 0;
|
|
||||||
|
|
||||||
// no more autoclose; we ARE closed
|
// no more autoclose; we ARE closed
|
||||||
_autoCloseCancelTokenSource?.Cancel();
|
_autoCloseCancelTokenSource?.Cancel();
|
||||||
@@ -573,7 +565,7 @@ namespace Content.Server.GameObjects.Components.Doors
|
|||||||
|
|
||||||
var realCloseTime = _doorCheck.GetCloseSpeed() ?? AutoCloseDelay;
|
var realCloseTime = _doorCheck.GetCloseSpeed() ?? AutoCloseDelay;
|
||||||
|
|
||||||
Owner.SpawnTimer(realCloseTime, async () =>
|
Owner.SpawnRepeatingTimer(realCloseTime, async () =>
|
||||||
{
|
{
|
||||||
if (CanCloseGeneric())
|
if (CanCloseGeneric())
|
||||||
{
|
{
|
||||||
@@ -628,6 +620,12 @@ namespace Content.Server.GameObjects.Components.Doors
|
|||||||
_beingWelded = true;
|
_beingWelded = true;
|
||||||
if(await welder.UseTool(eventArgs.User, Owner, 3f, ToolQuality.Welding, 3f, () => CanWeldShut))
|
if(await welder.UseTool(eventArgs.User, Owner, 3f, ToolQuality.Welding, 3f, () => CanWeldShut))
|
||||||
{
|
{
|
||||||
|
// just in case
|
||||||
|
if (!CanWeldShut)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
_beingWelded = false;
|
_beingWelded = false;
|
||||||
IsWeldedShut = !IsWeldedShut;
|
IsWeldedShut = !IsWeldedShut;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user