Ejemplo n.º 1
0
 public static IntVec3 GetBedSleepingSlotPosFor(Pawn pawn, Building_Bed bed)
 {
     for (int i = 0; i < bed.owners.Count; i++)
     {
         if (bed.owners[i] == pawn)
         {
             return(bed.GetSleepingSlotPos(i));
         }
     }
     for (int j = 0; j < bed.SleepingSlotsCount; j++)
     {
         Pawn curOccupant = bed.GetCurOccupant(j);
         if ((j >= bed.owners.Count || bed.owners[j] == null) && curOccupant == pawn)
         {
             return(bed.GetSleepingSlotPos(j));
         }
     }
     for (int k = 0; k < bed.SleepingSlotsCount; k++)
     {
         Pawn curOccupant2 = bed.GetCurOccupant(k);
         if ((k >= bed.owners.Count || bed.owners[k] == null) && curOccupant2 == null)
         {
             return(bed.GetSleepingSlotPos(k));
         }
     }
     Log.Error("Could not find good sleeping slot position for " + pawn + ". Perhaps AnyUnoccupiedSleepingSlot check is missing somewhere.");
     return(bed.GetSleepingSlotPos(0));
 }