Esempio n. 1
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 public override string ToString()
 {
     if (m_serializedPath == null)
     {
         m_serializedPath = new StringBuilder();
         for (int i = 0; i < TransitCells.Count; i++)
         {
             m_serializedPath.Append(Pathfinding.GetDirectionChar(Directions[i]));
             m_serializedPath.Append(Util.CellToChar(TransitCells[i]));
         }
     }
     return(m_serializedPath.ToString());
 }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="startCell"></param>
        /// <param name="endCell"></param>
        /// <param name="diagonal"></param>
        /// <param name="movementPoints"></param>
        /// <param name="obstacles"></param>
        /// <returns></returns>
        public string FindPathAsString(int startCell, int endCell, bool diagonal, int movementPoints = -1, IEnumerable <int> obstacles = null)
        {
            var movementPath = FindPath(startCell, endCell, diagonal, movementPoints, obstacles == null ? new List <int>() : obstacles);

            StringBuilder PathAsString = new StringBuilder();

            for (int i = 0; i <= movementPath.Count() - 2; i++)
            {
                PathAsString.Append(Pathfinding.GetDirectionChar((Pathfinding.GetDirection(map, movementPath.ElementAt(i), movementPath.ElementAt(i + 1)))));
                PathAsString.Append(Util.CellToChar(movementPath.ElementAt(i + 1)));
            }

            return(PathAsString.ToString());
        }