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