diff --git a/OpenRA.Editor/Form1.cs b/OpenRA.Editor/Form1.cs index d761497e91..c307fb6efd 100644 --- a/OpenRA.Editor/Form1.cs +++ b/OpenRA.Editor/Form1.cs @@ -101,29 +101,21 @@ namespace OpenRA.Editor void PrepareMapResources(Manifest manifest, Map map) { - Rules.LoadRules(manifest, map); - - // we're also going to need a tileset... - var theaterInfo = Rules.Info["world"].Traits.WithInterface() - .FirstOrDefault(t => t.Theater == map.Theater); - - tileset = new TileSet(theaterInfo.Tileset, theaterInfo.Templates, theaterInfo.Suffix); - colors = theaterInfo.MapColors; - + Rules.LoadRules(manifest, map); + tileset = Rules.TileSets[map.Theater]; var palette = new Palette(FileSystem.Open(map.Theater.ToLowerInvariant() + ".pal"), true); surface1.Bind(map, tileset, palette); // construct the palette of tiles - var palettes = new[] { tilePalette, actorPalette, resourcePalette }; foreach (var p in palettes) { p.Visible = false; p.SuspendLayout(); } - foreach (var n in tileset.tiles.Keys) + foreach (var t in tileset.Templates) { try { - var bitmap = RenderTemplate(tileset, (ushort)n, palette); + var bitmap = RenderTemplate(tileset, (ushort)t.Key, palette); var ibox = new PictureBox { Image = bitmap, @@ -132,16 +124,16 @@ namespace OpenRA.Editor SizeMode = PictureBoxSizeMode.StretchImage }; - var brushTemplate = new BrushTemplate { Bitmap = bitmap, N = n }; + var brushTemplate = new BrushTemplate { Bitmap = bitmap, N = t.Key }; ibox.Click += (_, e) => surface1.SetBrush(brushTemplate); - var template = tileset.walk[n]; + var template = t.Value; tilePalette.Controls.Add(ibox); tt.SetToolTip(ibox, "{1}:{0} ({3}x{4} {2})".F( - template.Name, - template.Index, + template.Image, + template.Id, template.Bridge, template.Size.X, template.Size.Y)); @@ -156,7 +148,7 @@ namespace OpenRA.Editor try { var info = Rules.Info[a]; - var template = RenderActor(info, theaterInfo.Suffix, palette); + var template = RenderActor(info, tileset.TileSuffix, palette); var ibox = new PictureBox { Image = template.Bitmap, @@ -187,7 +179,7 @@ namespace OpenRA.Editor { try { - var template = RenderResourceType(a, theaterInfo.Suffix, palette); + var template = RenderResourceType(a, tileset.TileSuffix, palette); var ibox = new PictureBox { Image = template.Bitmap, @@ -217,8 +209,8 @@ namespace OpenRA.Editor static Bitmap RenderTemplate(TileSet ts, ushort n, Palette p) { - var template = ts.walk[n]; - var tile = ts.tiles[n]; + var template = ts.Templates[n]; + var tile = ts.Tiles[n]; var bitmap = new Bitmap(24 * template.Size.X, 24 * template.Size.Y); var data = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), @@ -388,8 +380,7 @@ namespace OpenRA.Editor using (var nmd = new NewMapDialog()) { nmd.theater.Items.Clear(); - nmd.theater.Items.AddRange(Rules.Info["world"].Traits.WithInterface() - .Select(a => a.Theater).ToArray()); + nmd.theater.Items.AddRange(Rules.TileSets.Select(a => a.Value.Name).ToArray()); nmd.theater.SelectedIndex = 0; if (DialogResult.OK == nmd.ShowDialog()) diff --git a/OpenRA.Editor/Surface.cs b/OpenRA.Editor/Surface.cs index 2055aca26b..add15f6c4f 100644 --- a/OpenRA.Editor/Surface.cs +++ b/OpenRA.Editor/Surface.cs @@ -136,8 +136,8 @@ namespace OpenRA.Editor void DrawWithBrush() { // change the bits in the map - var tile = TileSet.tiles[Brush.N]; - var template = TileSet.walk[Brush.N]; + var tile = TileSet.Tiles[Brush.N]; + var template = TileSet.Templates[Brush.N]; var pos = GetBrushLocation(); if (ModifierKeys == Keys.Shift) @@ -294,7 +294,7 @@ namespace OpenRA.Editor for (var j = 0; j < ChunkSize; j++) { var tr = Map.MapTiles[u * ChunkSize + i, v * ChunkSize + j]; - var tile = TileSet.tiles[tr.type]; + var tile = TileSet.Tiles[tr.type]; var index = (tr.image < tile.TileBitmapBytes.Count) ? tr.image : (byte)0; var rawImage = tile.TileBitmapBytes[index]; for (var x = 0; x < 24; x++)