From 37b5d1c6e81338997fe45a99cd1407175861dcae Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Sat, 1 Feb 2025 22:01:06 -0600 Subject: [PATCH] feat: implement mappeduobject --- src/BlitzKit.CLI/Functions/Mangler.cs | 21 ++++++++++++++++++--- src/BlitzKit.CLI/Models/MappedUObject.cs | 24 ++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/BlitzKit.CLI/Functions/Mangler.cs b/src/BlitzKit.CLI/Functions/Mangler.cs index 4c66cda80..0c386bdb9 100644 --- a/src/BlitzKit.CLI/Functions/Mangler.cs +++ b/src/BlitzKit.CLI/Functions/Mangler.cs @@ -1,5 +1,6 @@ using Blitzkit; using BlitzKit.CLI.Models; +using BlitzKit.CLI.Utils; using Google.Protobuf.Collections; using Newtonsoft.Json.Linq; @@ -27,20 +28,34 @@ namespace BlitzKit.CLI.Functions { foreach (var tankDir in nation.Directories) { - if (tankDir.Value.Name != "R90_IS_4") - continue; + // if (tankDir.Value.Name != "R90_IS_4") + // continue; var tank = MangleTank(tankDir.Value); + if (tank == null) + continue; + tanks.Tanks_.Add(tank.Id); } } - Tank MangleTank(VfsDirectory tankDir) + Tank? MangleTank(VfsDirectory tankDir) { var pdaName = $"PDA_{tankDir.Name}"; var pda = tankDir.GetUasset($"{pdaName}.uasset").Get(pdaName); var tankId = pda.GetName("TankId"); + var isDev = pda.TryGetBool("bInDevelopment") ?? true; + + if (isDev) + { + PrettyLog.Warn($"Skipping dev tank: {tankId}"); + return null; + } + else + { + PrettyLog.Success($"Mangling tank: {tankId}"); + } return new() { Id = tankId }; } diff --git a/src/BlitzKit.CLI/Models/MappedUObject.cs b/src/BlitzKit.CLI/Models/MappedUObject.cs index 4421c4293..678294135 100644 --- a/src/BlitzKit.CLI/Models/MappedUObject.cs +++ b/src/BlitzKit.CLI/Models/MappedUObject.cs @@ -16,6 +16,8 @@ namespace BlitzKit.CLI.Models readonly Dictionary Booleans = []; readonly Dictionary Floats = []; readonly Dictionary Arrays = []; + readonly Dictionary Texts = []; + readonly Dictionary Ints = []; public MappedUObject(List properties) : base(properties) @@ -66,6 +68,18 @@ namespace BlitzKit.CLI.Models break; } + case TextProperty text: + { + Texts.Add(property.Name.Text, text); + break; + } + + case IntProperty integer: + { + Ints.Add(property.Name.Text, integer); + break; + } + default: { throw new Exception($"Unhandled property type: {property}"); @@ -78,5 +92,15 @@ namespace BlitzKit.CLI.Models { return Names[name].Value.Text; } + + public bool GetBool(string name) + { + return Booleans[name].Value; + } + + public bool? TryGetBool(string name) + { + return Booleans.TryGetValue(name, out var entry) ? entry.Value : null; + } } }