public PointQueueHash GetPointQueueHash(int pointStatus) { PointQueueHash pointQueueHash = null; m_pointQueueHashDict.TryGetValue(pointStatus, out pointQueueHash); return(pointQueueHash); }
private static PointQueueHash YYY(Transform pointStatusTrans, int pointStatus) { if (pointStatusTrans == null) { return(null); } PointQueueHash pointQueueHash = new PointQueueHash(); int queueCount = pointStatusTrans.childCount; // if (pointStatus == (int) PointStatus.WaitTrain_Up || pointStatus == (int) PointStatus.Train_Up || // pointStatus == (int) PointStatus.WaitTrain_Down || pointStatus == (int) PointStatus.Train_Down) { // queueCount = 32; //因为列车只有16扇门 // } // if (pointStatus == (int) PointStatus.Train_Up_Birth || pointStatus == (int) PointStatus.DownTrain_Up || // pointStatus == (int) PointStatus.Train_Down_Birth || pointStatus == (int) PointStatus.DownTrain_Down) { // queueCount = 16; //因为列车只有16扇门 // } for (int i = 0; i < queueCount; i++) { Transform queueTrans = pointStatusTrans.GetChild(i); int queueIndex = int.Parse(queueTrans.gameObject.name); PointQueue pointQueue = ZZZ(queueTrans, queueIndex); pointQueue.m_pointQueueHash = pointQueueHash; pointQueueHash.AddPointQueue2Hash(queueIndex, pointQueue); } return(pointQueueHash); }
//随机获取一个PointQueue队列,并取出该PointQueue中的第一个位置点 public Point GetFirstPoint2RandomPointQueue(int pointStatus) { PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus); if (pointQueueHash == null) { return(null); } return(pointQueueHash.GetFirstPoint2RandomPointQueue()); }
//获取队列最后一个位置点 public Point GetLastPoint(int pointStatus, int queueIndex) { PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus); if (pointQueueHash == null) { return(null); } return(pointQueueHash.GetLastPoint(queueIndex)); }
//指定位置点类型,来获取空位置点 public Point GetEmptyPoint(int pointStatus) { PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus); if (pointQueueHash == null) { return(null); } return(pointQueueHash.GetEmptyPoint()); }
//指定位置点类型,来获取随机PointQueue(指定队列的索引范围)中的顺序未预约位置点 public Point GetNoReservationPoint2RandomPointQueue(int pointStatus, int minQueueIndex, int maxQueueIndex) { PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus); if (pointQueueHash == null) { return(null); } return(pointQueueHash.GetNoReservationPoint2RandomPointQueue(minQueueIndex, maxQueueIndex)); }
//指定位置点类型,来获取随机未预约位置点, 针对休息区 public Point GetRandomNoReservationPointAtRestArea(int pointStatus) { PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus); if (pointQueueHash == null) { return(null); } return(pointQueueHash.GetRandomNoReservationPointAtRestArea()); }
//获取未被预约的Point, 返回的首先是队列最后边没有被预约的位置点 public Point GetReverseNoReservationPointByQueueIndex(int pointStatus, int queueIndex) { PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus); if (pointQueueHash == null) { return(null); } return(pointQueueHash.GetReverseNoReservationPointByQueueIndex(queueIndex)); }
public void AddPointQueueHash2Station(int pointStatus, PointQueueHash pointQueueHash) { if (pointQueueHash == null) { return; } if (m_pointQueueHashDict.ContainsKey(pointStatus) == false) { m_pointQueueHashDict.Add(pointStatus, pointQueueHash); } }
//获取指定站台的某个PointStatus的PointQueueHash public PointQueueHash GetPointQueueHash(UInt16 stationIndex, int pointStatus) { Station station = GetStation(stationIndex); if (station == null) { return(null); } PointQueueHash pointQueueHash = station.GetPointQueueHash(pointStatus); return(pointQueueHash); }
private static void CCC(PointQueueHash pointQueueHash) { if (pointQueueHash == null) { return; } var enumerator = pointQueueHash.PointQueueDict.GetEnumerator(); while (enumerator.MoveNext()) { PointQueue pointQueue = enumerator.Current.Value; DDD(pointQueue); } enumerator.Dispose(); }
private static void BBB(Station station) { if (station == null) { return; } var enumerator = station.PointQueueHashDict.GetEnumerator(); while (enumerator.MoveNext()) { PointQueueHash pointQueueHash = enumerator.Current.Value; CCC(pointQueueHash); } enumerator.Dispose(); }
private static Station XXX(Transform stationTrans) { if (stationTrans == null) { return(null); } Station station = new Station(); int pointStatusCount = stationTrans.childCount; for (int i = 0; i < pointStatusCount; i++) { Transform pointStatusTrans = stationTrans.GetChild(i); int pointStatus = (int)System.Enum.Parse(typeof(PointStatus), pointStatusTrans.gameObject.name); PointQueueHash pointQueueHash = YYY(pointStatusTrans, pointStatus); station.AddPointQueueHash2Station(pointStatus, pointQueueHash); } return(station); }