Pass output object into various other inventroy actions

This commit is contained in:
Dev 2024-02-10 16:08:42 +00:00
parent 9fe739debb
commit 4232ba6db1
3 changed files with 41 additions and 23 deletions

View File

@ -48,29 +48,45 @@ export class InventoryCallbacks
}
/** Handle Remove event */
public removeItem(pmcData: IPmcData, body: IInventoryRemoveRequestData, sessionID: string): IItemEventRouterResponse
public removeItem(
pmcData: IPmcData,
body: IInventoryRemoveRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
return this.inventoryController.discardItem(pmcData, body, sessionID);
return this.inventoryController.discardItem(pmcData, body, sessionID, output);
}
/** Handle Split event */
public splitItem(pmcData: IPmcData, body: IInventorySplitRequestData, sessionID: string): IItemEventRouterResponse
public splitItem(
pmcData: IPmcData,
body: IInventorySplitRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
return this.inventoryController.splitItem(pmcData, body, sessionID);
return this.inventoryController.splitItem(pmcData, body, sessionID, output);
}
public mergeItem(pmcData: IPmcData, body: IInventoryMergeRequestData, sessionID: string): IItemEventRouterResponse
public mergeItem(
pmcData: IPmcData,
body: IInventoryMergeRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
return this.inventoryController.mergeItem(pmcData, body, sessionID);
return this.inventoryController.mergeItem(pmcData, body, sessionID, output);
}
public transferItem(
pmcData: IPmcData,
body: IInventoryTransferRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
return this.inventoryController.transferItem(pmcData, body, sessionID);
return this.inventoryController.transferItem(pmcData, body, sessionID, output);
}
/** Handle Swap */
@ -109,9 +125,10 @@ export class InventoryCallbacks
pmcData: IPmcData,
body: IInventoryExamineRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
return this.inventoryController.examineItem(pmcData, body, sessionID);
return this.inventoryController.examineItem(pmcData, body, sessionID, output);
}
/** Handle ReadEncyclopedia */

View File

@ -171,10 +171,9 @@ export class InventoryController
pmcData: IPmcData,
body: IInventoryRemoveRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
const output = this.eventOutputHolder.getOutput(sessionID);
if (body.fromOwner?.type === "Mail")
{
this.inventoryHelper.removeItemAndChildrenFromMailRewards(sessionID, body, output);
@ -201,10 +200,9 @@ export class InventoryController
pmcData: IPmcData,
request: IInventorySplitRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
const output = this.eventOutputHolder.getOutput(sessionID);
// Changes made to result apply to character inventory
const inventoryItems = this.inventoryHelper.getOwnerInventoryItems(request, sessionID);
@ -260,10 +258,13 @@ export class InventoryController
* @param sessionID Player id
* @returns IItemEventRouterResponse
*/
public mergeItem(pmcData: IPmcData, body: IInventoryMergeRequestData, sessionID: string): IItemEventRouterResponse
public mergeItem(
pmcData: IPmcData,
body: IInventoryMergeRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
const output = this.eventOutputHolder.getOutput(sessionID);
// Changes made to result apply to character inventory
const inventoryItems = this.inventoryHelper.getOwnerInventoryItems(body, sessionID);
@ -339,10 +340,9 @@ export class InventoryController
pmcData: IPmcData,
body: IInventoryTransferRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
const output = this.eventOutputHolder.getOutput(sessionID);
let sourceItem: Item = null;
let destinationItem: Item = null;
for (const iterItem of pmcData.Inventory.items)
@ -618,6 +618,7 @@ export class InventoryController
pmcData: IPmcData,
body: IInventoryExamineRequestData,
sessionID: string,
output: IItemEventRouterResponse,
): IItemEventRouterResponse
{
let itemId = "";
@ -667,7 +668,7 @@ export class InventoryController
this.flagItemsAsInspectedAndRewardXp([itemId], pmcData);
}
return this.eventOutputHolder.getOutput(sessionID);
return output;
}
protected flagItemsAsInspectedAndRewardXp(itemTpls: string[], pmcProfile: IPmcData): void

View File

@ -59,13 +59,13 @@ export class InventoryItemEventRouter extends ItemEventRouterDefinition
case ItemEventActions.MOVE:
return this.inventoryCallbacks.moveItem(pmcData, body, sessionID, output);
case ItemEventActions.REMOVE:
return this.inventoryCallbacks.removeItem(pmcData, body, sessionID);
return this.inventoryCallbacks.removeItem(pmcData, body, sessionID, output);
case ItemEventActions.SPLIT:
return this.inventoryCallbacks.splitItem(pmcData, body, sessionID);
return this.inventoryCallbacks.splitItem(pmcData, body, sessionID, output);
case ItemEventActions.MERGE:
return this.inventoryCallbacks.mergeItem(pmcData, body, sessionID);
return this.inventoryCallbacks.mergeItem(pmcData, body, sessionID, output);
case ItemEventActions.TRANSFER:
return this.inventoryCallbacks.transferItem(pmcData, body, sessionID);
return this.inventoryCallbacks.transferItem(pmcData, body, sessionID, output);
case ItemEventActions.SWAP:
return this.inventoryCallbacks.swapItem(pmcData, body, sessionID);
case ItemEventActions.FOLD:
@ -79,7 +79,7 @@ export class InventoryItemEventRouter extends ItemEventRouterDefinition
case ItemEventActions.UNBIND:
return this.inventoryCallbacks.unbindItem(pmcData, body, sessionID);
case ItemEventActions.EXAMINE:
return this.inventoryCallbacks.examineItem(pmcData, body, sessionID);
return this.inventoryCallbacks.examineItem(pmcData, body, sessionID, output);
case ItemEventActions.READ_ENCYCLOPEDIA:
return this.inventoryCallbacks.readEncyclopedia(pmcData, body, sessionID);
case ItemEventActions.APPLY_INVENTORY_CHANGES: