use tag system for equipment

This commit is contained in:
tresabhi committed 2026-05-28 12:34:14 -05:00
1 parent 0cb4aadec3
commit f8a71feb46
2 files changed
+6 -43

No files matched your search

+2 -35
View File
@@ -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<string> 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<UPrimaryDataAsset>(tag);
var icon = pda.Get<FSoftObjectPath>("Icon");
return provider.Image(icon);
}
}
@@ -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<string, string> = {
export function GET({ params }: APIContext<never, { id: string }>) {
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);