예제 #1
0
        public List <int> GetOcclistIndexes(roomSlotStatE filterval)
        {
            var fltIdxList = new List <int>(
                occlookup.Select((p, i) => new { p, i })
                .Where(z => z.p == filterval)
                .Select(z => (z.i)));

            return(fltIdxList);
        }
예제 #2
0
        public bool DoubleNcap()
        {
            if (!slotsCanExpand)
            {
                return(false);
            }
            var ocap = ncap;
            //Debug.Log("Room " + room.name + " doubling cap from " + ncap + " to " + 2*ncap + " nocc:" + Nocc() + " nres:" + Nreserved() + " nfree:" + Nfree());
            var nocclookup = new roomSlotStatE[2 * ncap];

            for (int i = 0; i < ncap; i++)
            {
                nocclookup[2 * i]     = occlookup[i];
                nocclookup[2 * i + 1] = roomSlotStatE.free;
            }
            foreach (Person pers in occDict.Values)
            {
                pers.roomPlaceIdx = 2 * pers.roomPlaceIdx;
            }
            occlookup = nocclookup;
            ncap      = 2 * ncap;
            //Debug.Log("Room " + room.name + " doubled  cap from " + ocap + " to " + ncap + " nocc:" + Nocc()+" nres:" + Nreserved() + " nfree:" + Nfree());
            return(true);
        }