mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +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 CLI.Models;
|
||||||
using CUE4Parse.FileProvider.Objects;
|
using CLI.Utils;
|
||||||
using CUE4Parse.UE4.Pak;
|
|
||||||
|
|
||||||
namespace CLI.Functions
|
namespace CLI.Functions
|
||||||
{
|
{
|
||||||
@@ -8,34 +7,21 @@ namespace CLI.Functions
|
|||||||
{
|
{
|
||||||
public static void Run(Arguments args)
|
public static void Run(Arguments args)
|
||||||
{
|
{
|
||||||
// DefaultFileProvider provider = new(
|
BlitzVfs vfs = new();
|
||||||
// directory: new(BlitzConstants.AppDataDirectory),
|
|
||||||
// searchOption: SearchOption.AllDirectories,
|
vfs.Initialize();
|
||||||
// isCaseInsensitive: false,
|
|
||||||
// extraDirectories: [new(BlitzConstants.InstallationDirectory)]
|
// 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 reader.Files)
|
||||||
|
|
||||||
// foreach (var file in provider.Files)
|
|
||||||
// {
|
// {
|
||||||
// GameFile gameFile = file.Value;
|
// 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 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