feat: ini

This commit is contained in:
tresabhi committed 2025-02-25 18:28:08 -06:00
1 parent 14d9794f57
commit 1d28768bb7
3 files changed
+24 -10

No files matched your search

+3
View File
@@ -1,4 +1,6 @@
using System.Data;
using System.Text;
using System.Text.Unicode;
using Blitzkit;
using BlitzKit.CLI.Models;
using CUE4Parse.UE4.Assets.Exports;
@@ -6,6 +8,7 @@ using CUE4Parse.UE4.Assets.Exports.Engine;
using CUE4Parse.UE4.Assets.Exports.StaticMesh;
using CUE4Parse.UE4.Assets.Objects;
using CUE4Parse.UE4.Objects.UObject;
using CUE4Parse.UE4.Pak.Objects;
using Google.Protobuf.Collections;
using Newtonsoft.Json.Linq;
+20 -7
View File
@@ -1,10 +1,14 @@
using System.Text;
using System.Text.Json;
using BlitzKit.CLI.Models;
using BlitzKit.CLI.Quicktype;
using BlitzKit.CLI.Utils;
using CUE4Parse.FileProvider;
using CUE4Parse.FileProvider.Objects;
using CUE4Parse.UE4.Pak;
using CUE4Parse.UE4.Pak.Objects;
using CUE4Parse.UE4.Readers;
using CUE4Parse.UE4.Versions;
using DotNet.Globbing;
namespace BlitzKit.CLI.Functions
@@ -27,22 +31,31 @@ namespace BlitzKit.CLI.Functions
throw new ArgumentException("Missing required initial paks directory");
}
var pak0Path = Path.Combine(TEMP_DEPOT_DIR, "Blitz/Content/Paks/pakchunk0-Windows.pak");
DefaultFileProvider provider0 = new(
directory: new DirectoryInfo(pak0Path),
searchOption: SearchOption.TopDirectoryOnly,
versions: new(EGame.GAME_UE5_3)
);
provider0.Initialize();
provider0.Mount();
provider0.TryFindGameFile("Blitz/Config/DefaultDlc.ini", out var defaultDlcGameFile);
if (defaultDlcGameFile is not FPakEntry)
throw new Exception("Failed to find DefaultDlc.ini");
IniParser defaultDlc = new(Encoding.UTF8.GetString(defaultDlcGameFile.Read()));
using HttpClient client = new();
string defaultDlcPath = Path.Combine(VFS_PATH, "Blitz/Config/DefaultDlc.ini");
IniParser iniParser = new(defaultDlcPath);
string? contentBuildId = iniParser.GetString("DefaultContentBuildId");
string? contentBuildId = defaultDlc.GetString("DefaultContentBuildId");
if (string.IsNullOrEmpty(contentBuildId))
{
throw new Exception("Failed to read content build id from DefaultDlc.ini");
}
Console.WriteLine($"Exploring DLC \"{contentBuildId}\" within group \"{CONTENT_GROUP}\"");
DlcManifest manifest = await FetchManifest(CONTENT_GROUP, contentBuildId);
Console.WriteLine("Filtering HD and non-HD containers");
foreach (var pakFile in manifest.PakFiles)
{
var localContainerPath = Path.Combine(VFS_PATH, pakFile.FileName);
+1 -3
View File
@@ -5,10 +5,8 @@ namespace BlitzKit.CLI.Utils
private readonly Dictionary<string, string> strings = [];
private readonly Dictionary<string, List<string>> arrays = [];
public IniParser(string file)
public IniParser(string content)
{
string content = File.ReadAllText(file);
foreach (string line in content.Split('\n'))
{
if (string.IsNullOrWhiteSpace(line))