/// <summary> /// Adds a revealed map to the account. /// </summary> /// <param name="map"></param> public void AddRevealedMap(RevealedMap revealedMap) { lock (_revealedMaps) { if (_revealedMaps.TryGetValue(revealedMap.MapId, out var map)) { map.Update(revealedMap.Explored, revealedMap.Percentage); } else { _revealedMaps[revealedMap.MapId] = revealedMap; } } }
/// <summary> /// Loads revealed maps for the account. /// </summary> /// <param name="account"></param> private void LoadRevealedMaps(Account account) { using (var conn = this.GetConnection()) using (var mc = new MySqlCommand("SELECT * FROM `revealedMaps` WHERE `accountId` = @accountId", conn)) { mc.Parameters.AddWithValue("@accountId", account.Id); using (var reader = mc.ExecuteReader()) { while (reader.Read()) { var map = reader.GetInt32("map"); var explored = (byte[])reader["explored"]; var percentage = reader.GetFloat("percentage"); var revealedMap = new RevealedMap(map, explored, percentage); account.AddRevealedMap(revealedMap); } } } }