From ff02f06cbce0859d99d4b09eabbef07bece31b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sun, 1 Feb 2026 19:34:36 -0600 Subject: [PATCH] feat: tanksDirectoryNations --- .vscode/settings.json | 1 + package.json | 1 + packages/game/.editorconfig | 3 ++ packages/game/game.csproj | 1 - packages/game/src/classes/BlitzProvider.cs | 51 +++++++++++++++------- 5 files changed, 40 insertions(+), 17 deletions(-) create mode 100644 packages/game/.editorconfig diff --git a/.vscode/settings.json b/.vscode/settings.json index c4e3c2779..2da2c0bbb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -221,6 +221,7 @@ "tungstentip", "Turretless", "TYPELESS", + "uasset", "ubjson", "Unicum", "UNLOCALIZED", diff --git a/package.json b/package.json index 842408a0b..3d3fc41a7 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "license": "BlitzKit License", "private": true, "scripts": { + "build:game": "cd packages/game && dotnet build", "build:assets": "cd packages/scripts && bun run build:assets", "build:averages": "bun --filter=@blitzkit/scripts run build:averages", "build:bot": "cd packages/scripts && bun run build:bot", diff --git a/packages/game/.editorconfig b/packages/game/.editorconfig new file mode 100644 index 000000000..923492aa8 --- /dev/null +++ b/packages/game/.editorconfig @@ -0,0 +1,3 @@ +[*.cs] +indent_style = space +indent_size = 2 \ No newline at end of file diff --git a/packages/game/game.csproj b/packages/game/game.csproj index 6f58cd678..baf47cb76 100644 --- a/packages/game/game.csproj +++ b/packages/game/game.csproj @@ -4,7 +4,6 @@ enable enable esm - true true diff --git a/packages/game/src/classes/BlitzProvider.cs b/packages/game/src/classes/BlitzProvider.cs index e45d1a2ab..660e933ed 100644 --- a/packages/game/src/classes/BlitzProvider.cs +++ b/packages/game/src/classes/BlitzProvider.cs @@ -7,22 +7,41 @@ namespace game.src.classes; [JSExport] public class BlitzProvider { - private readonly DefaultFileProvider provider; + private readonly DefaultFileProvider provider; - public BlitzProvider(string directory) - { - provider = new( - directory: directory, - searchOption: SearchOption.AllDirectories, - versions: new(EGame.GAME_UE5_5), - pathComparer: StringComparer.OrdinalIgnoreCase - ); - provider.Initialize(); - provider.Mount(); - } + public string[] files; + public string[] tanksDirectoryNations; - public string[] Files() - { - return provider.Files.Keys.ToArray(); - } + public BlitzProvider(string directory) + { + provider = new( + directory: directory, + searchOption: SearchOption.AllDirectories, + versions: new(EGame.GAME_UE5_5), + pathComparer: StringComparer.OrdinalIgnoreCase + ); + provider.Initialize(); + provider.Mount(); + + files = [.. provider.Files.Keys]; + + var tanksBase = "Blitz/Content/Tanks/"; + tanksDirectoryNations = + [ + .. files + .Where(path => path.StartsWith(tanksBase)) + .Select(path => path[tanksBase.Length..]) + .Select(path => path.Split('/')[0]) + .Where(nation => !nation.EndsWith(".uasset") && nation != "TankStub") + .Distinct(), + ]; + } + + public string[] Files => files; + public string[] TanksDirectoryNations => tanksDirectoryNations; + + public byte[] TankBigIcon(string tankId, string pdaName) + { + return []; + } }