예제 #1
0
        public static IEnumerable <Zone> MultiSelectableZonesInScreenRectDistinct(Rect rect)
        {
            CellRect mapRect = ThingSelectionUtility.GetMapRect(rect);

            ThingSelectionUtility.yieldedZones.Clear();
            try
            {
                foreach (IntVec3 c in mapRect)
                {
                    if (c.InBounds(Find.CurrentMap))
                    {
                        Zone zone = c.GetZone(Find.CurrentMap);
                        if (zone != null)
                        {
                            if (zone.IsMultiselectable)
                            {
                                if (!ThingSelectionUtility.yieldedZones.Contains(zone))
                                {
                                    yield return(zone);
                                }
                            }
                        }
                    }
                }
            }
            finally
            {
                base.< > __Finally0();
            }
        }
예제 #2
0
        public static IEnumerable <Thing> MultiSelectableThingsInScreenRectDistinct(Rect rect)
        {
            CellRect mapRect = ThingSelectionUtility.GetMapRect(rect);

            ThingSelectionUtility.yieldedThings.Clear();
            try
            {
                foreach (IntVec3 c in mapRect)
                {
                    if (c.InBounds(Find.CurrentMap))
                    {
                        List <Thing> cellThings = Find.CurrentMap.thingGrid.ThingsListAt(c);
                        if (cellThings != null)
                        {
                            for (int i = 0; i < cellThings.Count; i++)
                            {
                                Thing t = cellThings[i];
                                if (ThingSelectionUtility.SelectableByMapClick(t) && !t.def.neverMultiSelect && !ThingSelectionUtility.yieldedThings.Contains(t))
                                {
                                    yield return(t);
                                }
                            }
                        }
                    }
                }
            }
            finally
            {
                base.< > __Finally0();
            }
        }
예제 #3
0
        public static IEnumerable <Thing> MultiSelectableThingsInScreenRectDistinct(Rect rect)
        {
            CellRect mapRect = ThingSelectionUtility.GetMapRect(rect);

            ThingSelectionUtility.yieldedThings.Clear();
            foreach (IntVec3 item in mapRect)
            {
                if (item.InBounds(Find.VisibleMap))
                {
                    List <Thing> cellThings = Find.VisibleMap.thingGrid.ThingsListAt(item);
                    if (cellThings != null)
                    {
                        for (int i = 0; i < cellThings.Count; i++)
                        {
                            Thing t = cellThings[i];
                            if (ThingSelectionUtility.SelectableByMapClick(t) && !t.def.neverMultiSelect && !ThingSelectionUtility.yieldedThings.Contains(t))
                            {
                                yield return(t);

                                /*Error: Unable to find new state assignment for yield return*/;
                            }
                        }
                    }
                }
            }
            yield break;
IL_01a1:
            /*Error near IL_01a2: Unexpected return in MoveNext()*/;
        }
예제 #4
0
        public static IEnumerable <Zone> MultiSelectableZonesInScreenRectDistinct(Rect rect)
        {
            CellRect mapRect = ThingSelectionUtility.GetMapRect(rect);

            ThingSelectionUtility.yieldedZones.Clear();
            foreach (IntVec3 item in mapRect)
            {
                if (item.InBounds(Find.VisibleMap))
                {
                    Zone zone = item.GetZone(Find.VisibleMap);
                    if (zone != null && zone.IsMultiselectable && !ThingSelectionUtility.yieldedZones.Contains(zone))
                    {
                        yield return(zone);

                        /*Error: Unable to find new state assignment for yield return*/;
                    }
                }
            }
            yield break;
IL_014a:
            /*Error near IL_014b: Unexpected return in MoveNext()*/;
        }