mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 10:47:04 +02:00
feat: vfs
This commit is contained in:
1 parent
df93c986f9
commit
4afc413d8b
3 files changed
+69
-28
No files matched your search
+10
-24
@@ -1,6 +1,5 @@
|
||||
using CLI.Models;
|
||||
using CUE4Parse.FileProvider.Objects;
|
||||
using CUE4Parse.UE4.Pak;
|
||||
using CLI.Utils;
|
||||
|
||||
namespace CLI.Functions
|
||||
{
|
||||
@@ -8,34 +7,21 @@ namespace CLI.Functions
|
||||
{
|
||||
public static void Run(Arguments args)
|
||||
{
|
||||
// DefaultFileProvider provider = new(
|
||||
// directory: new(BlitzConstants.AppDataDirectory),
|
||||
// searchOption: SearchOption.AllDirectories,
|
||||
// isCaseInsensitive: false,
|
||||
// extraDirectories: [new(BlitzConstants.InstallationDirectory)]
|
||||
BlitzVfs vfs = new();
|
||||
|
||||
vfs.Initialize();
|
||||
|
||||
// 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();
|
||||
|
||||
// Console.WriteLine("Mounted containers: " + provider.MountedVfs.Count);
|
||||
|
||||
// foreach (var file in provider.Files)
|
||||
// foreach (var file in reader.Files)
|
||||
// {
|
||||
// GameFile gameFile = file.Value;
|
||||
// Console.WriteLine(gameFile.Name);
|
||||
// Console.WriteLine(gameFile);
|
||||
// }
|
||||
|
||||
PakFileReader reader = new(
|
||||
"C:/Program Files (x86)/Steam/steamapps/common/World of Tanks Blitz Playtest/Blitz/Content/Paks/pakchunk0-Windows.pak"
|
||||
);
|
||||
|
||||
reader.Mount();
|
||||
|
||||
foreach (var file in reader.Files)
|
||||
{
|
||||
GameFile gameFile = file.Value;
|
||||
// Console.WriteLine(gameFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,9 +9,5 @@ namespace CLI.Constants
|
||||
|
||||
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/";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
using CUE4Parse.FileProvider.Vfs;
|
||||
using CUE4Parse.UE4.Pak;
|
||||
using CUE4Parse.UE4.Versions;
|
||||
|
||||
namespace CLI.Utils
|
||||
{
|
||||
public class BlitzVfs : AbstractVfsFileProvider
|
||||
{
|
||||
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";
|
||||
|
||||
private static string[] IndexDirectories()
|
||||
{
|
||||
return
|
||||
[
|
||||
Path.Combine(InstallationDirectory, "Blitz/Content/Paks"),
|
||||
Path.Combine(AppDataDirectory, "Saved/PersistentDownloadDir/Dlc/PakCache"),
|
||||
];
|
||||
}
|
||||
|
||||
private static List<string> IndexContainers()
|
||||
{
|
||||
string[] directories = IndexDirectories();
|
||||
List<string> files = [];
|
||||
|
||||
foreach (string directory in directories)
|
||||
{
|
||||
if (!Directory.Exists(directory))
|
||||
{
|
||||
throw new Exception($"Directory \"{directory}\" does not exist");
|
||||
}
|
||||
|
||||
string[] directoryFiles = Directory.GetFiles(directory, "*.pak");
|
||||
files.AddRange(directoryFiles);
|
||||
}
|
||||
|
||||
return files;
|
||||
}
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
List<string> containers = IndexContainers();
|
||||
|
||||
foreach (string container in containers)
|
||||
{
|
||||
PakFileReader reader = new(container);
|
||||
|
||||
reader.Mount();
|
||||
|
||||
foreach (var gameFile in reader.Files)
|
||||
{
|
||||
Console.WriteLine(gameFile.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user