public TileSelection(TileSelection tileSelection) { m_tileSelections = new Dictionary<Location, TileSelectionBorder>(); foreach (KeyValuePair<Location, TileSelectionBorder> pair in tileSelection.m_tileSelections) m_tileSelections[pair.Key] = pair.Value; m_bounds = tileSelection.m_bounds; }
public void Merge(TileSelection tileSelection) { if (tileSelection.IsEmpty()) return; // dest selection is empty if (m_tileSelections.Count == 0) { m_bounds = tileSelection.Bounds; foreach (KeyValuePair<Location, TileSelectionBorder> pair in tileSelection.m_tileSelections) m_tileSelections[pair.Key] = pair.Value; UpdateSelectionBorders(); return; } // otherwise, merge with existing foreach (KeyValuePair<Location, TileSelectionBorder> pair in tileSelection.m_tileSelections) m_tileSelections[pair.Key] = pair.Value; m_bounds.ExtendTo(tileSelection.m_bounds); UpdateSelectionBorders(); }