From 758135d19bd582737e6c5d8d5d9a58408eeaac4e Mon Sep 17 00:00:00 2001 From: Sainan Date: Sun, 9 Mar 2025 11:15:45 -0700 Subject: [PATCH] feat(webui): add resource drones & their blueprints via "add items" (#1137) Closes #1133 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1137 --- .../custom/getItemListsController.ts | 19 +++++++++++++------ src/services/itemDataService.ts | 4 ++++ static/webui/script.js | 5 ++--- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts index 6534bf92..8e2b6dc1 100644 --- a/src/controllers/custom/getItemListsController.ts +++ b/src/controllers/custom/getItemListsController.ts @@ -3,6 +3,7 @@ import { getDict, getItemName, getString } from "@/src/services/itemDataService" import { ExportArcanes, ExportAvionics, + ExportDrones, ExportGear, ExportMisc, ExportRecipes, @@ -80,7 +81,7 @@ const getItemListsController: RequestHandler = (req, response) => { }); if (uniqueName.split("/")[5] != "SentTrainingAmplifier") { res.miscitems.push({ - uniqueName: "MiscItems:" + uniqueName, + uniqueName: uniqueName, name: getString(item.name, lang) }); } @@ -100,7 +101,7 @@ const getItemListsController: RequestHandler = (req, response) => { } } else if (!item.excludeFromCodex) { res.miscitems.push({ - uniqueName: "MiscItems:" + uniqueName, + uniqueName: uniqueName, name: getString(item.name, lang) }); } @@ -119,14 +120,14 @@ const getItemListsController: RequestHandler = (req, response) => { } if (uniqueName.substr(0, 30) != "/Lotus/Types/Game/Projections/") { res.miscitems.push({ - uniqueName: item.productCategory + ":" + uniqueName, + uniqueName: uniqueName, name: name }); } } for (const [uniqueName, item] of Object.entries(ExportRelics)) { res.miscitems.push({ - uniqueName: "MiscItems:" + uniqueName, + uniqueName: uniqueName, name: getString("/Lotus/Language/Relics/VoidProjectionName", lang) .split("|ERA|") @@ -137,7 +138,7 @@ const getItemListsController: RequestHandler = (req, response) => { } for (const [uniqueName, item] of Object.entries(ExportGear)) { res.miscitems.push({ - uniqueName: "Consumables:" + uniqueName, + uniqueName: uniqueName, name: getString(item.name, lang) }); } @@ -147,12 +148,18 @@ const getItemListsController: RequestHandler = (req, response) => { const resultName = getItemName(item.resultType); if (resultName) { res.miscitems.push({ - uniqueName: "Recipes:" + uniqueName, + uniqueName: uniqueName, name: recipeNameTemplate.replace("|ITEM|", getString(resultName, lang)) }); } } } + for (const [uniqueName, item] of Object.entries(ExportDrones)) { + res.miscitems.push({ + uniqueName: uniqueName, + name: getString(item.name, lang) + }); + } res.mods = []; for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) { diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts index 724e0243..416adc7f 100644 --- a/src/services/itemDataService.ts +++ b/src/services/itemDataService.ts @@ -20,6 +20,7 @@ import { dict_zh, ExportArcanes, ExportCustoms, + ExportDrones, ExportGear, ExportKeys, ExportRecipes, @@ -87,6 +88,9 @@ export const getItemName = (uniqueName: string): string | undefined => { if (uniqueName in ExportCustoms) { return ExportCustoms[uniqueName].name; } + if (uniqueName in ExportDrones) { + return ExportDrones[uniqueName].name; + } if (uniqueName in ExportKeys) { return ExportKeys[uniqueName].name; } diff --git a/static/webui/script.js b/static/webui/script.js index f0190b3c..a03783f2 100644 --- a/static/webui/script.js +++ b/static/webui/script.js @@ -796,12 +796,11 @@ function disposeOfItems(category, type, count) { } function doAcquireMiscItems() { - const data = getKey(document.getElementById("miscitem-type")); - if (!data) { + const uniqueName = getKey(document.getElementById("miscitem-type")); + if (!uniqueName) { $("#miscitem-type").addClass("is-invalid").focus(); return; } - const [category, uniqueName] = data.split(":"); revalidateAuthz(() => { $.post({ url: "/custom/addItems?" + window.authz,