From df93c986f9370c8f87d18138d1156603cf47b782 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Sat, 25 Jan 2025 13:20:55 -0600 Subject: [PATCH] feat: first proof of concept of reading --- .csharpierignore | 1 + .prettierignore | 1 + src/CLI/Functions/DLC.cs | 42 ++++++++++++++++++++----------------- src/CLI/Models/Constants.cs | 11 +++------- 4 files changed, 28 insertions(+), 27 deletions(-) create mode 100644 .csharpierignore create mode 100644 .prettierignore diff --git a/.csharpierignore b/.csharpierignore new file mode 100644 index 000000000..425b80014 --- /dev/null +++ b/.csharpierignore @@ -0,0 +1 @@ +/submodules/ \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..425b80014 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +/submodules/ \ No newline at end of file diff --git a/src/CLI/Functions/DLC.cs b/src/CLI/Functions/DLC.cs index 1c5389bf1..3a6b26656 100644 --- a/src/CLI/Functions/DLC.cs +++ b/src/CLI/Functions/DLC.cs @@ -1,11 +1,6 @@ -using CLI.Constants; using CLI.Models; -using CUE4Parse.FileProvider; +using CUE4Parse.FileProvider.Objects; using CUE4Parse.UE4.Pak; -using CUE4Parse.UE4.Readers; -using CUE4Parse.UE4.Versions; -using CUE4Parse.UE4.VirtualFileSystem; -using UE4Config.Parsing; namespace CLI.Functions { @@ -13,25 +8,34 @@ namespace CLI.Functions { public static void Run(Arguments args) { - // string[] bundledContainers = Directory.GetFiles(Containers.BundledContainersDirectory); + // DefaultFileProvider provider = new( + // directory: new(BlitzConstants.AppDataDirectory), + // searchOption: SearchOption.AllDirectories, + // isCaseInsensitive: false, + // extraDirectories: [new(BlitzConstants.InstallationDirectory)] + // ); - // foreach (string bundledContainer in bundledContainers) + // provider.Initialize(); + + // Console.WriteLine("Mounted containers: " + provider.MountedVfs.Count); + + // foreach (var file in provider.Files) // { - // string fileName = Path.GetFileName(bundledContainer); - - // Console.WriteLine($"Parsing bundled container \"{fileName}\"..."); - + // GameFile gameFile = file.Value; + // Console.WriteLine(gameFile.Name); // } - - DefaultFileProvider provider = new( - directory: ContainerConstants.DLCContainersDirectory, - searchOption: SearchOption.TopDirectoryOnly, - isCaseInsensitive: false, - versions: new VersionContainer(BlitzConstants.EngineVersion) + PakFileReader reader = new( + "C:/Program Files (x86)/Steam/steamapps/common/World of Tanks Blitz Playtest/Blitz/Content/Paks/pakchunk0-Windows.pak" ); - provider.Initialize(); + reader.Mount(); + + foreach (var file in reader.Files) + { + GameFile gameFile = file.Value; + // Console.WriteLine(gameFile); + } } } } diff --git a/src/CLI/Models/Constants.cs b/src/CLI/Models/Constants.cs index 64c30573f..09200749c 100644 --- a/src/CLI/Models/Constants.cs +++ b/src/CLI/Models/Constants.cs @@ -5,18 +5,13 @@ namespace CLI.Constants public static class ContainerConstants { public const string ContentGroup = "p14y73c7_p5e_b10gg3RS_big_play"; - - // public const string BundledPaksDirectory = "./temp/blitz/Blitz/Content/Paks"; - public const string BundledContainersDirectory = - "C:/Program Files (x86)/Steam/steamapps/common/World of Tanks Blitz Playtest/Blitz/Content/Paks"; - - // public const string DLCContainersDirectory = "./temp/unpacked"; - public const string DLCContainersDirectory = - "C:/Users/coola/AppData/Local/Blitz/Saved/PersistentDownloadDir/Dlc/PakCache"; } public static class BlitzConstants { public const EGame EngineVersion = EGame.GAME_UE5_3; + public const string InstallationDirectory = + "C:/Program Files (x86)/Steam/steamapps/common/World of Tanks Blitz Playtest"; + public const string AppDataDirectory = "C:/Users/coola/AppData/Local/Blitz/"; } }