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); })); } }
private bool ChoseWorldTarget(GlobalTargetInfo target) { if (!LoadingInProgressOrReadyToLaunch) { return(true); } return(ChoseWorldTarget(target, parent.Map.Tile, TransportersInGroup.Cast <IThingHolder>(), MaxLaunchDistance, TryLaunch, this)); }
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()*/; }
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)); }