示例#1
0
    public Railway.Route DoCreateRoute(int pointId, string routeName)
    {
        if (!IsPointInCompletedLine(pointId))
        {
            return(null);
        }

        Railway.Point point = Railway.Manager.Instance.GetPoint(pointId);

        if (point == null)
        {
            return(null);
        }

        Railway.Point header = Railway.Point.GetHeader(point);
        if (header.pointType != Railway.Point.EType.End)
        {
            return(null);
        }

        List <int> pointList = new List <int>();

        point = header;
        while (true)
        {
            if (null != point)
            {
                pointList.Add(point.id);

                point = point.GetNextPoint();
            }
            else
            {
                break;
            }
        }

        return(Railway.Manager.Instance.CreateRoute(routeName, pointList.ToArray()));
    }
示例#2
0
        public static void ReverseNext(Point point)
        {
            if (point == null)
            {
                return;
            }

            List <Railway.Point> pointList = new List <Railway.Point>();

            while (point != null)
            {
                pointList.Add(point);

                point = point.GetNextPoint();
            }

            pointList[pointList.Count - 1].ChangePrePoint(Railway.Manager.InvalId);

            for (int i = 0; i < pointList.Count - 1; i++)
            {
                pointList[i].ChangePrePoint(pointList[i + 1].id);
            }
        }