Esempio n. 1
0
        static bool Prefix(Caravan caravan, Map map, Func <Pawn, IntVec3> spawnCellGetter)
        {
            if (!EmbarkShipUtility.EmbarkUIActive)
            {
                return(true);
            }
            tmpPawns.Clear();
            tmpPawns.AddRange((IEnumerable <Pawn>)caravan.PawnsListForReading);
            for (int index = 0; index < tmpPawns.Count; ++index)
            {
                IntVec3 loc = spawnCellGetter(tmpPawns[index]);
                GenSpawn.Spawn((Thing)tmpPawns[index], loc, map, Rot4.Random, WipeMode.Vanish, false);
            }

            /*
             * switch (dropInventoryMode)
             * {
             *  case CaravanDropInventoryMode.DropInstantly:
             *      CaravanEnterMapUtility.DropAllInventory(tmpPawns);
             *      break;
             *  case CaravanDropInventoryMode.UnloadIndividually:
             *      for (int index = 0; index < tmpPawns.Count; ++index)
             *          tmpPawns[index].inventory.UnloadEverything = true;
             *      break;
             * }
             */
            CaravanEnterMapUtility.DropAllInventory(tmpPawns);

            /*
             * if (draftColonists)
             *  CaravanEnterMapUtility.DraftColonists(tmpPawns);
             * if (map.IsPlayerHome)
             * {
             *  for (int index = 0; index < tmpPawns.Count; ++index)
             *  {
             *      if (tmpPawns[index].IsPrisoner)
             *          tmpPawns[index].guest.WaitInsteadOfEscapingForDefaultTicks();
             *  }
             * }
             */
            caravan.RemoveAllPawns();

            /*
             * if (caravan.Spawned)
             *  Find.WorldObjects.Remove((WorldObject)caravan);
             */
            tmpPawns.Clear();
            return(false);
        }