fix some editor weirdness (2/2)
This commit is contained in:
3
OpenRA.Editor/Form1.Designer.cs
generated
3
OpenRA.Editor/Form1.Designer.cs
generated
@@ -110,7 +110,6 @@
|
|||||||
// splitContainer1.Panel1
|
// splitContainer1.Panel1
|
||||||
//
|
//
|
||||||
this.splitContainer1.Panel1.Controls.Add(this.splitContainer2);
|
this.splitContainer1.Panel1.Controls.Add(this.splitContainer2);
|
||||||
this.splitContainer1.Panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.splitContainer1_Panel1_Paint);
|
|
||||||
//
|
//
|
||||||
// splitContainer1.Panel2
|
// splitContainer1.Panel2
|
||||||
//
|
//
|
||||||
@@ -235,7 +234,7 @@
|
|||||||
this.surface1.Size = new System.Drawing.Size(783, 727);
|
this.surface1.Size = new System.Drawing.Size(783, 727);
|
||||||
this.surface1.TabIndex = 5;
|
this.surface1.TabIndex = 5;
|
||||||
this.surface1.Text = "surface1";
|
this.surface1.Text = "surface1";
|
||||||
this.surface1.Click += new System.EventHandler(this.surface1_Click_1);
|
this.surface1.Click += new System.EventHandler(this.OnSurfaceClicked);
|
||||||
//
|
//
|
||||||
// menuStrip1
|
// menuStrip1
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
Text = "OpenRA Editor (mod:{0})".F(currentMod);
|
Text = "OpenRA Editor (mod:{0})".F(currentMod);
|
||||||
|
|
||||||
Game.modData = new ModData( currentMod );
|
Game.modData = new ModData(currentMod);
|
||||||
|
|
||||||
Rules.LoadRules(Game.modData.Manifest, new Map());
|
Rules.LoadRules(Game.modData.Manifest, new Map());
|
||||||
|
|
||||||
@@ -52,18 +52,17 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
void LoadMap(string mapname)
|
void LoadMap(string mapname)
|
||||||
{
|
{
|
||||||
tilePalette.Controls.Clear();
|
tilePalette.Controls.Clear();
|
||||||
actorPalette.Controls.Clear();
|
actorPalette.Controls.Clear();
|
||||||
resourcePalette.Controls.Clear();
|
resourcePalette.Controls.Clear();
|
||||||
|
|
||||||
loadedMapName = mapname;
|
loadedMapName = mapname;
|
||||||
|
|
||||||
Game.modData = new ModData( currentMod );
|
Game.modData = new ModData(currentMod);
|
||||||
|
|
||||||
// load the map
|
// load the map
|
||||||
var map = new Map(new Folder(mapname));
|
var map = new Map(new Folder(mapname));
|
||||||
|
|
||||||
|
|
||||||
// upgrade maps that have no player definitions. editor doesnt care,
|
// upgrade maps that have no player definitions. editor doesnt care,
|
||||||
// but this breaks the game pretty badly.
|
// but this breaks the game pretty badly.
|
||||||
if (map.Players.Count == 0)
|
if (map.Players.Count == 0)
|
||||||
@@ -83,7 +82,7 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
loadedMapName = null;
|
loadedMapName = null;
|
||||||
|
|
||||||
Game.modData = new ModData( currentMod );
|
Game.modData = new ModData(currentMod);
|
||||||
|
|
||||||
PrepareMapResources(Game.modData.Manifest, map);
|
PrepareMapResources(Game.modData.Manifest, map);
|
||||||
|
|
||||||
@@ -92,15 +91,15 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
void PrepareMapResources(Manifest manifest, Map map)
|
void PrepareMapResources(Manifest manifest, Map map)
|
||||||
{
|
{
|
||||||
Rules.LoadRules(manifest, map);
|
Rules.LoadRules(manifest, map);
|
||||||
tileset = Rules.TileSets[map.Theater];
|
tileset = Rules.TileSets[map.Theater];
|
||||||
tileset.LoadTiles();
|
tileset.LoadTiles();
|
||||||
var palette = new Palette(FileSystem.Open(tileset.Palette), true);
|
var palette = new Palette(FileSystem.Open(tileset.Palette), true);
|
||||||
|
|
||||||
|
|
||||||
surface1.Bind(map, tileset, palette);
|
surface1.Bind(map, tileset, palette);
|
||||||
// construct the palette of tiles
|
// construct the palette of tiles
|
||||||
var palettes = new[] { tilePalette, actorPalette, resourcePalette };
|
var palettes = new[] { tilePalette, actorPalette, resourcePalette };
|
||||||
foreach (var p in palettes) { p.Visible = false; p.SuspendLayout(); }
|
foreach (var p in palettes) { p.Visible = false; p.SuspendLayout(); }
|
||||||
foreach (var t in tileset.Templates)
|
foreach (var t in tileset.Templates)
|
||||||
{
|
{
|
||||||
@@ -137,7 +136,7 @@ namespace OpenRA.Editor
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var info = Rules.Info[a];
|
var info = Rules.Info[a];
|
||||||
if( !info.Traits.Contains<RenderSimpleInfo>() ) continue;
|
if (!info.Traits.Contains<RenderSimpleInfo>()) continue;
|
||||||
var template = RenderActor(info, tileset, palette);
|
var template = RenderActor(info, tileset, palette);
|
||||||
var ibox = new PictureBox
|
var ibox = new PictureBox
|
||||||
{
|
{
|
||||||
@@ -145,7 +144,7 @@ namespace OpenRA.Editor
|
|||||||
Width = 32,
|
Width = 32,
|
||||||
Height = 32,
|
Height = 32,
|
||||||
SizeMode = PictureBoxSizeMode.Zoom,
|
SizeMode = PictureBoxSizeMode.Zoom,
|
||||||
BorderStyle = BorderStyle.FixedSingle
|
BorderStyle = BorderStyle.FixedSingle
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -174,10 +173,10 @@ namespace OpenRA.Editor
|
|||||||
var ibox = new PictureBox
|
var ibox = new PictureBox
|
||||||
{
|
{
|
||||||
Image = template.Bitmap,
|
Image = template.Bitmap,
|
||||||
Width = 32,
|
Width = 32,
|
||||||
Height = 32,
|
Height = 32,
|
||||||
SizeMode = PictureBoxSizeMode.Zoom,
|
SizeMode = PictureBoxSizeMode.Zoom,
|
||||||
BorderStyle = BorderStyle.FixedSingle
|
BorderStyle = BorderStyle.FixedSingle
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -198,16 +197,14 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
surface1.BindResourceTemplates(resourceTemplates);
|
surface1.BindResourceTemplates(resourceTemplates);
|
||||||
|
|
||||||
foreach (var p in palettes)
|
foreach (var p in palettes)
|
||||||
{
|
{
|
||||||
p.Visible = true;
|
p.Visible = true;
|
||||||
p.ResumeLayout();
|
p.ResumeLayout();
|
||||||
}
|
}
|
||||||
pmMiniMap.Image = Minimap.TerrainBitmap(surface1.Map, true);
|
pmMiniMap.Image = Minimap.TerrainBitmap(surface1.Map, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static Bitmap RenderTemplate(TileSet ts, ushort n, Palette p)
|
static Bitmap RenderTemplate(TileSet ts, ushort n, Palette p)
|
||||||
{
|
{
|
||||||
var template = ts.Templates[n];
|
var template = ts.Templates[n];
|
||||||
@@ -251,7 +248,7 @@ namespace OpenRA.Editor
|
|||||||
for (int i = 0; i < ri.OverrideTheater.Length; i++)
|
for (int i = 0; i < ri.OverrideTheater.Length; i++)
|
||||||
if (ri.OverrideTheater[i] == tileset.Id)
|
if (ri.OverrideTheater[i] == tileset.Id)
|
||||||
image = ri.OverrideImage[i];
|
image = ri.OverrideImage[i];
|
||||||
|
|
||||||
image = image ?? ri.Image ?? info.Name;
|
image = image ?? ri.Image ?? info.Name;
|
||||||
using (var s = FileSystem.OpenWithExts(image, tileset.Extensions))
|
using (var s = FileSystem.OpenWithExts(image, tileset.Extensions))
|
||||||
{
|
{
|
||||||
@@ -330,100 +327,72 @@ namespace OpenRA.Editor
|
|||||||
surface1.Invalidate();
|
surface1.Invalidate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SaveClicked(object sender, EventArgs e)
|
void SaveClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (loadedMapName == null)
|
if (loadedMapName == null)
|
||||||
SaveAsClicked(sender, e);
|
SaveAsClicked(sender, e);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
surface1.Map.PlayerCount = surface1.Map.Waypoints.Count;
|
surface1.Map.PlayerCount = surface1.Map.Waypoints.Count;
|
||||||
surface1.Map.Package = new Folder(loadedMapName);
|
surface1.Map.Package = new Folder(loadedMapName);
|
||||||
surface1.Map.Save(loadedMapName);
|
surface1.Map.Save(loadedMapName);
|
||||||
using (var nms = new MapSelect())
|
dirty = false;
|
||||||
{
|
}
|
||||||
Minimap.TerrainBitmap(surface1.Map, true)
|
|
||||||
.Save(Path.Combine(loadedMapName, "map.png"), System.Drawing.Imaging.ImageFormat.Png);
|
|
||||||
}
|
|
||||||
dirty = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SaveAsClicked(object sender, EventArgs e)
|
void SaveAsClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
using (var nms = new MapSelect())
|
using (var nms = new MapSelect())
|
||||||
{
|
{
|
||||||
nms.MapFolderPath = new string[] { Environment.CurrentDirectory, "mods", currentMod, "maps" }
|
nms.MapFolderPath = new string[] { Environment.CurrentDirectory, "mods", currentMod, "maps" }
|
||||||
.Aggregate(Path.Combine);
|
.Aggregate(Path.Combine);
|
||||||
|
|
||||||
nms.txtNew.ReadOnly = false;
|
nms.txtNew.ReadOnly = false;
|
||||||
nms.btnOk.Text = "Save";
|
nms.btnOk.Text = "Save";
|
||||||
nms.txtNew.Text = "unnamed";
|
nms.txtNew.Text = "unnamed";
|
||||||
nms.txtPathOut.ReadOnly = false;
|
nms.txtPathOut.ReadOnly = false;
|
||||||
|
|
||||||
if (DialogResult.OK == nms.ShowDialog())
|
if (DialogResult.OK == nms.ShowDialog())
|
||||||
{
|
{
|
||||||
|
if (nms.txtNew.Text == "")
|
||||||
|
nms.txtNew.Text = "unnamed";
|
||||||
|
|
||||||
if (nms.txtNew.Text == "")
|
string mapfoldername = Path.Combine(nms.MapFolderPath, nms.txtNew.Text);
|
||||||
{
|
loadedMapName = mapfoldername;
|
||||||
nms.txtNew.Text = "unnamed";
|
|
||||||
}
|
|
||||||
|
|
||||||
string mapfoldername = Path.Combine(nms.MapFolderPath, nms.txtNew.Text);
|
try
|
||||||
DirectoryInfo directory = new DirectoryInfo(mapfoldername);
|
{
|
||||||
loadedMapName = mapfoldername;
|
Directory.CreateDirectory(mapfoldername);
|
||||||
try
|
}
|
||||||
{
|
catch (Exception ed)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Directory creation failed: {0}", ed.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
if (directory.Exists)
|
SaveClicked(sender, e);
|
||||||
{
|
}
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
directory.Create();
|
|
||||||
}
|
|
||||||
catch (Exception ed)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Directory creation failed: {0}", ed.ToString());
|
|
||||||
}
|
|
||||||
finally { }
|
|
||||||
|
|
||||||
SaveClicked(sender, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//if (DialogResult.OK == folderBrowser.ShowDialog())
|
|
||||||
//{
|
|
||||||
//loadedMapName = folderBrowser.SelectedPath;
|
|
||||||
// SaveClicked(sender, e);
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenClicked(object sender, EventArgs e)
|
void OpenClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
//folderBrowser.ShowNewFolderButton = true;
|
using (var nms = new MapSelect())
|
||||||
|
{
|
||||||
|
nms.MapFolderPath = new string[] { Environment.CurrentDirectory, "mods", currentMod, "maps" }
|
||||||
|
.Aggregate(Path.Combine);
|
||||||
|
|
||||||
|
nms.txtNew.ReadOnly = true;
|
||||||
|
nms.txtPathOut.ReadOnly = true;
|
||||||
|
nms.btnOk.Text = "Open";
|
||||||
|
|
||||||
using (var nms = new MapSelect())
|
if (DialogResult.OK == nms.ShowDialog())
|
||||||
{
|
{
|
||||||
nms.MapFolderPath = new string[] { Environment.CurrentDirectory, "mods", currentMod, "maps" }
|
string mapfoldername = Path.Combine(nms.MapFolderPath, nms.txtNew.Text);
|
||||||
.Aggregate(Path.Combine);
|
LoadMap(mapfoldername);
|
||||||
|
}
|
||||||
nms.txtNew.ReadOnly = true;
|
}
|
||||||
nms.txtPathOut.ReadOnly = true;
|
|
||||||
nms.btnOk.Text = "Open";
|
|
||||||
|
|
||||||
if (DialogResult.OK == nms.ShowDialog())
|
|
||||||
{
|
|
||||||
string mapfoldername = Path.Combine(nms.MapFolderPath, nms.txtNew.Text);
|
|
||||||
LoadMap(mapfoldername);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//if (DialogResult.OK == folderBrowser.ShowDialog())
|
|
||||||
//LoadMap(folderBrowser.SelectedPath);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void NewClicked(object sender, EventArgs e)
|
void NewClicked(object sender, EventArgs e)
|
||||||
@@ -489,9 +458,9 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
var map = LegacyMapImporter.Import(ofd.FileName);
|
var map = LegacyMapImporter.Import(ofd.FileName);
|
||||||
map.Package = new Folder(savePath);
|
map.Package = new Folder(savePath);
|
||||||
map.Players.Add("Neutral", new PlayerReference("Neutral",
|
map.Players.Add("Neutral", new PlayerReference("Neutral",
|
||||||
Rules.Info["world"].Traits.WithInterface<CountryInfo>().First().Race, true, true));
|
Rules.Info["world"].Traits.WithInterface<CountryInfo>().First().Race, true, true));
|
||||||
|
|
||||||
map.Save(savePath);
|
map.Save(savePath);
|
||||||
LoadMap(savePath);
|
LoadMap(savePath);
|
||||||
loadedMapName = null; /* editor needs to think this hasnt been saved */
|
loadedMapName = null; /* editor needs to think this hasnt been saved */
|
||||||
@@ -514,30 +483,15 @@ namespace OpenRA.Editor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
|
private void layersFloaterToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
var pb = new PaletteBox();
|
||||||
|
pb.Show();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
private void OnSurfaceClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
private void statusStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
|
pmMiniMap.Image = Minimap.TerrainBitmap(surface1.Map, true);
|
||||||
{
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void surface1_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void layersFloaterToolStripMenuItem_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
var pb = new PaletteBox();
|
|
||||||
pb.Show();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void surface1_Click_1(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
pmMiniMap.Image = Minimap.TerrainBitmap(surface1.Map, true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user