private static void SendShuttle(FCEvent evt) { Map playerHomeMap = Find.World.GetComponent <FactionFC>().TaxMap; List <ShipLandingArea> landingZones = ShipLandingBeaconUtility.GetLandingZones(playerHomeMap); IntVec3 landingCell = DropCellFinder.GetBestShuttleLandingSpot(playerHomeMap, Faction.OfPlayer); if (!landingZones.Any() || landingZones.Any(zone => zone.Clear)) { MakeDeliveryLetterAndMessage(evt); Thing shuttle = ThingMaker.MakeThing(ThingDefOf.Shuttle); TransportShip transportShip = TransportShipMaker.MakeTransportShip(TransportShipDefOf.Ship_Shuttle, evt.goods, shuttle); transportShip.ArriveAt(landingCell, playerHomeMap.Parent); transportShip.AddJobs(new ShipJobDef[] { ShipJobDefOf.Unload, ShipJobDefOf.FlyAway }); } else { if (!evt.isDelayed) { Messages.Message(((string)"shuttleLandingBlockedWithItems".Translate(evt.goods.ToLetterString())).Replace("\n", " "), MessageTypeDefOf.RejectInput); evt.isDelayed = true; } if (evt.source == -1) { evt.source = playerHomeMap.Tile; } evt.timeTillTrigger = Find.TickManager.TicksGame + 1000; CreateDeliveryEvent(evt); } }