Use CellLayer for custom terrain.
This commit is contained in:
@@ -113,7 +113,7 @@ namespace OpenRA
|
||||
|
||||
[FieldLoader.Ignore] public Lazy<TileReference<ushort, byte>[,]> MapTiles;
|
||||
[FieldLoader.Ignore] public Lazy<TileReference<byte, byte>[,]> MapResources;
|
||||
[FieldLoader.Ignore] public int[,] CustomTerrain;
|
||||
[FieldLoader.Ignore] public CellLayer<int> CustomTerrain;
|
||||
|
||||
[FieldLoader.Ignore] Lazy<Ruleset> rules;
|
||||
public Ruleset Rules { get { return rules != null ? rules.Value : null; } }
|
||||
@@ -257,9 +257,9 @@ namespace OpenRA
|
||||
var br = new CPos(Bounds.Right - 1, Bounds.Bottom - 1);
|
||||
Cells = new CellRegion(tl, br);
|
||||
|
||||
CustomTerrain = new int[MapSize.X, MapSize.Y];
|
||||
CustomTerrain = new CellLayer<int>(this);
|
||||
foreach (var cell in Cells)
|
||||
CustomTerrain[cell.X, cell.Y] = -1;
|
||||
CustomTerrain[cell] = -1;
|
||||
}
|
||||
|
||||
public Ruleset PreloadRules()
|
||||
@@ -548,7 +548,7 @@ namespace OpenRA
|
||||
|
||||
public int GetTerrainIndex(CPos cell)
|
||||
{
|
||||
var custom = CustomTerrain[cell.X, cell.Y];
|
||||
var custom = CustomTerrain[cell];
|
||||
var tileSet = Rules.TileSets[Tileset];
|
||||
return custom != -1 ? custom : tileSet.GetTerrainIndex(MapTiles.Value[cell.X, cell.Y]);
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ namespace OpenRA.Traits
|
||||
|
||||
CellContents CreateResourceCell(ResourceType t, CPos cell)
|
||||
{
|
||||
world.Map.CustomTerrain[cell.X, cell.Y] = world.TileSet.GetTerrainIndex(t.Info.TerrainType);
|
||||
world.Map.CustomTerrain[cell] = world.TileSet.GetTerrainIndex(t.Info.TerrainType);
|
||||
|
||||
return new CellContents
|
||||
{
|
||||
@@ -190,7 +190,7 @@ namespace OpenRA.Traits
|
||||
if (--c.Density < 0)
|
||||
{
|
||||
content[cell] = EmptyCell;
|
||||
world.Map.CustomTerrain[cell.X, cell.Y] = -1;
|
||||
world.Map.CustomTerrain[cell] = -1;
|
||||
}
|
||||
else
|
||||
content[cell] = c;
|
||||
@@ -209,7 +209,7 @@ namespace OpenRA.Traits
|
||||
|
||||
// Clear cell
|
||||
content[cell] = EmptyCell;
|
||||
world.Map.CustomTerrain[cell.X, cell.Y] = -1;
|
||||
world.Map.CustomTerrain[cell] = -1;
|
||||
|
||||
if (!dirty.Contains(cell))
|
||||
dirty.Add(cell);
|
||||
|
||||
Reference in New Issue
Block a user