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 [];
+ }
}