private static void LoadDirectories() { var directories = Directory.GetDirectories(CharacterDirectory); Tools.Print("# of character folders found: " + directories.Length); for (int i = 0; i < directories.Length; i++) { Tools.StartTimer("Loading data for " + Path.GetFileName(directories[i])); Tools.Print(""); Tools.Print("--Loading " + Path.GetFileName(directories[i]) + "--", "0000FF"); string customCharacterDir = Path.Combine(CharacterDirectory, directories[i]); string dataFilePath = Path.Combine(customCharacterDir, DataFile); if (!File.Exists(dataFilePath)) { Tools.PrintError($"No \"{DataFile}\" file found for " + Path.GetFileName(directories[i])); continue; } var lines = ResourceExtractor.GetLinesFromFile(dataFilePath); var data = ParseCharacterData(lines); string spritesDir = Path.Combine(customCharacterDir, "sprites"); if (Directory.Exists(spritesDir)) { Tools.Print("Found: Sprites folder"); data.sprites = ResourceExtractor.GetTexturesFromDirectory(spritesDir); } string foyerDir = Path.Combine(customCharacterDir, "foyercard"); if (Directory.Exists(foyerDir)) { Tools.Print("Found: Foyer card folder"); data.foyerCardSprites = ResourceExtractor.GetTexturesFromDirectory(foyerDir); } List <Texture2D> miscTextures = ResourceExtractor.GetTexturesFromDirectory(customCharacterDir); foreach (var tex in miscTextures) { string name = tex.name.ToLower(); if (name.Equals("icon")) { Tools.Print("Found: Icon "); data.minimapIcon = tex; } if (name.Equals("bosscard")) { Tools.Print("Found: Bosscard"); data.bossCard = tex; } if (name.Equals("playersheet")) { Tools.Print("Found: Playersheet"); data.playerSheet = tex; } if (name.Equals("facecard")) { Tools.Print("Found: Facecard"); data.faceCard = tex; } } string punchoutDir = Path.Combine(customCharacterDir, "punchout/"); string punchoutSpritesDir = Path.Combine(punchoutDir, "sprites"); if (Directory.Exists(punchoutSpritesDir)) { Tools.Print("Found: Punchout Sprites folder"); data.punchoutSprites = ResourceExtractor.GetTexturesFromDirectory(punchoutSpritesDir); } if (Directory.Exists(punchoutDir)) { data.punchoutFaceCards = new List <Texture2D>(); var punchoutSprites = ResourceExtractor.GetTexturesFromDirectory(punchoutDir); foreach (var tex in punchoutSprites) { string name = tex.name.ToLower(); if (name.Contains("facecard1") || name.Contains("facecard2") || name.Contains("facecard3")) { data.punchoutFaceCards.Add(tex); Tools.Print("Found: Punchout facecard " + tex.name); } } } characterData.Add(data); Tools.StopTimerAndReport("Loading data for " + Path.GetFileName(directories[i])); } }