From a56ff89bb93a37d17b94a3d5db2b076feab88816 Mon Sep 17 00:00:00 2001 From: Sainan Date: Thu, 27 Mar 2025 12:27:38 -0700 Subject: [PATCH] feat: equipment IsNew flag (#1309) Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1309 --- src/models/inventoryModels/inventoryModel.ts | 3 ++- src/services/inventoryService.ts | 3 ++- src/services/saveLoadoutService.ts | 7 ++++++- src/types/inventoryTypes/commonInventoryTypes.ts | 1 + src/types/saveLoadoutTypes.ts | 6 +++--- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index 2f685233..3abcfff5 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -849,7 +849,8 @@ const EquipmentSchema = new Schema( Customization: crewShipCustomizationSchema, RailjackImage: FlavourItemSchema, CrewMembers: crewShipMembersSchema, - Details: detailsSchema + Details: detailsSchema, + IsNew: Boolean }, { id: false } ); diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 39361841..e294d9a3 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -907,7 +907,8 @@ export const addEquipment = ( ItemType: type, Configs: [], XP: 0, - ModularParts: modularParts + ModularParts: modularParts, + IsNew: true }, defaultOverwrites ); diff --git a/src/services/saveLoadoutService.ts b/src/services/saveLoadoutService.ts index 63533e43..ff0159f5 100644 --- a/src/services/saveLoadoutService.ts +++ b/src/services/saveLoadoutService.ts @@ -155,7 +155,12 @@ export const handleInventoryItemConfigChange = async ( } for (const [configId, config] of Object.entries(itemConfigEntries)) { - inventoryItem.Configs[parseInt(configId)] = config; + if (typeof config !== "boolean") { + inventoryItem.Configs[parseInt(configId)] = config; + } + } + if ("IsNew" in itemConfigEntries) { + inventoryItem.IsNew = itemConfigEntries.IsNew; } } break; diff --git a/src/types/inventoryTypes/commonInventoryTypes.ts b/src/types/inventoryTypes/commonInventoryTypes.ts index 13987e80..ea26992a 100644 --- a/src/types/inventoryTypes/commonInventoryTypes.ts +++ b/src/types/inventoryTypes/commonInventoryTypes.ts @@ -140,6 +140,7 @@ export interface IEquipmentDatabase { RailjackImage?: IFlavourItem; CrewMembers?: ICrewShipMembersDatabase; Details?: IKubrowPetDetailsDatabase; + IsNew?: boolean; _id: Types.ObjectId; } diff --git a/src/types/saveLoadoutTypes.ts b/src/types/saveLoadoutTypes.ts index e04ec6a2..8a1b8883 100644 --- a/src/types/saveLoadoutTypes.ts +++ b/src/types/saveLoadoutTypes.ts @@ -48,9 +48,9 @@ export interface IItemEntry { [itemId: string]: IConfigEntry; } -export interface IConfigEntry { - [configId: string]: IItemConfig; -} +export type IConfigEntry = { + [configId in "0" | "1" | "2" | "3" | "4" | "5"]: IItemConfig; +} & { IsNew?: boolean }; export interface ILoadoutClient extends Omit {}