Ejemplo n.º 1
0
 public void RemoveBeatmap(string hash)
 {
     if (_beatmapHashes.Contains(hash))
     {
         foreach (var map in AllBeatmaps())
         {
             if (map.Md5 == hash)
             {
                 UnknownBeatmaps.Remove(map);
                 KnownBeatmaps.Remove(map);
                 DownloadableBeatmaps.Remove(map);
                 _beatmapHashes.Remove(hash);
                 break;
             }
         }
     }
 }
Ejemplo n.º 2
0
 public virtual bool RemoveBeatmap(string hash)
 {
     if (_beatmapHashes.Contains(hash))
     {
         foreach (var map in AllBeatmaps())
         {
             if (map.Md5 == hash)
             {
                 UnknownBeatmaps.Remove(map);
                 KnownBeatmaps.Remove(map);
                 DownloadableBeatmaps.Remove(map);
                 _beatmapHashes.Remove(hash);
                 return(true);
             }
         }
     }
     return(false);
 }
Ejemplo n.º 3
0
        private void ReprocessBeatmaps()
        {
            if (_beatmapHashes.Count <= 0)
            {
                return;
            }

            var tempBeatmaps = new Beatmaps();

            tempBeatmaps.AddRange(this.AllBeatmaps());
            UnknownBeatmaps.Clear();
            KnownBeatmaps.Clear();
            DownloadableBeatmaps.Clear();


            foreach (var beatmap in tempBeatmaps)
            {
                ProcessNewlyAddedMap((BeatmapExtension)beatmap);
            }
        }
Ejemplo n.º 4
0
        protected virtual void ProcessNewlyAddedMap(BeatmapExtension map)
        {
            lock (LoadedMaps.LockingObject)
            {
                _beatmapHashes.Add(map.Md5);

                var knownMap = (BeatmapExtension)LoadedMaps.GetByHash(map.Md5);
                if (knownMap != null)
                {
                    ProcessAdditionalProps(map, knownMap);
                    KnownBeatmaps.Add(knownMap);
                    return;
                }
                knownMap = (BeatmapExtension)LoadedMaps.GetByMapId(map.MapId);
                if (map.MapId > 10 && knownMap != null)
                {
                    //Remove previously added map hash
                    _beatmapHashes.Remove(map.Md5);
                    //And add our local version of the map that instead.
                    _beatmapHashes.Add(knownMap.Md5);
                    ProcessAdditionalProps(map, knownMap);
                    KnownBeatmaps.Add(knownMap);
                    knownMap.LocalVersionDiffers = true;

                    return;
                }
                if (map.MapSetId != 0)
                {
                    DownloadableBeatmaps.Add(map);
                }
                else
                {
                    UnknownBeatmaps.Add(map);
                }

                map.LocalBeatmapMissing = true;
            }
        }