1
0

ElectrocutionNode.cs 1001 B

123456789101112131415161718192021222324252627282930
  1. using Content.Server.NodeContainer;
  2. using Content.Server.NodeContainer.EntitySystems;
  3. using Content.Server.NodeContainer.Nodes;
  4. using Robust.Shared.Map.Components;
  5. namespace Content.Server.Electrocution
  6. {
  7. [DataDefinition]
  8. public sealed partial class ElectrocutionNode : Node
  9. {
  10. [DataField("cable")]
  11. public EntityUid? CableEntity;
  12. [DataField("node")]
  13. public string? NodeName;
  14. public override IEnumerable<Node> GetReachableNodes(TransformComponent xform,
  15. EntityQuery<NodeContainerComponent> nodeQuery,
  16. EntityQuery<TransformComponent> xformQuery,
  17. MapGridComponent? grid,
  18. IEntityManager entMan)
  19. {
  20. if (CableEntity == null || NodeName == null)
  21. yield break;
  22. var _nodeContainer = entMan.System<NodeContainerSystem>();
  23. if (_nodeContainer.TryGetNode(CableEntity.Value, NodeName, out Node? node))
  24. yield return node;
  25. }
  26. }
  27. }