Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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());
        }
Пример #4
0
        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();
        }
Пример #5
0
        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;
 }