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())); }
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); } }