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); }