mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-13 09:50:43 -05:00
Implemented hideoutCustomizationSetMannequinPose
endpoint
This commit is contained in:
parent
180af283be
commit
57a56440f7
@ -6,6 +6,7 @@ import type { IHideoutCancelProductionRequestData } from "@spt/models/eft/hideou
|
|||||||
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
||||||
import type { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
import type { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
||||||
import type { IHideoutCustomizationApplyRequestData } from "@spt/models/eft/hideout/IHideoutCustomizationApplyRequestData";
|
import type { IHideoutCustomizationApplyRequestData } from "@spt/models/eft/hideout/IHideoutCustomizationApplyRequestData";
|
||||||
|
import { IHideoutCustomizationSetMannequinPoseRequest } from "@spt/models/eft/hideout/IHideoutCustomizationSetMannequinPoseRequest";
|
||||||
import type { IHideoutDeleteProductionRequestData } from "@spt/models/eft/hideout/IHideoutDeleteProductionRequestData";
|
import type { IHideoutDeleteProductionRequestData } from "@spt/models/eft/hideout/IHideoutDeleteProductionRequestData";
|
||||||
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
||||||
import type { IHideoutPutItemInRequestData } from "@spt/models/eft/hideout/IHideoutPutItemInRequestData";
|
import type { IHideoutPutItemInRequestData } from "@spt/models/eft/hideout/IHideoutPutItemInRequestData";
|
||||||
@ -222,6 +223,17 @@ export class HideoutCallbacks implements OnUpdate {
|
|||||||
return this.hideoutController.hideoutCustomizationApply(sessionId, pmcData, request);
|
return this.hideoutController.hideoutCustomizationApply(sessionId, pmcData, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle client/game/profile/items/moving - hideoutCustomizationSetMannequinPose
|
||||||
|
*/
|
||||||
|
public hideoutCustomizationSetMannequinPose(
|
||||||
|
pmcData: IPmcData,
|
||||||
|
request: IHideoutCustomizationSetMannequinPoseRequest,
|
||||||
|
sessionId: string,
|
||||||
|
): IItemEventRouterResponse {
|
||||||
|
return this.hideoutController.hideoutCustomizationSetMannequinPose(sessionId, pmcData, request);
|
||||||
|
}
|
||||||
|
|
||||||
public async onUpdate(timeSinceLastRun: number): Promise<boolean> {
|
public async onUpdate(timeSinceLastRun: number): Promise<boolean> {
|
||||||
if (timeSinceLastRun > this.hideoutConfig.runIntervalSeconds) {
|
if (timeSinceLastRun > this.hideoutConfig.runIntervalSeconds) {
|
||||||
this.hideoutController.update();
|
this.hideoutController.update();
|
||||||
|
@ -19,6 +19,7 @@ import type { IHideoutCancelProductionRequestData } from "@spt/models/eft/hideou
|
|||||||
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
import type { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
||||||
import type { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
import type { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
||||||
import type { IHideoutCustomizationApplyRequestData } from "@spt/models/eft/hideout/IHideoutCustomizationApplyRequestData";
|
import type { IHideoutCustomizationApplyRequestData } from "@spt/models/eft/hideout/IHideoutCustomizationApplyRequestData";
|
||||||
|
import { IHideoutCustomizationSetMannequinPoseRequest } from "@spt/models/eft/hideout/IHideoutCustomizationSetMannequinPoseRequest";
|
||||||
import type { IHideoutDeleteProductionRequestData } from "@spt/models/eft/hideout/IHideoutDeleteProductionRequestData";
|
import type { IHideoutDeleteProductionRequestData } from "@spt/models/eft/hideout/IHideoutDeleteProductionRequestData";
|
||||||
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
import type { IHideoutImproveAreaRequestData } from "@spt/models/eft/hideout/IHideoutImproveAreaRequestData";
|
||||||
import type { IHideoutProduction } from "@spt/models/eft/hideout/IHideoutProduction";
|
import type { IHideoutProduction } from "@spt/models/eft/hideout/IHideoutProduction";
|
||||||
@ -1425,6 +1426,25 @@ export class HideoutController {
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle HideoutCustomizationSetMannequinPose event
|
||||||
|
* @param sessionId Session id
|
||||||
|
* @param pmcData Player profile
|
||||||
|
* @param request Client request data
|
||||||
|
* @returns Client response
|
||||||
|
*/
|
||||||
|
public hideoutCustomizationSetMannequinPose(
|
||||||
|
sessionId: string,
|
||||||
|
pmcData: IPmcData,
|
||||||
|
request: IHideoutCustomizationSetMannequinPoseRequest,
|
||||||
|
): IItemEventRouterResponse {
|
||||||
|
for (const [key, value] of Object.entries(request.poses)) {
|
||||||
|
pmcData.Hideout.MannequinPoses[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.eventOutputHolder.getOutput(sessionId);
|
||||||
|
}
|
||||||
|
|
||||||
protected getHideoutCustomisationType(type: string): string {
|
protected getHideoutCustomisationType(type: string): string {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "wall":
|
case "wall":
|
||||||
|
@ -351,7 +351,7 @@ export interface IHideout {
|
|||||||
HideoutCounters: IHideoutCounters;
|
HideoutCounters: IHideoutCounters;
|
||||||
Seed: number;
|
Seed: number;
|
||||||
Customization: Record<string, string>;
|
Customization: Record<string, string>;
|
||||||
MannequinPoses: string[];
|
MannequinPoses: Record<string, string>;
|
||||||
sptUpdateLastRunTimestamp: number;
|
sptUpdateLastRunTimestamp: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
export interface IHideoutCustomizationSetMannequinPoseRequest {
|
||||||
|
Action: "HideoutCustomizationSetMannequinPose";
|
||||||
|
poses: Record<string, string>;
|
||||||
|
timestamp: number;
|
||||||
|
}
|
@ -14,4 +14,5 @@ export enum HideoutEventActions {
|
|||||||
HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START = "HideoutCircleOfCultistProductionStart",
|
HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START = "HideoutCircleOfCultistProductionStart",
|
||||||
HIDEOUT_DELETE_PRODUCTION_COMMAND = "HideoutDeleteProductionCommand",
|
HIDEOUT_DELETE_PRODUCTION_COMMAND = "HideoutDeleteProductionCommand",
|
||||||
HIDEOUT_CUSTOMIZATION_APPLY_COMMAND = "HideoutCustomizationApply",
|
HIDEOUT_CUSTOMIZATION_APPLY_COMMAND = "HideoutCustomizationApply",
|
||||||
|
HIDEOUT_CUSTOMIZATION_SET_MANNEQUIN_POSE = "HideoutCustomizationSetMannequinPose",
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ export class HideoutItemEventRouter extends ItemEventRouterDefinition {
|
|||||||
new HandledRoute(HideoutEventActions.HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START, false),
|
new HandledRoute(HideoutEventActions.HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START, false),
|
||||||
new HandledRoute(HideoutEventActions.HIDEOUT_DELETE_PRODUCTION_COMMAND, false),
|
new HandledRoute(HideoutEventActions.HIDEOUT_DELETE_PRODUCTION_COMMAND, false),
|
||||||
new HandledRoute(HideoutEventActions.HIDEOUT_CUSTOMIZATION_APPLY_COMMAND, false),
|
new HandledRoute(HideoutEventActions.HIDEOUT_CUSTOMIZATION_APPLY_COMMAND, false),
|
||||||
|
new HandledRoute(HideoutEventActions.HIDEOUT_CUSTOMIZATION_SET_MANNEQUIN_POSE, false),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,6 +70,8 @@ export class HideoutItemEventRouter extends ItemEventRouterDefinition {
|
|||||||
return this.hideoutCallbacks.hideoutDeleteProductionCommand(pmcData, body, sessionID);
|
return this.hideoutCallbacks.hideoutDeleteProductionCommand(pmcData, body, sessionID);
|
||||||
case HideoutEventActions.HIDEOUT_CUSTOMIZATION_APPLY_COMMAND:
|
case HideoutEventActions.HIDEOUT_CUSTOMIZATION_APPLY_COMMAND:
|
||||||
return this.hideoutCallbacks.hideoutCustomizationApplyCommand(pmcData, body, sessionID);
|
return this.hideoutCallbacks.hideoutCustomizationApplyCommand(pmcData, body, sessionID);
|
||||||
|
case HideoutEventActions.HIDEOUT_CUSTOMIZATION_SET_MANNEQUIN_POSE:
|
||||||
|
return this.hideoutCallbacks.hideoutCustomizationSetMannequinPose(pmcData, body, sessionID);
|
||||||
default:
|
default:
|
||||||
throw new Error(`Unhandled event ${url} request: ${JSON.stringify(body)}`);
|
throw new Error(`Unhandled event ${url} request: ${JSON.stringify(body)}`);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user