private static void GeographicLoad <TList, TOutput>(string cacheFolder, string path, List <TList> names, DistinctColorList distinctColorList, string cacheName, out TOutput output) where TOutput : IGeographicLoad <TList>, new() { var filePath = Path.Combine(Application.streamingAssetsPath, path); output = new TOutput(); output.Generate(filePath, names, distinctColorList); File.WriteAllText(Path.Combine(Application.streamingAssetsPath, cacheFolder, $"{cacheName}.json"), JsonConvert.SerializeObject(output)); }
public static void Initialize(string cacheFolder, string definition, string area, string region, string superRegion, string countryTags, string provinceHistories) { var distinctColorList = new DistinctColorList(true); Definitions(cacheFolder, definition, out var definitionOutput); GeographicLoad(cacheFolder, area, definitionOutput.IDIndices, distinctColorList, "Area", out AreasLoad areaOutput); GeographicLoad(cacheFolder, region, areaOutput.Names, distinctColorList, "Region", out RegionsLoad regionsOutput); GeographicLoad(cacheFolder, superRegion, regionsOutput.Names, distinctColorList, "SuperRegion", out SuperRegionsLoad supersOutput); Country(cacheFolder, countryTags, out var countryTagsLoad); Provinces(cacheFolder, provinceHistories, definitionOutput.Names, definitionOutput.IDIndices, countryTagsLoad.Tags); Debug.Log("Cache files successfully generated!"); }