diff --git a/.github/workflows/assets.yml b/.github/workflows/assets.yml index df995ad4b..1f3618bf3 100644 --- a/.github/workflows/assets.yml +++ b/.github/workflows/assets.yml @@ -14,6 +14,9 @@ env: STEAM_OS: windows STEAM_APP: 3341250 STEAM_DEPOT: 3341251 + PUBLIC_ASSET_REPO: tresabhi/blitzkit-assets + PUBLIC_ASSET_BRANCH: ue + GH_TOKEN: ${{ secrets.GH_TOKEN }} jobs: download_client: @@ -68,7 +71,12 @@ jobs: - name: Unpack run: | cd src/BlitzKit.CLI - dotnet run unpack ../../temp/depot/ + dotnet run unpack + + - name: Mangle + run: | + cd src/BlitzKit.CLI + dotnet run mangle --depot - name: Archive VFS uses: actions/upload-artifact@v4 diff --git a/src/BlitzKit.CLI/Functions/Mangler.cs b/src/BlitzKit.CLI/Functions/Mangler.cs index f00821514..888990f89 100644 --- a/src/BlitzKit.CLI/Functions/Mangler.cs +++ b/src/BlitzKit.CLI/Functions/Mangler.cs @@ -11,10 +11,10 @@ using Newtonsoft.Json.Linq; namespace BlitzKit.CLI.Functions { - public class Mangler + public class Mangler(string[] args) { readonly Tanks tanks = new(); - readonly BlitzProvider provider = new(); + readonly BlitzProvider provider = new(args.Contains("--depot")); readonly List changes = []; public async Task Mangle() @@ -54,6 +54,7 @@ namespace BlitzKit.CLI.Functions var pda = provider.LoadObject($"{tankDir.Path}/{pdaName}.{pdaName}"); var tankId = PropertyUtil.Get(pda, "TankId").Text; + Console.WriteLine($"Mangling {tankId}..."); var hulls = PropertyUtil.Get(pda, "DT_Hulls"); UDataTableUtility.TryGetDataTableRow(hulls, "hull", StringComparison.Ordinal, out var hull); diff --git a/src/BlitzKit.CLI/Functions/Unpacker.cs b/src/BlitzKit.CLI/Functions/Unpacker.cs index b36ab8ee0..ae10ad6a6 100644 --- a/src/BlitzKit.CLI/Functions/Unpacker.cs +++ b/src/BlitzKit.CLI/Functions/Unpacker.cs @@ -12,7 +12,7 @@ namespace BlitzKit.CLI.Functions public static class Unpacker { private const string CONTENT_GROUP = "p14y73c7_p5e_b10gg3RS_big_play"; - private const string VFS_PATH = "../../temp/vfs/"; + private const string VFS_PATH = "../../temp/containers/"; // this may be different from the one provided in args so check this and not args[1] // we don't wanna delete my local installation of the game when debugging haha! diff --git a/src/BlitzKit.CLI/Models/BlitzKitAssets.cs b/src/BlitzKit.CLI/Models/BlitzKitAssets.cs index 522f32f3d..d9080dce9 100644 --- a/src/BlitzKit.CLI/Models/BlitzKitAssets.cs +++ b/src/BlitzKit.CLI/Models/BlitzKitAssets.cs @@ -1,3 +1,4 @@ +using System.Diagnostics; using System.Net; using BlitzKit.CLI.Utils; using DotNetEnv; @@ -7,8 +8,8 @@ namespace BlitzKit.CLI.Models { public static class BlitzKitAssets { - public static int TIME_PER_BLOB = (int)Math.Pow(2, 4) * 10000; - public static int TIME_BETWEEN_BLOBS = (int)(60 * 60 * 1000 / 5000 / 0.9); + private static int TIME_PER_BLOB = (int)Math.Pow(2, 4) * 10000; + private static int TIME_BETWEEN_BLOBS = (int)(60 * 60 * 1000 / 5000 / 0.9); public static async Task CommitAssets(string message, List changes) { @@ -98,10 +99,13 @@ namespace BlitzKit.CLI.Models foreach (var change in changes) { + Console.WriteLine($"blobbing {change.Path}"); + while (true) { try { + var stopwatch = Stopwatch.StartNew(); var blobSha = octokit .Git.Blob.Create( owner, @@ -114,7 +118,7 @@ namespace BlitzKit.CLI.Models ) .Result.Sha; - await Task.Delay(TIME_BETWEEN_BLOBS); + await Task.Delay((int)Math.Max(0, TIME_BETWEEN_BLOBS - stopwatch.ElapsedMilliseconds)); newTree.Tree.Add( new() diff --git a/src/BlitzKit.CLI/Models/BlitzProvider.cs b/src/BlitzKit.CLI/Models/BlitzProvider.cs index ea2782095..a068aab72 100644 --- a/src/BlitzKit.CLI/Models/BlitzProvider.cs +++ b/src/BlitzKit.CLI/Models/BlitzProvider.cs @@ -7,20 +7,19 @@ namespace BlitzKit.CLI.Models { public class BlitzProvider : DefaultFileProvider { - private static readonly string LOCAL_USER = "coola"; private static readonly string LOCAL_DLC_CONTAINERS_PATH = - $"C:/Users/{LOCAL_USER}/AppData/Local/Blitz/Saved/PersistentDownloadDir/Dlc/PakCache"; + $"C:/Users/coola/AppData/Local/Blitz/Saved/PersistentDownloadDir/Dlc/PakCache"; private static readonly string LOCAL_BUNDLED_CONTAINERS_PATH = "C:/Program Files (x86)/Steam/steamapps/common/World of Tanks Blitz Playtest/Blitz/Content/Paks"; - private static readonly string LOCAL_MAPPINGS_PATH = - "../../submodules/blitzkit-closed/blitz.usmap"; + private static readonly string DEPOT_CONTAINERS_PATH = "../../temp/containers"; + private static readonly string MAPPINGS_PATH = "../../submodules/blitzkit-closed/blitz.usmap"; public readonly VFS RootDirectory; - public BlitzProvider() + public BlitzProvider(bool depot) : base( - directory: new DirectoryInfo(LOCAL_BUNDLED_CONTAINERS_PATH), - extraDirectories: [new(LOCAL_DLC_CONTAINERS_PATH)], + directory: new DirectoryInfo(depot ? DEPOT_CONTAINERS_PATH : LOCAL_BUNDLED_CONTAINERS_PATH), + extraDirectories: depot ? [] : [new(LOCAL_DLC_CONTAINERS_PATH)], searchOption: SearchOption.TopDirectoryOnly, versions: new(EGame.GAME_UE5_3) ) @@ -32,7 +31,7 @@ namespace BlitzKit.CLI.Models Name = "", provider = this, }; - MappingsContainer = new FileUsmapTypeMappingsProvider(LOCAL_MAPPINGS_PATH); + MappingsContainer = new FileUsmapTypeMappingsProvider(MAPPINGS_PATH); Initialize(); Mount(); diff --git a/src/BlitzKit.CLI/Program.cs b/src/BlitzKit.CLI/Program.cs index d0c86fc3c..41af977f4 100644 --- a/src/BlitzKit.CLI/Program.cs +++ b/src/BlitzKit.CLI/Program.cs @@ -24,10 +24,8 @@ namespace BlitzKit.CLI case "mangle": { - Mangler mangler = new(); - + Mangler mangler = new(args); await mangler.Mangle(); - break; }