public static List <ColorMapping> ParseList(JsonArray data, IColorPaletteEntry lightRegion, IColorPaletteEntry darkRegion, ColorPalette lightBase, ColorPalette darkBase, ColorPalette lightPrimary, ColorPalette darkPrimary, IColorPaletteEntry white, IColorPaletteEntry black) { List <ColorMapping> retVal = new List <ColorMapping>(); foreach (var node in data) { retVal.Add(ColorMapping.Parse(node.GetObject(), lightRegion, darkRegion, lightBase, darkBase, lightPrimary, darkPrimary, white, black)); } return(retVal); }
public static ColorMapping Parse(JsonObject data, IColorPaletteEntry lightRegion, IColorPaletteEntry darkRegion, ColorPalette lightBase, ColorPalette darkBase, ColorPalette lightPrimary, ColorPalette darkPrimary, IColorPaletteEntry white, IColorPaletteEntry black) { var target = data["Target"].GetEnum <ColorTarget>(); var source = data["Source"].GetEnum <ColorSource>(); int index = 0; if (data.ContainsKey("SourceIndex")) { index = data["SourceIndex"].GetInt(); } switch (source) { case ColorSource.LightRegion: return(new ColorMapping(lightRegion, target)); case ColorSource.DarkRegion: return(new ColorMapping(darkRegion, target)); case ColorSource.LightBase: return(new ColorMapping(lightBase.Palette[index], target)); case ColorSource.DarkBase: return(new ColorMapping(darkBase.Palette[index], target)); case ColorSource.LightPrimary: return(new ColorMapping(lightPrimary.Palette[index], target)); case ColorSource.DarkPrimary: return(new ColorMapping(darkPrimary.Palette[index], target)); case ColorSource.White: return(new ColorMapping(white, target)); case ColorSource.Black: return(new ColorMapping(black, target)); } return(null); }