#region Copyright & License Information /* * Copyright 2007-2014 The OpenRA Developers (see AUTHORS) * This file is part of OpenRA, which is free software. It is made * available to you under the terms of the GNU General Public License * as published by the Free Software Foundation. For more information, * see COPYING. */ #endregion using System; using System.IO; using System.Linq; using System.Windows.Forms; using OpenRA.Graphics; namespace OpenRA.Editor { public partial class MapSelect : Form { public string MapFolderPath; public bool DirectoryIsEmpty(string path) { return !Directory.GetFileSystemEntries(path).Any(); } public MapSelect(string currentMod) { MapFolderPath = Platform.ResolvePath("^", "maps", currentMod); if (!Directory.Exists(MapFolderPath)) Directory.CreateDirectory(MapFolderPath); InitializeComponent(); MapIconsList.Images.Add(pictureBox1.Image); } void MapSelect_Load(object sender, EventArgs e) { MapList.Items.Clear(); PathOutText.Text = MapFolderPath; if (DirectoryIsEmpty(MapFolderPath)) return; foreach (var map in MapCache.FindMapsIn(MapFolderPath)) { var map1 = new ListViewItem(); map1.Tag = map; map1.Text = Path.GetFileNameWithoutExtension(map); map1.ImageIndex = 0; MapList.Items.Add(map1); } // hack if (NewText.Text != "unnamed") MapList.Items[0].Selected = true; } void MapList_SelectedIndexChanged(object sender, EventArgs e) { if (MapList.SelectedItems.Count == 1) { NewText.Text = MapList.SelectedItems[0].Text; NewText.Tag = MapList.SelectedItems[0].Tag; var map = new Map((string)NewText.Tag); TitleText.Text = map.Title; AuthorText.Text = map.Author; TheaterText.Text = map.Tileset; DescTxt.Text = map.Description; MiniMapBox.Image = null; try { var tileset = Program.Rules.TileSets[map.Tileset]; MiniMapBox.Image = Minimap.RenderMapPreview(tileset, map, true); } catch (Exception ed) { Console.WriteLine("No map preview image found: {0}", ed); } } } void PathOutTextChanged(object sender, EventArgs e) { MapFolderPath = PathOutText.Text; } } }