Esempio n. 1
0
    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);
    }
Esempio n. 3
0
    //随机获取一个PointQueue队列,并取出该PointQueue中的第一个位置点
    public Point GetFirstPoint2RandomPointQueue(int pointStatus)
    {
        PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus);

        if (pointQueueHash == null)
        {
            return(null);
        }
        return(pointQueueHash.GetFirstPoint2RandomPointQueue());
    }
Esempio n. 4
0
    //获取队列最后一个位置点
    public Point GetLastPoint(int pointStatus, int queueIndex)
    {
        PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus);

        if (pointQueueHash == null)
        {
            return(null);
        }
        return(pointQueueHash.GetLastPoint(queueIndex));
    }
Esempio n. 5
0
    //指定位置点类型,来获取空位置点
    public Point GetEmptyPoint(int pointStatus)
    {
        PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus);

        if (pointQueueHash == null)
        {
            return(null);
        }
        return(pointQueueHash.GetEmptyPoint());
    }
Esempio n. 6
0
    //指定位置点类型,来获取随机PointQueue(指定队列的索引范围)中的顺序未预约位置点
    public Point GetNoReservationPoint2RandomPointQueue(int pointStatus, int minQueueIndex, int maxQueueIndex)
    {
        PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus);

        if (pointQueueHash == null)
        {
            return(null);
        }
        return(pointQueueHash.GetNoReservationPoint2RandomPointQueue(minQueueIndex, maxQueueIndex));
    }
Esempio n. 7
0
    //指定位置点类型,来获取随机未预约位置点, 针对休息区
    public Point GetRandomNoReservationPointAtRestArea(int pointStatus)
    {
        PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus);

        if (pointQueueHash == null)
        {
            return(null);
        }
        return(pointQueueHash.GetRandomNoReservationPointAtRestArea());
    }
Esempio n. 8
0
    //获取未被预约的Point, 返回的首先是队列最后边没有被预约的位置点
    public Point GetReverseNoReservationPointByQueueIndex(int pointStatus, int queueIndex)
    {
        PointQueueHash pointQueueHash = GetPointQueueHash(pointStatus);

        if (pointQueueHash == null)
        {
            return(null);
        }
        return(pointQueueHash.GetReverseNoReservationPointByQueueIndex(queueIndex));
    }
Esempio n. 9
0
 public void AddPointQueueHash2Station(int pointStatus, PointQueueHash pointQueueHash)
 {
     if (pointQueueHash == null)
     {
         return;
     }
     if (m_pointQueueHashDict.ContainsKey(pointStatus) == false)
     {
         m_pointQueueHashDict.Add(pointStatus, pointQueueHash);
     }
 }
Esempio n. 10
0
    //获取指定站台的某个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);
    }