Prevent stacking pipes (#28308)

* prevent stacking pipes

* access

* notafet review

* notafet review pt. 2

* not the actual fix
This commit is contained in:
Nemanja
2024-05-27 18:37:27 -04:00
committed by GitHub
parent 984af3584f
commit 44b93e68ee
9 changed files with 170 additions and 23 deletions

View File

@@ -20,7 +20,7 @@ namespace Content.Server.NodeContainer.Nodes
/// The directions in which this pipe can connect to other pipes around it.
/// </summary>
[DataField("pipeDirection")]
private PipeDirection _originalPipeDirection;
public PipeDirection OriginalPipeDirection;
/// <summary>
/// The *current* pipe directions (accounting for rotation)
@@ -110,26 +110,26 @@ namespace Content.Server.NodeContainer.Nodes
return;
var xform = entMan.GetComponent<TransformComponent>(owner);
CurrentPipeDirection = _originalPipeDirection.RotatePipeDirection(xform.LocalRotation);
CurrentPipeDirection = OriginalPipeDirection.RotatePipeDirection(xform.LocalRotation);
}
bool IRotatableNode.RotateNode(in MoveEvent ev)
{
if (_originalPipeDirection == PipeDirection.Fourway)
if (OriginalPipeDirection == PipeDirection.Fourway)
return false;
// update valid pipe direction
if (!RotationsEnabled)
{
if (CurrentPipeDirection == _originalPipeDirection)
if (CurrentPipeDirection == OriginalPipeDirection)
return false;
CurrentPipeDirection = _originalPipeDirection;
CurrentPipeDirection = OriginalPipeDirection;
return true;
}
var oldDirection = CurrentPipeDirection;
CurrentPipeDirection = _originalPipeDirection.RotatePipeDirection(ev.NewRotation);
CurrentPipeDirection = OriginalPipeDirection.RotatePipeDirection(ev.NewRotation);
return oldDirection != CurrentPipeDirection;
}
@@ -142,12 +142,12 @@ namespace Content.Server.NodeContainer.Nodes
if (!RotationsEnabled)
{
CurrentPipeDirection = _originalPipeDirection;
CurrentPipeDirection = OriginalPipeDirection;
return;
}
var xform = entityManager.GetComponent<TransformComponent>(Owner);
CurrentPipeDirection = _originalPipeDirection.RotatePipeDirection(xform.LocalRotation);
CurrentPipeDirection = OriginalPipeDirection.RotatePipeDirection(xform.LocalRotation);
}
public override IEnumerable<Node> GetReachableNodes(TransformComponent xform,