From f8a71feb46e8ad72302de09108a33e7a8254f957 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Thu, 28 May 2026 12:34:14 -0500 Subject: [PATCH] use tag system for equipment --- packages/game/JSExport/GameInterface.cs | 37 +------------------ .../src/pages/[media]/equipment/[id].webp.ts | 12 ++---- 2 files changed, 6 insertions(+), 43 deletions(-) diff --git a/packages/game/JSExport/GameInterface.cs b/packages/game/JSExport/GameInterface.cs index 1eeb378ac..3b404aaa2 100644 --- a/packages/game/JSExport/GameInterface.cs +++ b/packages/game/JSExport/GameInterface.cs @@ -130,43 +130,10 @@ public partial class GameInterface return provider.Image(icon); } - private static readonly string equipmentPDAPrefix = - "Blitz/Content/TanksStuff/Equipment/PDA_Equipment"; - private static readonly string equipmentPDASuffix = ".uasset"; - - public byte[] EquipmentIcon(string[] names) + public byte[] EquipmentIcon(string tag) { - List candidates = []; - - foreach (var name in names) - { - candidates.AddRange([ - $"{equipmentPDAPrefix}{name}{equipmentPDASuffix}", - $"{equipmentPDAPrefix}_{name}{equipmentPDASuffix}", - ]); - } - - string? candidate = null; - foreach (var c in candidates) - { - if (!files.Contains(c)) - { - continue; - } - - candidate = c; - break; - } - - if (candidate is null) - { - Console.WriteLine($"No equipment pda found for {string.Join(", ", names)}"); - return []; - } - - var pda = provider.PDA(candidate); + var pda = provider.Discovered(tag); var icon = pda.Get("Icon"); - return provider.Image(icon); } } diff --git a/packages/website-ue/src/pages/[media]/equipment/[id].webp.ts b/packages/website-ue/src/pages/[media]/equipment/[id].webp.ts index 740d3c9df..f92c338f9 100644 --- a/packages/website-ue/src/pages/[media]/equipment/[id].webp.ts +++ b/packages/website-ue/src/pages/[media]/equipment/[id].webp.ts @@ -4,7 +4,7 @@ import { notFoundResponse } from "../../../api/responses"; import { mixStaticPaths } from "../../../astro/mixStaticPaths"; import { game } from "../../../game/game"; import { getStaticPaths as _getStaticPaths } from "../_index"; -import { assetsDiscovery } from "../../../game/assetsDiscovery"; +import { assertDiscoveryTag } from "../../../game/assertDiscoveryTag"; export const getStaticPaths = mixStaticPaths(_getStaticPaths, () => { return api.metadata @@ -18,13 +18,9 @@ const HACK_nameMap: Record = { export function GET({ params }: APIContext) { const item = api.metadata.item(params.id); - const names = assetsDiscovery(item, HACK_nameMap); - const icon = game!.equipmentIcon(names); - - if (icon.length === 0) { - return notFoundResponse; - } - + const assetsDiscovery = item.BlitzStaticAssetsDiscovery(); + const tag = assertDiscoveryTag(assetsDiscovery); + const icon = game!.equipmentIcon(tag); const array = new Uint8Array(icon); return new Response(array);