public void FindAvailableMaps(MapType mapType)
 {
     lock (this.AvailablePlanetMaps)
     {
         this.AvailablePlanetMaps.Clear();
         API.UiElements.MapList.Items.Clear();
         var candidates = Directory.GetFiles(this.mapDirectory, "*.txt", SearchOption.AllDirectories);
         foreach (var candidate in candidates)
         {
             try
             {
                 var map = PlanetMap.FromFile(this.mapDirectory, candidate);
                 if (map == null)
                 {
                     continue;
                 }
                 if (String.IsNullOrEmpty(map.Name))
                 {
                     continue;
                 }
                 if (map.Layers.Length == 0)
                 {
                     continue;
                 }
                 if (map.Type != mapType)
                 {
                     continue;
                 }
                 var pathName = candidate.Remove(0, this.mapDirectory.Length + 1);
                 this.AvailablePlanetMaps.Add(pathName, map);
                 API.UiElements.MapList.Items.Add(new MapSelectionItem {
                     MapName = map.Name.Trim('"', ' '), MapPath = pathName, Type = map.Type
                 });
             }
             catch (Exception ex)
             {
                 Program.WriteLog(ex);
                 continue;
             }
         }
     }
 }
 public void Load(string map)
 {
     this.CurrentMap = PlanetMap.FromFile(this.mapDirectory, map);
 }