private static void CalculateExpectedListers(Map map) { Autotests_RegionListers.expectedListers.Clear(); List <Thing> allThings = map.listerThings.AllThings; for (int i = 0; i < allThings.Count; i++) { Thing thing = allThings[i]; if (ListerThings.EverListable(thing.def, ListerThingsUse.Region)) { RegionListersUpdater.GetTouchableRegions(thing, map, Autotests_RegionListers.tmpTouchableRegions, false); for (int j = 0; j < Autotests_RegionListers.tmpTouchableRegions.Count; j++) { Region key = Autotests_RegionListers.tmpTouchableRegions[j]; List <Thing> list = default(List <Thing>); if (!Autotests_RegionListers.expectedListers.TryGetValue(key, out list)) { list = new List <Thing>(); Autotests_RegionListers.expectedListers.Add(key, list); } list.Add(allThings[i]); } } } }
private static void CalculateExpectedListers(Map map) { expectedListers.Clear(); List <Thing> allThings = map.listerThings.AllThings; for (int i = 0; i < allThings.Count; i++) { Thing thing = allThings[i]; if (!ListerThings.EverListable(thing.def, ListerThingsUse.Region)) { continue; } RegionListersUpdater.GetTouchableRegions(thing, map, tmpTouchableRegions); for (int j = 0; j < tmpTouchableRegions.Count; j++) { Region key = tmpTouchableRegions[j]; if (!expectedListers.TryGetValue(key, out var value)) { value = new List <Thing>(); expectedListers.Add(key, value); } value.Add(allThings[i]); } } }
public static void RegisterInRegions(Thing thing, Map map) { ThingDef def = thing.def; if (ListerThings.EverListable(def, ListerThingsUse.Region)) { RegionListersUpdater.GetTouchableRegions(thing, map, RegionListersUpdater.tmpRegions, false); for (int i = 0; i < RegionListersUpdater.tmpRegions.Count; i++) { ListerThings listerThings = RegionListersUpdater.tmpRegions[i].ListerThings; if (!listerThings.Contains(thing)) { listerThings.Add(thing); } } } }
public static void DeregisterInRegions(Thing thing, Map map) { ThingDef def = thing.def; if (!ListerThings.EverListable(def, ListerThingsUse.Region)) { return; } RegionListersUpdater.GetTouchableRegions(thing, map, RegionListersUpdater.tmpRegions, true); for (int i = 0; i < RegionListersUpdater.tmpRegions.Count; i++) { ListerThings listerThings = RegionListersUpdater.tmpRegions[i].ListerThings; if (listerThings.Contains(thing)) { listerThings.Remove(thing); } } RegionListersUpdater.tmpRegions.Clear(); }