using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; public class SoftColorListData : CsvData { public string ID { get; set; } public string Bar_Color { get; set; } public string Bar_Alpha { get; set; } public string Button_Color { get; set; } public string Button_Alpha { get; set; } public string Icon_Color { get; set; } public string Icon_Alpha { get; set; } public string Text_Color { get; set; } public string Text_Alpha { get; set; } public string Background_Color { get; set; } public string Background_Alpha { get; set; } public SoftColorListData( string Id, string bar_Color, string bar_Alpha, string button_Color, string button_Alpha, string icon_Color, string icon_Alpha, string text_Color, string text_Alpha, string background_Color, string background_Alpha) { ID = Id; Bar_Color = bar_Color; Bar_Alpha = bar_Alpha; Button_Color = button_Color; Button_Alpha = button_Alpha; Icon_Color = icon_Color; Icon_Alpha = icon_Alpha; Text_Color = text_Color; Text_Alpha = text_Alpha; Background_Color = background_Color; Background_Alpha = background_Alpha; } public SoftColorListData(string line, bool isHeaderSet, List headers, Dictionary indexes) { _line = line; _isHeaderSet = isHeaderSet; _headers = headers; _indexes = indexes; ID = "SC_01"; string[] lineElements = line.Split(','); foreach (var keyValue in _indexes) { string element = ExtractElementFromLine(lineElements, keyValue.Value); switch (keyValue.Key) { case CsvHeaders.ID: ID = ID = element; break; case CsvHeaders.Bar_Color: Bar_Color = element; break; case CsvHeaders.Bar_Alpha: Bar_Alpha = element; break; case CsvHeaders.Button_Color: Button_Color = element; break; case CsvHeaders.Button_Alpha: Button_Alpha = element; break; case CsvHeaders.Icon_Color: Icon_Color = element; break; case CsvHeaders.Icon_Alpha: Icon_Alpha = element; break; case CsvHeaders.Text_Color: Text_Color = element; break; case CsvHeaders.Text_Alpha: Text_Alpha = element; break; case CsvHeaders.Background_Color: Background_Color = element; break; case CsvHeaders.Background_Alpha: Background_Alpha = element; break; default: break; } } } public static Dictionary GetDataFromCsv(List loadsFromCsv) { var value = SetHeader(loadsFromCsv); var indexes = InitializeIndexes(value.Item1, value.Item2); return ExtractTFromCsv(loadsFromCsv, value.Item1, indexes, line => new SoftColorListData(line, value.Item1, value.Item2, indexes)); } public static Dictionary InitializeIndexes(bool isHeaderSet, List headers) { Dictionary indexes = new(); if (isHeaderSet) { indexes = InitializeIndexesWithHeaders(headers); } else { indexes.Add(CsvHeaders.Bar_Color, 0); indexes.Add(CsvHeaders.Bar_Alpha, 1); indexes.Add(CsvHeaders.Button_Color, 2); indexes.Add(CsvHeaders.Button_Alpha, 3); indexes.Add(CsvHeaders.Icon_Color, 4); indexes.Add(CsvHeaders.Icon_Alpha, 5); indexes.Add(CsvHeaders.Text_Color, 6); indexes.Add(CsvHeaders.Text_Alpha, 7); indexes.Add(CsvHeaders.Background_Color, 8); indexes.Add(CsvHeaders.Background_Alpha, 9); } return indexes; } public override Dictionary GetFilters() { throw new System.NotImplementedException(); } public override string GetPropertyValue(CsvHeaders header) { switch (header) { case CsvHeaders.ID: return ID; case CsvHeaders.Bar_Color: return Bar_Color; case CsvHeaders.Bar_Alpha: return Bar_Alpha; case CsvHeaders.Button_Color: return Button_Color; case CsvHeaders.Button_Alpha: return Button_Alpha; case CsvHeaders.Icon_Color: return Icon_Color; case CsvHeaders.Icon_Alpha: return Icon_Alpha; case CsvHeaders.Text_Color: return Text_Color; case CsvHeaders.Text_Alpha: return Text_Alpha; case CsvHeaders.Background_Color: return Background_Color; case CsvHeaders.Background_Alpha: return Background_Alpha; default: Debug.Log("No Property found for " + header.ToString()); return ""; } } }