PortPipeNode.cs 1007 B

1234567891011121314151617181920212223242526272829303132
  1. using Robust.Shared.Map;
  2. using Robust.Shared.Map.Components;
  3. namespace Content.Server.NodeContainer.Nodes
  4. {
  5. [DataDefinition]
  6. public sealed partial class PortPipeNode : PipeNode
  7. {
  8. public override IEnumerable<Node> GetReachableNodes(TransformComponent xform,
  9. EntityQuery<NodeContainerComponent> nodeQuery,
  10. EntityQuery<TransformComponent> xformQuery,
  11. MapGridComponent? grid,
  12. IEntityManager entMan)
  13. {
  14. if (!xform.Anchored || grid == null)
  15. yield break;
  16. var gridIndex = grid.TileIndicesFor(xform.Coordinates);
  17. foreach (var node in NodeHelpers.GetNodesInTile(nodeQuery, grid, gridIndex))
  18. {
  19. if (node is PortablePipeNode)
  20. yield return node;
  21. }
  22. foreach (var node in base.GetReachableNodes(xform, nodeQuery, xformQuery, grid, entMan))
  23. {
  24. yield return node;
  25. }
  26. }
  27. }
  28. }