static void Unpack(FileInfo file, DirectoryInfo destination) { var ytd = new TextureDictionaryFileWrapper_GTA5_pc(); ytd.Load(file.FullName); Console.WriteLine(file.FullName); var dir = destination?.FullName ?? Path.Join(file.DirectoryName, Path.GetFileNameWithoutExtension(file.Name)); new PngTextureDictionary(ytd.TextureDictionary) .Save(dir); }
static void List(FileInfo file) { var ytd = new TextureDictionaryFileWrapper_GTA5_pc(); ytd.Load(file.FullName); Console.WriteLine($"Loaded {file.Name}:"); var longest = ytd.TextureDictionary.Textures .Select(tex => tex.Name.Length) .Max(); foreach (var tex in ytd.TextureDictionary.Textures) { Console.Write($" {tex.Name.PadRight(longest)} {tex.Width}x{tex.Height}"); Console.WriteLine($" in {tex.Format} with {tex.MipMapLevels} levels"); for (int i = 0; i < tex.MipMapLevels; i++) { Console.WriteLine($"lvl {i} is {tex.GetTextureData(i+1).Length} bytes"); } } }