Beispiel #1
0
        public IEnumerable <FloatMenuOption> GetTransportPodsFloatMenuOptionsAt(int tile)
        {
            bool anything = false;

            if (TransportPodsArrivalAction_FormCaravan.CanFormCaravanAt(TransportersInGroup.Cast <IThingHolder>(), tile) && !Find.WorldObjects.AnySettlementBaseAt(tile) && !Find.WorldObjects.AnySiteAt(tile))
            {
                anything = true;
                yield return(new FloatMenuOption("FormCaravanHere".Translate(), delegate
                {
                    TryLaunch(tile, new TransportPodsArrivalAction_FormCaravan());
                }));
            }
            List <WorldObject> worldObjects = Find.WorldObjects.AllWorldObjects;

            for (int i = 0; i < worldObjects.Count; i++)
            {
                if (worldObjects[i].Tile == tile)
                {
                    foreach (FloatMenuOption transportPodsFloatMenuOption in worldObjects[i].GetTransportPodsFloatMenuOptions(TransportersInGroup.Cast <IThingHolder>(), this))
                    {
                        anything = true;
                        yield return(transportPodsFloatMenuOption);
                    }
                }
            }
            if (!anything && !Find.World.Impassable(tile))
            {
                yield return(new FloatMenuOption("TransportPodsContentsWillBeLost".Translate(), delegate
                {
                    TryLaunch(tile, null);
                }));
            }
        }
Beispiel #2
0
 private bool ChoseWorldTarget(GlobalTargetInfo target)
 {
     if (!LoadingInProgressOrReadyToLaunch)
     {
         return(true);
     }
     return(ChoseWorldTarget(target, parent.Map.Tile, TransportersInGroup.Cast <IThingHolder>(), MaxLaunchDistance, TryLaunch, this));
 }
Beispiel #3
0
        public IEnumerable <FloatMenuOption> GetTransportPodsFloatMenuOptionsAt(int tile)
        {
            _003CGetTransportPodsFloatMenuOptionsAt_003Ec__Iterator1 _003CGetTransportPodsFloatMenuOptionsAt_003Ec__Iterator = (_003CGetTransportPodsFloatMenuOptionsAt_003Ec__Iterator1) /*Error near IL_003c: stateMachine*/;
            bool anything = false;

            if (TransportPodsArrivalAction_FormCaravan.CanFormCaravanAt(TransportersInGroup.Cast <IThingHolder>(), tile) && !Find.WorldObjects.AnySettlementBaseAt(tile) && !Find.WorldObjects.AnySiteAt(tile))
            {
                yield return(new FloatMenuOption("FormCaravanHere".Translate(), delegate
                {
                    _003CGetTransportPodsFloatMenuOptionsAt_003Ec__Iterator._0024this.TryLaunch(tile, new TransportPodsArrivalAction_FormCaravan());
                }));

                /*Error: Unable to find new state assignment for yield return*/;
            }
            List <WorldObject> worldObjects = Find.WorldObjects.AllWorldObjects;

            for (int i = 0; i < worldObjects.Count; i++)
            {
                if (worldObjects[i].Tile == tile)
                {
                    using (IEnumerator <FloatMenuOption> enumerator = worldObjects[i].GetTransportPodsFloatMenuOptions(TransportersInGroup.Cast <IThingHolder>(), this).GetEnumerator())
                    {
                        if (enumerator.MoveNext())
                        {
                            FloatMenuOption o = enumerator.Current;
                            anything = true;
                            yield return(o);

                            /*Error: Unable to find new state assignment for yield return*/;
                        }
                    }
                }
            }
            if (!anything && !Find.World.Impassable(tile))
            {
                yield return(new FloatMenuOption("TransportPodsContentsWillBeLost".Translate(), delegate
                {
                    _003CGetTransportPodsFloatMenuOptionsAt_003Ec__Iterator._0024this.TryLaunch(tile, null);
                }));

                /*Error: Unable to find new state assignment for yield return*/;
            }
            yield break;
IL_0290:
            /*Error near IL_0291: Unexpected return in MoveNext()*/;
        }
Beispiel #4
0
        public void StartChoosingDestination()
        {
            CameraJumper.TryJump(CameraJumper.GetWorldTarget(parent));
            Find.WorldSelector.ClearSelection();
            int tile = parent.Map.Tile;

            Find.WorldTargeter.BeginTargeting_NewTemp(ChoseWorldTarget, canTargetTiles: true, TargeterMouseAttachment, closeWorldTabWhenFinished: true, delegate
            {
                GenDraw.DrawWorldRadiusRing(tile, MaxLaunchDistance);
            }, (GlobalTargetInfo target) => TargetingLabelGetter(target, tile, MaxLaunchDistance, TransportersInGroup.Cast <IThingHolder>(), TryLaunch, this));
        }