using System.Collections.Generic; using UnityEngine; public class CounterListData : CsvData { public string ID { get; set; } public string Unique_Name { get; set; } public string Supplier { get; set; } public string Supplier_Private { get; set; } public string Material { get; set; } public string Color { get; set; } public string Language { get { string colorDescription = _G.L == 1 ? Language_1 : _G.L == 2 ? Language_2 : Language_3; if (string.IsNullOrEmpty(colorDescription)) { colorDescription = Language_1; } if (string.IsNullOrEmpty(colorDescription)) { colorDescription = Language_2; } if (string.IsNullOrEmpty(colorDescription)) { colorDescription = Language_3; } //if (string.IsNullOrEmpty(colorDescription)) { colorDescription = Color; } return colorDescription; } } public string Language_1 { get; set; } public string Language_2 { get; set; } public string Language_3 { get; set; } public string Texture { get; set; } public string Bump { get; set; } public string Normal_Strength { get; set; } public string Finish { get; set; } public string Contrast { get; set; } public string Metalness { get; set; } public string Intensity { get; set; } public string Tile { get; set; } public string Rotation { get; set; } public string Color_1 { get; set; } public string Color_2 { get; set; } //public string Color_3 { get; set; } public string Normal_Toggle { get; set; } public CounterListData(string line, bool isHeaderSet, List headers, Dictionary indexes) { _line = line; _isHeaderSet = isHeaderSet; _headers = headers; _indexes = indexes; string[] lineElements = line.Split(','); foreach (var keyValue in _indexes) { string element = ExtractElementFromLine(lineElements, keyValue.Value); switch (keyValue.Key) { case CsvHeaders.ID : ID = element; break; case CsvHeaders.Unique_Name: Unique_Name = element; break; case CsvHeaders.Supplier: Supplier = element; break; case CsvHeaders.Supplier_Private: Supplier_Private = element; break; case CsvHeaders.Material: Material = element; break; case CsvHeaders.Color: Color = element; break; case CsvHeaders.Language_1: Language_1 = element; break; case CsvHeaders.Language_2: Language_2 = element; break; case CsvHeaders.Language_3: Language_3 = element; break; case CsvHeaders.Texture: Texture = element; break; case CsvHeaders.Bump: Bump = element; break; case CsvHeaders.Normal_Strength: Normal_Strength = element; break; case CsvHeaders.Finish: Finish = element; break; case CsvHeaders.Contrast: Contrast = element; break; case CsvHeaders.Metalness: Metalness = element; break; case CsvHeaders.Intensity: Intensity = element; break; case CsvHeaders.Tile: Tile = element; break; case CsvHeaders.Rotation: Rotation = element; break; case CsvHeaders.Color_1: Color_1 = element; break; case CsvHeaders.Color_2: Color_2 = element; break; //case CsvHeaders.Color_3: Color_3 = element; break; case CsvHeaders.Normal_Toggle: Normal_Toggle = 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 CounterListData(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.Unique_Name, 0); indexes.Add(CsvHeaders.Supplier, 1); indexes.Add(CsvHeaders.Material, 2); indexes.Add(CsvHeaders.Color, 3); indexes.Add(CsvHeaders.Texture, 11); indexes.Add(CsvHeaders.Bump, 12); indexes.Add(CsvHeaders.Normal_Strength, 13); indexes.Add(CsvHeaders.Finish, 14); indexes.Add(CsvHeaders.Contrast, 15); indexes.Add(CsvHeaders.Intensity, 16); indexes.Add(CsvHeaders.Tile, 17); indexes.Add(CsvHeaders.Rotation, 18); indexes.Add(CsvHeaders.Color_1, 19); indexes.Add(CsvHeaders.Color_2, 20); //indexes.Add(CsvHeaders.Color_3, 21); indexes.Add(CsvHeaders.Normal_Toggle, 22); } return indexes; } public override Dictionary GetFilters() { return new Dictionary { { CsvHeaders.Supplier.ToString(), Supplier }, { CsvHeaders.Material.ToString(), Material }, { CsvHeaders.Color.ToString(), Color } }; } public override string GetPropertyValue(CsvHeaders header) { switch (header) { case CsvHeaders.ID: return string.IsNullOrEmpty(ID) ? Unique_Name : ID; case CsvHeaders.Unique_Name: return Unique_Name; case CsvHeaders.Supplier: return Supplier; case CsvHeaders.Supplier_Private: return Supplier_Private; case CsvHeaders.Material: return Material; case CsvHeaders.Color: return Color; case CsvHeaders.Language: return Language; case CsvHeaders.Language_1: return Language_1; case CsvHeaders.Language_2: return Language_2; case CsvHeaders.Language_3: return Language_3; case CsvHeaders.Texture: return Texture; case CsvHeaders.Bump: return Bump; case CsvHeaders.Normal_Strength: return Normal_Strength; case CsvHeaders.Finish: return Finish; case CsvHeaders.Contrast: return Contrast; case CsvHeaders.Metalness: return Metalness; case CsvHeaders.Intensity: return Intensity; case CsvHeaders.Tile: return Tile; case CsvHeaders.Rotation: return Rotation; case CsvHeaders.Color_1: return Color_1; case CsvHeaders.Color_2: return Color_2; //case CsvHeaders.Color_3: return Color_3; case CsvHeaders.Normal_Toggle: return Normal_Toggle; default: Debug.Log("No Property found for " + header.ToString()); return ""; } } }