Remove HSLColor.
This commit is contained in:
@@ -24,7 +24,7 @@ namespace OpenRA.Mods.Common
|
||||
public readonly int Threshold = 0x50;
|
||||
public readonly float[] HsvSaturationRange = new[] { 0.25f, 1f };
|
||||
public readonly float[] HsvValueRange = new[] { 0.2f, 1.0f };
|
||||
public readonly HSLColor[] TeamColorPresets = { };
|
||||
public readonly Color[] TeamColorPresets = { };
|
||||
|
||||
double GetColorDelta(Color colorA, Color colorB)
|
||||
{
|
||||
@@ -59,7 +59,9 @@ namespace OpenRA.Mods.Common
|
||||
{
|
||||
// Validate color against HSV
|
||||
float h, s, v;
|
||||
new HSLColor(askedColor).ToHSV(out h, out s, out v);
|
||||
int a;
|
||||
|
||||
askedColor.ToAhsv(out a, out h, out s, out v);
|
||||
if (s < HsvSaturationRange[0] || s > HsvSaturationRange[1] || v < HsvValueRange[0] || v > HsvValueRange[1])
|
||||
{
|
||||
onError("Color was adjusted to be inside the allowed range.");
|
||||
@@ -87,23 +89,23 @@ namespace OpenRA.Mods.Common
|
||||
return true;
|
||||
}
|
||||
|
||||
public HSLColor RandomPresetColor(MersenneTwister random, IEnumerable<Color> terrainColors, IEnumerable<Color> playerColors)
|
||||
public Color RandomPresetColor(MersenneTwister random, IEnumerable<Color> terrainColors, IEnumerable<Color> playerColors)
|
||||
{
|
||||
if (TeamColorPresets.Any())
|
||||
{
|
||||
Color forbidden;
|
||||
Action<string> ignoreError = _ => { };
|
||||
foreach (var c in TeamColorPresets.Shuffle(random))
|
||||
if (IsValid(c.RGB, out forbidden, terrainColors, playerColors, ignoreError))
|
||||
if (IsValid(c, out forbidden, terrainColors, playerColors, ignoreError))
|
||||
return c;
|
||||
}
|
||||
|
||||
return RandomValidColor(random, terrainColors, playerColors);
|
||||
}
|
||||
|
||||
public HSLColor RandomValidColor(MersenneTwister random, IEnumerable<Color> terrainColors, IEnumerable<Color> playerColors)
|
||||
public Color RandomValidColor(MersenneTwister random, IEnumerable<Color> terrainColors, IEnumerable<Color> playerColors)
|
||||
{
|
||||
HSLColor color;
|
||||
Color color;
|
||||
Color forbidden;
|
||||
Action<string> ignoreError = _ => { };
|
||||
do
|
||||
@@ -111,17 +113,17 @@ namespace OpenRA.Mods.Common
|
||||
var h = random.Next(255) / 255f;
|
||||
var s = float2.Lerp(HsvSaturationRange[0], HsvSaturationRange[1], random.NextFloat());
|
||||
var v = float2.Lerp(HsvValueRange[0], HsvValueRange[1], random.NextFloat());
|
||||
color = HSLColor.FromHSV(h, s, v);
|
||||
} while (!IsValid(color.RGB, out forbidden, terrainColors, playerColors, ignoreError));
|
||||
color = Color.FromAhsv(h, s, v);
|
||||
} while (!IsValid(color, out forbidden, terrainColors, playerColors, ignoreError));
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
public HSLColor MakeValid(Color askedColor, MersenneTwister random, IEnumerable<Color> terrainColors, IEnumerable<Color> playerColors, Action<string> onError)
|
||||
public Color MakeValid(Color askedColor, MersenneTwister random, IEnumerable<Color> terrainColors, IEnumerable<Color> playerColors, Action<string> onError)
|
||||
{
|
||||
Color forbiddenColor;
|
||||
if (IsValid(askedColor, out forbiddenColor, terrainColors, playerColors, onError))
|
||||
return new HSLColor(askedColor);
|
||||
return askedColor;
|
||||
|
||||
// Vector between the 2 colors
|
||||
var vector = new double[]
|
||||
@@ -151,7 +153,7 @@ namespace OpenRA.Mods.Common
|
||||
|
||||
var attempt = 1;
|
||||
var allForbidden = terrainColors.Concat(playerColors);
|
||||
HSLColor color;
|
||||
Color color;
|
||||
do
|
||||
{
|
||||
// If we reached the limit (The ii >= 255 prevents too much calculations)
|
||||
@@ -167,10 +169,10 @@ namespace OpenRA.Mods.Common
|
||||
var b = (forbiddenColor.B + (int)(vector[2] * weightVector[2] * attempt)).Clamp(0, 255);
|
||||
|
||||
// Get the alternative color attempt
|
||||
color = new HSLColor(Color.FromArgb(r, g, b));
|
||||
color = Color.FromArgb(r, g, b);
|
||||
|
||||
attempt++;
|
||||
} while (!IsValid(color.RGB, allForbidden, out forbiddenColor));
|
||||
} while (!IsValid(color, allForbidden, out forbiddenColor));
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user