mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 18:57:03 +02:00
use tag system for equipment
This commit is contained in:
1 parent
0cb4aadec3
commit
f8a71feb46
2 files changed
+6
-43
No files matched your search
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user