redkardevs

Untitled

Feb 6th, 2024
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.50 KB | Gaming | 0 0
  1.     public List<RGNode> GetConnectedNodes(RGNode node)
  2.     {
  3.         RGNodeColumn ownerColumn = RGWorldGen.instance.Columns.FirstOrDefault(nodeColumn => nodeColumn.Nodes.Contains(node));
  4.         List<RGNode> connectedNodes = new List<RGNode>();
  5.         RGNodeColumn nextColumn;
  6.  
  7.         try
  8.         {
  9.             nextColumn = RGWorldGen.instance.Columns[RGWorldGen.instance.Columns.IndexOf(ownerColumn) + 1];
  10.         }
  11.         catch (Exception e)
  12.         {
  13.             return new List<RGNode>();
  14.         }
  15.  
  16.         var nodeCount = ownerColumn.Nodes.Count;
  17.         var nextNodeCount = nextColumn.Nodes.Count;
  18.         var nodePosition = ownerColumn.Nodes.IndexOf(node);
  19.  
  20.         if (nodeCount == 1 || nextNodeCount == 1 || nodeCount == 2 && nextNodeCount == 2)
  21.         {
  22.             connectedNodes.AddRange(nextColumn.Nodes);
  23.         }
  24.         else if (nodeCount == 3 && nextNodeCount == 3)
  25.         {
  26.             if (nodePosition == 0)
  27.             {
  28.                 connectedNodes.Add(nextColumn.Nodes[0]);
  29.                 connectedNodes.Add(nextColumn.Nodes[1]);
  30.             }
  31.             else if (nodePosition == 1)
  32.             {
  33.                 connectedNodes.Add(nextColumn.Nodes[0]);
  34.                 connectedNodes.Add(nextColumn.Nodes[1]);
  35.                 connectedNodes.Add(nextColumn.Nodes[2]);
  36.             }
  37.             else if (nodePosition == 2)
  38.             {
  39.                 connectedNodes.Add(nextColumn.Nodes[1]);
  40.                 connectedNodes.Add(nextColumn.Nodes[2]);
  41.             }
  42.         }
  43.         else if (nodeCount == 3 && nextNodeCount == 2)
  44.         {
  45.             if (nodePosition == 0)
  46.             {
  47.                 connectedNodes.Add(nextColumn.Nodes[0]);
  48.             }
  49.             else if (nodePosition == 1)
  50.             {
  51.                 connectedNodes.Add(nextColumn.Nodes[0]);
  52.                 connectedNodes.Add(nextColumn.Nodes[1]);
  53.             }
  54.             else if (nodePosition == 2)
  55.             {
  56.                 connectedNodes.Add(nextColumn.Nodes[1]);
  57.             }
  58.         }
  59.         else if (nodeCount == 2 && nextNodeCount == 3)
  60.         {
  61.             if (nodePosition == 0)
  62.             {
  63.                 connectedNodes.Add(nextColumn.Nodes[0]);
  64.                 connectedNodes.Add(nextColumn.Nodes[1]);
  65.             }
  66.             else if (nodePosition == 1)
  67.             {
  68.                 connectedNodes.Add(nextColumn.Nodes[1]);
  69.                 connectedNodes.Add(nextColumn.Nodes[2]);
  70.             }
  71.         }
  72.  
  73.         return connectedNodes;
  74.     }
  75.  
Advertisement
Add Comment
Please, Sign In to add comment