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 { import {
ExportArcanes, ExportArcanes,
ExportAvionics, ExportAvionics,
ExportDrones,
ExportGear, ExportGear,
ExportMisc, ExportMisc,
ExportRecipes, ExportRecipes,
@ -80,7 +81,7 @@ const getItemListsController: RequestHandler = (req, response) => {
}); });
if (uniqueName.split("/")[5] != "SentTrainingAmplifier") { if (uniqueName.split("/")[5] != "SentTrainingAmplifier") {
res.miscitems.push({ res.miscitems.push({
uniqueName: "MiscItems:" + uniqueName, uniqueName: uniqueName,
name: getString(item.name, lang) name: getString(item.name, lang)
}); });
} }
@ -100,7 +101,7 @@ const getItemListsController: RequestHandler = (req, response) => {
} }
} else if (!item.excludeFromCodex) { } else if (!item.excludeFromCodex) {
res.miscitems.push({ res.miscitems.push({
uniqueName: "MiscItems:" + uniqueName, uniqueName: uniqueName,
name: getString(item.name, lang) name: getString(item.name, lang)
}); });
} }
@ -119,14 +120,14 @@ const getItemListsController: RequestHandler = (req, response) => {
} }
if (uniqueName.substr(0, 30) != "/Lotus/Types/Game/Projections/") { if (uniqueName.substr(0, 30) != "/Lotus/Types/Game/Projections/") {
res.miscitems.push({ res.miscitems.push({
uniqueName: item.productCategory + ":" + uniqueName, uniqueName: uniqueName,
name: name name: name
}); });
} }
} }
for (const [uniqueName, item] of Object.entries(ExportRelics)) { for (const [uniqueName, item] of Object.entries(ExportRelics)) {
res.miscitems.push({ res.miscitems.push({
uniqueName: "MiscItems:" + uniqueName, uniqueName: uniqueName,
name: name:
getString("/Lotus/Language/Relics/VoidProjectionName", lang) getString("/Lotus/Language/Relics/VoidProjectionName", lang)
.split("|ERA|") .split("|ERA|")
@ -137,7 +138,7 @@ const getItemListsController: RequestHandler = (req, response) => {
} }
for (const [uniqueName, item] of Object.entries(ExportGear)) { for (const [uniqueName, item] of Object.entries(ExportGear)) {
res.miscitems.push({ res.miscitems.push({
uniqueName: "Consumables:" + uniqueName, uniqueName: uniqueName,
name: getString(item.name, lang) name: getString(item.name, lang)
}); });
} }
@ -147,12 +148,18 @@ const getItemListsController: RequestHandler = (req, response) => {
const resultName = getItemName(item.resultType); const resultName = getItemName(item.resultType);
if (resultName) { if (resultName) {
res.miscitems.push({ res.miscitems.push({
uniqueName: "Recipes:" + uniqueName, uniqueName: uniqueName,
name: recipeNameTemplate.replace("|ITEM|", getString(resultName, lang)) 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 = []; res.mods = [];
for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) { for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) {

View File

@ -20,6 +20,7 @@ import {
dict_zh, dict_zh,
ExportArcanes, ExportArcanes,
ExportCustoms, ExportCustoms,
ExportDrones,
ExportGear, ExportGear,
ExportKeys, ExportKeys,
ExportRecipes, ExportRecipes,
@ -87,6 +88,9 @@ export const getItemName = (uniqueName: string): string | undefined => {
if (uniqueName in ExportCustoms) { if (uniqueName in ExportCustoms) {
return ExportCustoms[uniqueName].name; return ExportCustoms[uniqueName].name;
} }
if (uniqueName in ExportDrones) {
return ExportDrones[uniqueName].name;
}
if (uniqueName in ExportKeys) { if (uniqueName in ExportKeys) {
return ExportKeys[uniqueName].name; return ExportKeys[uniqueName].name;
} }

View File

@ -796,12 +796,11 @@ function disposeOfItems(category, type, count) {
} }
function doAcquireMiscItems() { function doAcquireMiscItems() {
const data = getKey(document.getElementById("miscitem-type")); const uniqueName = getKey(document.getElementById("miscitem-type"));
if (!data) { if (!uniqueName) {
$("#miscitem-type").addClass("is-invalid").focus(); $("#miscitem-type").addClass("is-invalid").focus();
return; return;
} }
const [category, uniqueName] = data.split(":");
revalidateAuthz(() => { revalidateAuthz(() => {
$.post({ $.post({
url: "/custom/addItems?" + window.authz, url: "/custom/addItems?" + window.authz,