Reduce duplication between Map and PlayerRadarTerrain.
This commit is contained in:
committed by
Oliver Brakmann
parent
5f588561b6
commit
b3ee8b447e
@@ -91,31 +91,14 @@ namespace OpenRA.Mods.Common.Traits
|
||||
public static Pair<int, int> GetColor(Map map, MPos uv)
|
||||
{
|
||||
var custom = map.CustomTerrain[uv];
|
||||
Color leftColor, rightColor;
|
||||
if (custom == byte.MaxValue)
|
||||
if (custom != byte.MaxValue)
|
||||
{
|
||||
var tileset = map.Rules.TileSet;
|
||||
var type = tileset.GetTileInfo(map.Tiles[uv]);
|
||||
if (type != null)
|
||||
{
|
||||
if (tileset.MinHeightColorBrightness != 1.0f || tileset.MaxHeightColorBrightness != 1.0f)
|
||||
{
|
||||
var left = Exts.ColorLerp(Game.CosmeticRandom.NextFloat(), type.MinColor, type.MaxColor);
|
||||
var right = Exts.ColorLerp(Game.CosmeticRandom.NextFloat(), type.MinColor, type.MaxColor);
|
||||
var scale = float2.Lerp(tileset.MinHeightColorBrightness, tileset.MaxHeightColorBrightness, map.Height[uv] * 1f / map.Grid.MaximumTerrainHeight);
|
||||
leftColor = Color.FromArgb((int)(scale * left.R).Clamp(0, 255), (int)(scale * left.G).Clamp(0, 255), (int)(scale * left.B).Clamp(0, 255));
|
||||
rightColor = Color.FromArgb((int)(scale * right.R).Clamp(0, 255), (int)(scale * right.G).Clamp(0, 255), (int)(scale * right.B).Clamp(0, 255));
|
||||
}
|
||||
else
|
||||
leftColor = rightColor = type.MinColor;
|
||||
}
|
||||
else
|
||||
leftColor = rightColor = Color.Black;
|
||||
var c = map.Rules.TileSet[custom].Color.ToArgb();
|
||||
return Pair.New(c, c);
|
||||
}
|
||||
else
|
||||
leftColor = rightColor = map.Rules.TileSet[custom].Color;
|
||||
|
||||
return Pair.New(leftColor.ToArgb(), rightColor.ToArgb());
|
||||
var tc = map.GetTerrainColorPair(uv);
|
||||
return Pair.New(tc.First.ToArgb(), tc.Second.ToArgb());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user