public Color[,] ParseColorArray(string arrayString)
{
if (string.IsNullOrEmpty(arrayString))
return null;
var intermediateArray = arrayString.Split('|');
if ((intermediateArray[0] == "1") || (intermediateArray.Length < 2))
return null;
var array = intermediateArray[1].Substring(1).Split(' ');
if (!array.Any())
return null;
try
{
var colors = new Color[6, 22];
foreach (var intermediate in array)
{
if (intermediate.Length > 16)
continue;
// Can't parse to a byte directly since it may contain values >254
var parts = intermediate.Split(',').Select(int.Parse).ToArray();
if ((parts[0] >= 5) && (parts[1] >= 21))
continue;
colors[parts[0], parts[1]] = Color.FromRgb((byte) parts[2], (byte) parts[3], (byte) parts[4]);
}
return colors;
}
catch (FormatException e)
{
MainManager.Logger.Trace(e, "Failed to parse to color array");
return null;
}
}