private void FixNeighbors(GridRegion regionInfos, List <GridRegion> neighbors, bool down) { IAsyncMessagePostService postService = m_registryCore.RequestModuleInterface <IAsyncMessagePostService>(); foreach (GridRegion r in neighbors) { if (m_KnownNeighbors.ContainsKey(r.RegionID)) { //Add/Remove them to/from the list if (down) { m_KnownNeighbors[r.RegionID].Remove(regionInfos); } else if (m_KnownNeighbors[r.RegionID].Find(delegate(GridRegion rr) { if (rr.RegionID == regionInfos.RegionID) { return(true); } return(false); }) == null) { m_KnownNeighbors[r.RegionID].Add(regionInfos); } } if (postService != null) { postService.Post(r.RegionHandle, SyncMessageHelper.NeighborChange(r.RegionID, regionInfos.RegionID, down)); } } if (down) { m_KnownNeighbors.Remove(regionInfos.RegionID); } }