Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public List<RGNode> GetConnectedNodes(RGNode node)
- {
- RGNodeColumn ownerColumn = RGWorldGen.instance.Columns.FirstOrDefault(nodeColumn => nodeColumn.Nodes.Contains(node));
- List<RGNode> connectedNodes = new List<RGNode>();
- RGNodeColumn nextColumn;
- try
- {
- nextColumn = RGWorldGen.instance.Columns[RGWorldGen.instance.Columns.IndexOf(ownerColumn) + 1];
- }
- catch (Exception e)
- {
- return new List<RGNode>();
- }
- var nodeCount = ownerColumn.Nodes.Count;
- var nextNodeCount = nextColumn.Nodes.Count;
- var nodePosition = ownerColumn.Nodes.IndexOf(node);
- if (nodeCount == 1 || nextNodeCount == 1 || nodeCount == 2 && nextNodeCount == 2)
- {
- connectedNodes.AddRange(nextColumn.Nodes);
- }
- else if (nodeCount == 3 && nextNodeCount == 3)
- {
- if (nodePosition == 0)
- {
- connectedNodes.Add(nextColumn.Nodes[0]);
- connectedNodes.Add(nextColumn.Nodes[1]);
- }
- else if (nodePosition == 1)
- {
- connectedNodes.Add(nextColumn.Nodes[0]);
- connectedNodes.Add(nextColumn.Nodes[1]);
- connectedNodes.Add(nextColumn.Nodes[2]);
- }
- else if (nodePosition == 2)
- {
- connectedNodes.Add(nextColumn.Nodes[1]);
- connectedNodes.Add(nextColumn.Nodes[2]);
- }
- }
- else if (nodeCount == 3 && nextNodeCount == 2)
- {
- if (nodePosition == 0)
- {
- connectedNodes.Add(nextColumn.Nodes[0]);
- }
- else if (nodePosition == 1)
- {
- connectedNodes.Add(nextColumn.Nodes[0]);
- connectedNodes.Add(nextColumn.Nodes[1]);
- }
- else if (nodePosition == 2)
- {
- connectedNodes.Add(nextColumn.Nodes[1]);
- }
- }
- else if (nodeCount == 2 && nextNodeCount == 3)
- {
- if (nodePosition == 0)
- {
- connectedNodes.Add(nextColumn.Nodes[0]);
- connectedNodes.Add(nextColumn.Nodes[1]);
- }
- else if (nodePosition == 1)
- {
- connectedNodes.Add(nextColumn.Nodes[1]);
- connectedNodes.Add(nextColumn.Nodes[2]);
- }
- }
- return connectedNodes;
- }
Advertisement
Add Comment
Please, Sign In to add comment