automatically fix open areas
and don't hard-code the tiles no more
This commit is contained in:
@@ -402,6 +402,7 @@ namespace OpenRA.Editor
|
||||
|
||||
map.Players.Clear();
|
||||
map.MakeDefaultPlayers();
|
||||
map.FixOpenAreas();
|
||||
|
||||
NewMap(map);
|
||||
}
|
||||
@@ -484,18 +485,7 @@ namespace OpenRA.Editor
|
||||
void FixOpenAreas(object sender, EventArgs e)
|
||||
{
|
||||
dirty = true;
|
||||
var r = new Random();
|
||||
|
||||
for (var j = surface1.Map.Bounds.Top; j < surface1.Map.Bounds.Bottom; j++)
|
||||
for (var i = surface1.Map.Bounds.Left; i < surface1.Map.Bounds.Right; i++)
|
||||
{
|
||||
var tr = surface1.Map.MapTiles.Value[i, j];
|
||||
if (tr.Type == 0xff || tr.Type == 0xffff || tr.Type == 1 || tr.Type == 2)
|
||||
tr.Index = (byte)r.Next(0, surface1.TileSetRenderer.Data(tr.Type).Count);
|
||||
|
||||
surface1.Map.MapTiles.Value[i, j] = tr;
|
||||
}
|
||||
|
||||
surface1.Map.FixOpenAreas();
|
||||
surface1.Chunks.Clear();
|
||||
surface1.Invalidate();
|
||||
}
|
||||
|
||||
@@ -474,5 +474,24 @@ namespace OpenRA
|
||||
Enemies = Players.Where(p => p.Value.Playable).Select(p => p.Key).ToArray()
|
||||
});
|
||||
}
|
||||
|
||||
public void FixOpenAreas()
|
||||
{
|
||||
var r = new Random();
|
||||
var tileset = OpenRA.Rules.TileSets[Tileset];
|
||||
|
||||
for (var j = Bounds.Top; j < Bounds.Bottom; j++)
|
||||
{
|
||||
for (var i = Bounds.Left; i < Bounds.Right; i++)
|
||||
{
|
||||
var tr = MapTiles.Value[i, j];
|
||||
var template = tileset.Templates[tr.Type];
|
||||
if (!template.PickAny)
|
||||
continue;
|
||||
tr.Index = (byte)r.Next(0, template.Tiles.Count);
|
||||
MapTiles.Value[i, j] = tr;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,6 +342,7 @@ namespace OpenRA.Utility
|
||||
var map = LegacyMapImporter.Import(filename, e => Console.WriteLine(e));
|
||||
map.RequiresMod = mod;
|
||||
map.MakeDefaultPlayers();
|
||||
map.FixOpenAreas();
|
||||
var dest = map.Title + ".oramap";
|
||||
map.Save(dest);
|
||||
Console.WriteLine(dest + " saved.");
|
||||
|
||||
@@ -60,6 +60,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@65535:
|
||||
Id: 65535
|
||||
Image: clear1
|
||||
@@ -67,6 +82,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@0:
|
||||
Id: 0
|
||||
Image: clear1
|
||||
@@ -74,6 +104,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@1:
|
||||
Id: 1
|
||||
Image: w1
|
||||
|
||||
@@ -60,6 +60,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@65535:
|
||||
Id: 65535
|
||||
Image: clear1
|
||||
@@ -67,6 +82,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@0:
|
||||
Id: 0
|
||||
Image: clear1
|
||||
@@ -74,6 +104,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@1:
|
||||
Id: 1
|
||||
Image: w1
|
||||
|
||||
@@ -60,6 +60,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@65535:
|
||||
Id: 65535
|
||||
Image: clear1
|
||||
@@ -67,6 +82,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@0:
|
||||
Id: 0
|
||||
Image: clear1
|
||||
@@ -74,6 +104,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@1:
|
||||
Id: 1
|
||||
Image: w1
|
||||
|
||||
@@ -60,6 +60,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@65535:
|
||||
Id: 65535
|
||||
Image: clear1
|
||||
@@ -67,6 +82,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@0:
|
||||
Id: 0
|
||||
Image: clear1
|
||||
@@ -74,6 +104,21 @@ Templates:
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
2: Clear
|
||||
3: Clear
|
||||
4: Clear
|
||||
5: Clear
|
||||
6: Clear
|
||||
7: Clear
|
||||
8: Clear
|
||||
9: Clear
|
||||
10: Clear
|
||||
11: Clear
|
||||
12: Clear
|
||||
13: Clear
|
||||
14: Clear
|
||||
15: Clear
|
||||
Template@1:
|
||||
Id: 1
|
||||
Image: w1
|
||||
|
||||
@@ -64,7 +64,7 @@ Templates:
|
||||
Image: BLOXBASE
|
||||
Frames: 0
|
||||
Size: 1,1
|
||||
PickAny: False
|
||||
PickAny: True # TODO: add more Frames and Tiles here
|
||||
Tiles:
|
||||
0: Sand
|
||||
Template@1:
|
||||
|
||||
@@ -75,6 +75,7 @@ Templates:
|
||||
Image: clear1
|
||||
Size: 1,1
|
||||
Category: Terrain
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
@@ -97,6 +98,7 @@ Templates:
|
||||
Image: clear1
|
||||
Size: 1,1
|
||||
Category: Terrain
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
|
||||
@@ -56,6 +56,7 @@ Templates:
|
||||
Id: 255
|
||||
Image: clear1
|
||||
Size: 1,1
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
@@ -76,6 +77,7 @@ Templates:
|
||||
Template@65535:
|
||||
Id: 65535
|
||||
Image: clear1
|
||||
PickAny: True
|
||||
Size: 1,1
|
||||
Tiles:
|
||||
0: Clear
|
||||
|
||||
@@ -58,6 +58,7 @@ Templates:
|
||||
Image: clear1
|
||||
Size: 1,1
|
||||
Category: Terrain
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
@@ -80,6 +81,7 @@ Templates:
|
||||
Image: clear1
|
||||
Size: 1,1
|
||||
Category: Terrain
|
||||
PickAny: True
|
||||
Tiles:
|
||||
0: Clear
|
||||
1: Clear
|
||||
|
||||
Reference in New Issue
Block a user