BatchFlow.AsciiArt.FindConnectionEnd C# (CSharp) Method

FindConnectionEnd() private static method

private static FindConnectionEnd ( PositionedTask task, char artChars ) : PositionedConnection
task PositionedTask
artChars char
return PositionedConnection
        private static PositionedConnection FindConnectionEnd(PositionedTask task, char[,] artChars)
        {
            List<PositionedConnection> pointers = new List<PositionedConnection>();
            ExtractConnectionEndFor(task.pos, artChars, Position.Direction.North, 'V', pointers);
            ExtractConnectionEndFor(task.pos, artChars, Position.Direction.South, '^', pointers);
            ExtractConnectionEndFor(task.pos, artChars, Position.Direction.West, '>', pointers);
            ExtractConnectionEndFor(task.pos, artChars, Position.Direction.East, '<', pointers);
            if (pointers.Count == 0)
            {
                return null;
            }
            else if (pointers.Count == 1)
            {
                pointers[0].endPoint = task;
                return pointers[0];
            }
            throw new InvalidOperationException(String.Format("Multiple pointers seem to end at task '{0}'.(position {1}) This is illegal. Use the Join (#) to merge two streams.", task.task.Name, artChars[task.pos.x, task.pos.y]));
        }