public IEnumerable <FloatMenuOption> GetTransportPodsFloatMenuOptionsAt( int tile, Caravan car = null) { bool anything = false; IEnumerable <IThingHolder> pods = this.TransportersInGroup.Cast <IThingHolder>(); if (car != null) { List <Caravan> rliss = new List <Caravan>(); rliss.Add(car); pods = rliss.Cast <IThingHolder>(); rliss = (List <Caravan>)null; } if (car == null) { if (TransportPodsArrivalAction_FormCaravan.CanFormCaravanAt(pods, tile) && !Find.WorldObjects.AnySettlementBaseAt(tile) && !Find.WorldObjects.AnySiteAt(tile)) { anything = true; yield return(new FloatMenuOption("FormCaravanHere".Translate(), (Action)(() => this.TryLaunch(tile, (TransportPodsArrivalAction) new TransportPodsArrivalAction_FormCaravan(), car)), MenuOptionPriority.Default, (Action)null, (Thing)null, 0.0f, (Func <Rect, bool>)null, (WorldObject)null)); } } else if (!Find.WorldObjects.AnySettlementBaseAt(tile) && !Find.WorldObjects.AnySiteAt(tile) && !Find.World.Impassable(tile)) { anything = true; yield return(new FloatMenuOption("FormCaravanHere".Translate(), (Action)(() => this.TryLaunch(tile, (TransportPodsArrivalAction) new TransportPodsArrivalAction_FormCaravan(), car)), MenuOptionPriority.Default, (Action)null, (Thing)null, 0.0f, (Func <Rect, bool>)null, (WorldObject)null)); } List <WorldObject> worldObjects = Find.WorldObjects.AllWorldObjects; for (int i = 0; i < worldObjects.Count; ++i) { if (worldObjects[i].Tile == tile) { IEnumerable <FloatMenuOption> nowre = HelicopterStatic.getFM(worldObjects[i], pods, this, car); if (nowre.ToList <FloatMenuOption>().Count < 1) { yield return(new FloatMenuOption("FormCaravanHere".Translate(), (Action)(() => this.TryLaunch(tile, (TransportPodsArrivalAction) new TransportPodsArrivalAction_FormCaravan(), car)), MenuOptionPriority.Default, (Action)null, (Thing)null, 0.0f, (Func <Rect, bool>)null, (WorldObject)null)); } else { foreach (FloatMenuOption floatMenuOption in nowre) { FloatMenuOption o = floatMenuOption; anything = true; yield return(o); o = (FloatMenuOption)null; } } nowre = (IEnumerable <FloatMenuOption>)null; } } if (!anything && !Find.World.Impassable(tile)) { yield return(new FloatMenuOption("TransportPodsContentsWillBeLost".Translate(), (Action)(() => this.TryLaunch(tile, (TransportPodsArrivalAction)null, (Caravan)null)), MenuOptionPriority.Default, (Action)null, (Thing)null, 0.0f, (Func <Rect, bool>)null, (WorldObject)null)); } }
// Token: 0x060028DE RID: 10462 RVA: 0x001354FC File Offset: 0x001338FC public IEnumerable <FloatMenuOption> GetTransportPodsFloatMenuOptionsAt(int tile, Caravan car = null) { bool anything = false; IEnumerable <IThingHolder> pods = this.TransportersInGroup.Cast <IThingHolder>(); if (car != null) { List <Caravan> rliss = new List <Caravan>(); rliss.Add(car); pods = rliss.Cast <IThingHolder>(); } if (car == null) { if (TransportPodsArrivalAction_FormCaravan.CanFormCaravanAt(pods, tile) && !Find.WorldObjects.AnySettlementBaseAt(tile) && !Find.WorldObjects.AnySiteAt(tile)) { anything = true; yield return(new FloatMenuOption("FormCaravanHere".Translate(), delegate { this.TryLaunch(tile, new TransportPodsArrivalAction_FormCaravan(), car); }, MenuOptionPriority.Default, null, null, 0f, null, null)); } } else { if (!Find.WorldObjects.AnySettlementBaseAt(tile) && !Find.WorldObjects.AnySiteAt(tile) && !Find.World.Impassable(tile)) { anything = true; yield return(new FloatMenuOption("FormCaravanHere".Translate(), delegate { this.TryLaunch(tile, new TransportPodsArrivalAction_FormCaravan(), car); }, MenuOptionPriority.Default, null, null, 0f, null, null)); } } List <WorldObject> worldObjects = Find.WorldObjects.AllWorldObjects; for (int i = 0; i < worldObjects.Count; i++) { if (worldObjects[i].Tile == tile) { IEnumerable <FloatMenuOption> nowre = HelicopterStatic.getFM(worldObjects[i], pods, this, car); if (nowre.ToList().Count < 1) { yield return(new FloatMenuOption("FormCaravanHere".Translate(), delegate { this.TryLaunch(tile, new TransportPodsArrivalAction_FormCaravan(), car); }, MenuOptionPriority.Default, null, null, 0f, null, null)); } else { foreach (FloatMenuOption o in nowre)//worldObjects[i].GetTransportPodsFloatMenuOptions(this.TransportersInGroup.Cast<IThingHolder>(), this)) { anything = true; yield return(o); } } } } if (!anything && !Find.World.Impassable(tile)) { yield return(new FloatMenuOption("TransportPodsContentsWillBeLost".Translate(), delegate { this.TryLaunch(tile, null); }, MenuOptionPriority.Default, null, null, 0f, null, null)); } yield break; }