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.Players.Clear();
|
||||||
map.MakeDefaultPlayers();
|
map.MakeDefaultPlayers();
|
||||||
|
map.FixOpenAreas();
|
||||||
|
|
||||||
NewMap(map);
|
NewMap(map);
|
||||||
}
|
}
|
||||||
@@ -484,18 +485,7 @@ namespace OpenRA.Editor
|
|||||||
void FixOpenAreas(object sender, EventArgs e)
|
void FixOpenAreas(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
dirty = true;
|
dirty = true;
|
||||||
var r = new Random();
|
surface1.Map.FixOpenAreas();
|
||||||
|
|
||||||
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.Chunks.Clear();
|
surface1.Chunks.Clear();
|
||||||
surface1.Invalidate();
|
surface1.Invalidate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -474,5 +474,24 @@ namespace OpenRA
|
|||||||
Enemies = Players.Where(p => p.Value.Playable).Select(p => p.Key).ToArray()
|
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));
|
var map = LegacyMapImporter.Import(filename, e => Console.WriteLine(e));
|
||||||
map.RequiresMod = mod;
|
map.RequiresMod = mod;
|
||||||
map.MakeDefaultPlayers();
|
map.MakeDefaultPlayers();
|
||||||
|
map.FixOpenAreas();
|
||||||
var dest = map.Title + ".oramap";
|
var dest = map.Title + ".oramap";
|
||||||
map.Save(dest);
|
map.Save(dest);
|
||||||
Console.WriteLine(dest + " saved.");
|
Console.WriteLine(dest + " saved.");
|
||||||
|
|||||||
@@ -60,6 +60,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@65535:
|
||||||
Id: 65535
|
Id: 65535
|
||||||
Image: clear1
|
Image: clear1
|
||||||
@@ -67,6 +82,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@0:
|
||||||
Id: 0
|
Id: 0
|
||||||
Image: clear1
|
Image: clear1
|
||||||
@@ -74,6 +104,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@1:
|
||||||
Id: 1
|
Id: 1
|
||||||
Image: w1
|
Image: w1
|
||||||
|
|||||||
@@ -60,6 +60,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@65535:
|
||||||
Id: 65535
|
Id: 65535
|
||||||
Image: clear1
|
Image: clear1
|
||||||
@@ -67,6 +82,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@0:
|
||||||
Id: 0
|
Id: 0
|
||||||
Image: clear1
|
Image: clear1
|
||||||
@@ -74,6 +104,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@1:
|
||||||
Id: 1
|
Id: 1
|
||||||
Image: w1
|
Image: w1
|
||||||
|
|||||||
@@ -60,6 +60,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@65535:
|
||||||
Id: 65535
|
Id: 65535
|
||||||
Image: clear1
|
Image: clear1
|
||||||
@@ -67,6 +82,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@0:
|
||||||
Id: 0
|
Id: 0
|
||||||
Image: clear1
|
Image: clear1
|
||||||
@@ -74,6 +104,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@1:
|
||||||
Id: 1
|
Id: 1
|
||||||
Image: w1
|
Image: w1
|
||||||
|
|||||||
@@ -60,6 +60,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@65535:
|
||||||
Id: 65535
|
Id: 65535
|
||||||
Image: clear1
|
Image: clear1
|
||||||
@@ -67,6 +82,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@0:
|
||||||
Id: 0
|
Id: 0
|
||||||
Image: clear1
|
Image: clear1
|
||||||
@@ -74,6 +104,21 @@ Templates:
|
|||||||
PickAny: True
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
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:
|
Template@1:
|
||||||
Id: 1
|
Id: 1
|
||||||
Image: w1
|
Image: w1
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ Templates:
|
|||||||
Image: BLOXBASE
|
Image: BLOXBASE
|
||||||
Frames: 0
|
Frames: 0
|
||||||
Size: 1,1
|
Size: 1,1
|
||||||
PickAny: False
|
PickAny: True # TODO: add more Frames and Tiles here
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Sand
|
0: Sand
|
||||||
Template@1:
|
Template@1:
|
||||||
@@ -108,7 +108,7 @@ Templates:
|
|||||||
Image: BLOXBASE
|
Image: BLOXBASE
|
||||||
Frames: 16,17,36,37
|
Frames: 16,17,36,37
|
||||||
Size: 2,2
|
Size: 2,2
|
||||||
Category: Dune
|
Category: Dune
|
||||||
PickAny: False
|
PickAny: False
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Sand
|
0: Sand
|
||||||
@@ -120,7 +120,7 @@ Templates:
|
|||||||
Image: BLOXBASE
|
Image: BLOXBASE
|
||||||
Frames: 18,19,38,39
|
Frames: 18,19,38,39
|
||||||
Size: 2,2
|
Size: 2,2
|
||||||
Category: Dune
|
Category: Dune
|
||||||
PickAny: False
|
PickAny: False
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Dune
|
0: Dune
|
||||||
@@ -132,7 +132,7 @@ Templates:
|
|||||||
Image: BLOXBASE
|
Image: BLOXBASE
|
||||||
Frames: 58,59,78,79
|
Frames: 58,59,78,79
|
||||||
Size: 2,2
|
Size: 2,2
|
||||||
Category: Dune
|
Category: Dune
|
||||||
PickAny: False
|
PickAny: False
|
||||||
Tiles:
|
Tiles:
|
||||||
1: Dune
|
1: Dune
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ Templates:
|
|||||||
Image: clear1
|
Image: clear1
|
||||||
Size: 1,1
|
Size: 1,1
|
||||||
Category: Terrain
|
Category: Terrain
|
||||||
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
0: Clear
|
||||||
1: Clear
|
1: Clear
|
||||||
@@ -97,6 +98,7 @@ Templates:
|
|||||||
Image: clear1
|
Image: clear1
|
||||||
Size: 1,1
|
Size: 1,1
|
||||||
Category: Terrain
|
Category: Terrain
|
||||||
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
0: Clear
|
||||||
1: Clear
|
1: Clear
|
||||||
@@ -115,14 +117,14 @@ Templates:
|
|||||||
14: Clear
|
14: Clear
|
||||||
15: Clear
|
15: Clear
|
||||||
Template@256:
|
Template@256:
|
||||||
Id: 256
|
Id: 256
|
||||||
Image: w1
|
Image: w1
|
||||||
Size: 1,1
|
Size: 1,1
|
||||||
Category: Terrain
|
Category: Terrain
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Water
|
0: Water
|
||||||
Template@257:
|
Template@257:
|
||||||
Id: 257
|
Id: 257
|
||||||
Image: sh17
|
Image: sh17
|
||||||
Size: 2,2
|
Size: 2,2
|
||||||
Category: Terrain
|
Category: Terrain
|
||||||
@@ -132,7 +134,7 @@ Templates:
|
|||||||
2: Water
|
2: Water
|
||||||
3: Water
|
3: Water
|
||||||
Template@258:
|
Template@258:
|
||||||
Id: 258
|
Id: 258
|
||||||
Image: sh18
|
Image: sh18
|
||||||
Size: 2,2
|
Size: 2,2
|
||||||
Category: Terrain
|
Category: Terrain
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ Templates:
|
|||||||
Id: 255
|
Id: 255
|
||||||
Image: clear1
|
Image: clear1
|
||||||
Size: 1,1
|
Size: 1,1
|
||||||
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
0: Clear
|
||||||
1: Clear
|
1: Clear
|
||||||
@@ -76,6 +77,7 @@ Templates:
|
|||||||
Template@65535:
|
Template@65535:
|
||||||
Id: 65535
|
Id: 65535
|
||||||
Image: clear1
|
Image: clear1
|
||||||
|
PickAny: True
|
||||||
Size: 1,1
|
Size: 1,1
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
0: Clear
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ Templates:
|
|||||||
Image: clear1
|
Image: clear1
|
||||||
Size: 1,1
|
Size: 1,1
|
||||||
Category: Terrain
|
Category: Terrain
|
||||||
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
0: Clear
|
||||||
1: Clear
|
1: Clear
|
||||||
@@ -80,6 +81,7 @@ Templates:
|
|||||||
Image: clear1
|
Image: clear1
|
||||||
Size: 1,1
|
Size: 1,1
|
||||||
Category: Terrain
|
Category: Terrain
|
||||||
|
PickAny: True
|
||||||
Tiles:
|
Tiles:
|
||||||
0: Clear
|
0: Clear
|
||||||
1: Clear
|
1: Clear
|
||||||
|
|||||||
Reference in New Issue
Block a user