private Skin GetSkin(int id, ManifestSearch search) { if (HasSkin(id)) { Skin result = new Skin(); SkinHashes hash = CharacterHashes.Skins[id]; var start = Inibin.FilePath.Substring(0, Inibin.FilePath.LastIndexOf('/')); result.SknFile = search.FindClosestPath((string)Inibin.Content[hash.Skn].Value, start, "Characters"); result.SklFile = search.FindClosestPath((string)Inibin.Content[hash.Skl].Value, start, "Characters"); result.DdsFile = search.FindClosestPath((string)Inibin.Content[hash.Dds].Value, start, "Characters"); result.BlndFile = search.FindClosestPath((string)Inibin.Content[hash.Blnd].Value, start, "Characters"); if (result.BlndFile == null || result.SknFile == null || result.DdsFile == null || result.SklFile == null) { return(null); } result.Id = id; return(result); } return(null); }
public static void Run() { var manager = new ArchiveFileManager(LeagueLocations.GetLeaguePath()); var search = new ManifestSearch(manager); manager.Revert(); //var filename1 = "DATA/Items/Icons2D/1053_Vampiric_Scepter.dds"; var filename1 = "DATA/Items/Icons2D/3078_Trinity_Force.dds"; var filename2 = "DATA/Items/Icons2D/3077_Tiamat.dds"; //var filename2 = "DATA/Items/Icons2D/3078_Trinity_Force.dds"; var file1 = manager.ReadFile(filename1); var file2 = manager.ReadFile(filename2); File.WriteAllBytes(@"C:\File 1 Test 1.dds", file1.Uncompress()); File.WriteAllBytes(@"C:\File 2 Test 1.dds", file2.Uncompress()); manager.BeginWriting(); manager.WriteFile(filename1, false, file2); manager.WriteFile(filename2, false, file1); manager.EndWriting(); file1 = manager.ReadFile(filename1); file2 = manager.ReadFile(filename2); File.WriteAllBytes(@"C:\File 1 Test 2.dds", file1.Uncompress()); File.WriteAllBytes(@"C:\File 2 Test 2.dds", file2.Uncompress()); //CompileAssetLists(search); }
public static void CompileAssetLists(ManifestSearch search) { new SkinGroupWriter().Write(@"C:\SkinGroups.dat", FindSkinGroups(search)); var writer = new PathListWriter(); writer.Write(@"C:\LoadScreenPaths.dat", search.FindLoadingScreens()); writer.Write(@"C:\AbilityIconPaths.dat", search.FindAbilityIcons()); writer.Write(@"C:\SquareIconPaths.dat", search.FindSquareIcons()); writer.Write(@"C:\CircleIconPaths.dat", search.FindCircleIcons()); writer.Write(@"C:\ItemIconPaths.dat", search.FindItemIcons()); }
public void LoadSkins(ManifestSearch search) { List <Skin> skinList = new List <Skin>(); for (int i = 0; i < 9; i++) { Skin current = GetSkin(i, search); if (current != null) { skinList.Add(current); } } Skins = skinList.ToArray(); }
public static List <SkinGroup> FindSkinGroups(ManifestSearch search) { var types = new string[5] { "Champion", "Minion", "Monster", "Ward", "Special" }; var characters = search.FindCharacters(types, false); var groups = new List <SkinGroup>(); for (int i = 0; i < characters.Length; i++) { characters[i].LoadSkins(search); for (int j = 0; j < characters[i].Skins.Length; j++) { var flag = false; for (int k = 0; k < groups.Count; k++) { if (groups[k].Common(characters[i].Skins[j])) { if (!groups[k].Equals(characters[i].Skins[j])) { groups[k].Skins.Add(characters[i].Skins[j]); } flag = true; break; } } if (!flag) { groups.Add(new SkinGroup(characters[i].Skins[j])); } } } return(groups); }
/// <summary> /// Initializes a new instance of the <see cref="ManifestSearch"/> class. /// </summary> /// <param name="manifestSearch">Manifest Search.</param> public ManifestSearch(ManifestSearch manifestSearch) { this.ContinuationToken = manifestSearch.ContinuationToken; this.MaximumResults = manifestSearch.MaximumResults; this.FetchAllManifests = manifestSearch.FetchAllManifests; }