private void MergeLists(DataSplitFinder finder) { DataSplitInfo info = finder.GetFinderInfo(); _found.AddRange(info.found); _newPositions.AddRange(info.confirmed); _findersToRemove.Add(finder); }
private DataSplitFinder FinderFound(IntVec3 position, DataSplitFinder toIgnore) { foreach (DataSplitFinder finder in _finders) { if (!ReferenceEquals(finder, toIgnore) && !_findersToRemove.Contains(finder) && finder.ContainsPosition(position)) { return(finder); } } return(null); }
private void CheckPosition(IntVec3 position) { if (VoxelEdit.ValidPosition(_regionCollection.GetDimensions() * VoxelData.SIZE, position) && VoxelEdit.GetAt(_regionCollection, position).visible == 1) { DataSplitFinder finder = FinderFound(position, this); if (!ReferenceEquals(finder, null)) { MergeLists(finder); } else if (!ContainsPosition(position)) { _newPositions.Add(position); } } }