feat(webui): add resource drones & their blueprints via "add items" (#1137)

Closes #1133

Reviewed-on: OpenWF/SpaceNinjaServer#1137
This commit is contained in:
Sainan 2025-03-09 11:15:45 -07:00
parent 1ae1cf5170
commit 758135d19b
3 changed files with 19 additions and 9 deletions

View File

@ -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)) {

View File

@ -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;
}

View File

@ -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,