diff --git a/Core/Callbacks/HideoutCallbacks.cs b/Core/Callbacks/HideoutCallbacks.cs index 4bf13666..335e319e 100644 --- a/Core/Callbacks/HideoutCallbacks.cs +++ b/Core/Callbacks/HideoutCallbacks.cs @@ -2,6 +2,7 @@ using Core.Annotations; using Core.Controllers; using Core.DI; using Core.Models.Eft.Common; +using Core.Models.Eft.Common.Tables; using Core.Models.Eft.Hideout; using Core.Models.Eft.ItemEvent; using Core.Models.Enums; @@ -13,9 +14,9 @@ namespace Core.Callbacks; [Injectable(InjectableTypeOverride = typeof(OnUpdate), TypePriority = OnUpdateOrder.HideoutCallbacks)] public class HideoutCallbacks : OnUpdate { - protected HideoutController _hideoutController; - protected ConfigServer _configServer; - protected HideoutConfig _hideoutConfig; + private readonly HideoutController _hideoutController; + private readonly ConfigServer _configServer; + private readonly HideoutConfig _hideoutConfig; public HideoutCallbacks ( @@ -25,233 +26,143 @@ public class HideoutCallbacks : OnUpdate { _hideoutController = hideoutController; _configServer = configServer; - _hideoutConfig = configServer.GetConfig(ConfigTypes.HIDEOUT); + _hideoutConfig = _configServer.GetConfig(ConfigTypes.HIDEOUT); } /// /// Handle HideoutUpgrade event /// - /// - /// - /// - /// public ItemEventRouterResponse Upgrade(PmcData pmcData, HideoutUpgradeRequestData info, string sessionID, ItemEventRouterResponse output) { - // _hideoutController.StartUpgrade(pmcData, info, sessionID, output); - // TODO: HideoutController is not implemented rn + _hideoutController.StartUpgrade(pmcData, info, sessionID, output); + return output; } /// /// Handle HideoutUpgradeComplete event /// - /// - /// - /// - /// public ItemEventRouterResponse UpgradeComplete(PmcData pmcData, HideoutUpgradeCompleteRequestData info, string sessionID, ItemEventRouterResponse output) { - // _hideoutController.UpgradeComplete(pmcData, info, sessionID, output); - // TODO: HideoutController is not implemented rn + _hideoutController.UpgradeComplete(pmcData, info, sessionID, output); + return output; } /// /// Handle HideoutPutItemsInAreaSlots /// - /// - /// - /// - /// public ItemEventRouterResponse PutItemsInAreaSlots(PmcData pmcData, HideoutPutItemInRequestData info, string sessionID) { - // return _hideoutController.PutItemsInAreaSlots(pmcData, info, sessionID); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.PutItemsInAreaSlots(pmcData, info, sessionID); } /// /// Handle HideoutTakeItemsFromAreaSlots event /// - /// - /// - /// - /// public ItemEventRouterResponse TakeItemsFromAreaSlots(PmcData pmcData, HideoutTakeItemOutRequestData info, string sessionID) { - // return _hideoutController.TakeItemsFromAreaSlots(pmcData, info, sessionID); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.TakeItemsFromAreaSlots(pmcData, info, sessionID); } /// /// Handle HideoutToggleArea event /// - /// - /// - /// - /// public ItemEventRouterResponse ToggleArea(PmcData pmcData, HideoutToggleAreaRequestData info, string sessionID) { - // return _hideoutController.ToggleArea(pmcData, info, sessionID); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.ToggleArea(pmcData, info, sessionID); } /// /// Handle HideoutSingleProductionStart event /// - /// - /// - /// - /// public ItemEventRouterResponse SingleProductionStart(PmcData pmcData, HideoutSingleProductionStartRequestData info, string sessionID) { - // return _hideoutController.SingleProductionStart(pmcData, info, sessionID); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.SingleProductionStart(pmcData, info, sessionID); } /// /// Handle HideoutScavCaseProductionStart event /// - /// - /// - /// - /// public ItemEventRouterResponse ScavCaseProductionStart(PmcData pmcData, HideoutScavCaseStartRequestData info, string sessionID) { - // return _hideoutController.ScavCaseProductionStart(pmcData, info, sessionID); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.ScavCaseProductionStart(pmcData, info, sessionID); } /// /// Handle HideoutContinuousProductionStart /// - /// - /// - /// - /// public ItemEventRouterResponse ContinuousProductionStart(PmcData pmcData, HideoutContinuousProductionStartRequestData info, string sessionID) { - // return _hideoutController.ContinuousProductionStart(pmcData, info, sessionID); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.ContinuousProductionStart(pmcData, info, sessionID); } /// /// Handle HideoutTakeProduction event /// - /// - /// - /// - /// - public ItemEventRouterResponse TakeProduction(PmcData pmcData, HideoutTakeProductionRequestData info, string sessionID) + public ItemEventRouterResponse TakeProduction(PmcData pmcData, HideoutTakeProductionRequestData request, string sessionID) { - // return _hideoutController.TakeProduction(pmcData, info, sessionID); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.TakeProduction(pmcData, request, sessionID); } /// /// Handle HideoutQuickTimeEvent /// - /// - /// - /// - /// - /// - public ItemEventRouterResponse HandleQTEEvent(PmcData pmcData, HandleQTEEventRequestData info, string sessionID, ItemEventRouterResponse output) + public ItemEventRouterResponse HandleQTEEvent(PmcData pmcData, HandleQTEEventRequestData request, string sessionID, ItemEventRouterResponse output) { - // _hideoutController.HandleQTEEventOutcome(sessionID, pmcData, info, output); - // TODO: HideoutController is not implemented rn + _hideoutController.HandleQTEEventOutcome(sessionID, pmcData, request, output); + return output; } /// /// Handle client/game/profile/items/moving - RecordShootingRangePoints /// - /// - /// - /// - /// - /// - public ItemEventRouterResponse RecordShootingRangePoints(PmcData pmcData, RecordShootingRangePoints info, string sessionID, ItemEventRouterResponse output) + public ItemEventRouterResponse RecordShootingRangePoints(PmcData pmcData, RecordShootingRangePoints request, string sessionID, ItemEventRouterResponse output) { - // _hideoutController.RecordShootingRangePoints(sessionID, pmcData, info); - // TODO: HideoutController is not implemented rn + _hideoutController.RecordShootingRangePoints(sessionID, pmcData, request); + return output; } /// /// Handle client/game/profile/items/moving - RecordShootingRangePoints /// - /// - /// - /// - /// - public ItemEventRouterResponse ImproveArea(PmcData pmcData, HideoutImproveAreaRequestData info, string sessionID) + public ItemEventRouterResponse ImproveArea(PmcData pmcData, HideoutImproveAreaRequestData request, string sessionID) { - // return _hideoutController.ImproveArea(sessionID, pmcData, info); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.ImproveArea(sessionID, pmcData, request); } /// /// Handle client/game/profile/items/moving - HideoutCancelProductionCommand /// - /// - /// - /// - /// - public ItemEventRouterResponse CancelProduction(PmcData pmcData, HideoutImproveAreaRequestData info, string sessionID) + public ItemEventRouterResponse CancelProduction(PmcData pmcData, HideoutImproveAreaRequestData request, string sessionID) { - // return _hideoutController.CancelProduction(sessionID, pmcData, info); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.CancelProduction(sessionID, pmcData, request); } /// /// Handle client/game/profile/items/moving - HideoutCircleOfCultistProductionStart /// - /// - /// - /// - /// - public ItemEventRouterResponse CicleOfCultistProductionStart(PmcData pmcData, HideoutCircleOfCultistProductionStartRequestData info, string sessionID) + public ItemEventRouterResponse CicleOfCultistProductionStart(PmcData pmcData, HideoutCircleOfCultistProductionStartRequestData request, string sessionID) { - // return _hideoutController.CicleOfCultistProductionStart(sessionID, pmcData, info); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.CicleOfCultistProductionStart(sessionID, pmcData, request); } /// /// Handle client/game/profile/items/moving - HideoutDeleteProductionCommand /// - /// - /// - /// - /// - public ItemEventRouterResponse HideoutDeleteProductionCommand(PmcData pmcData, HideoutDeleteProductionRequestData info, string sessionID) + public ItemEventRouterResponse HideoutDeleteProductionCommand(PmcData pmcData, HideoutDeleteProductionRequestData request, string sessionID) { - // return _hideoutController.HideoutDeleteProductionCommand(sessionID, pmcData, info); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.HideoutDeleteProductionCommand(sessionID, pmcData, request); } /// /// Handle client/game/profile/items/moving - HideoutCustomizationApply /// - /// - /// - /// - /// public ItemEventRouterResponse HideoutCustomizationApplyCommand(PmcData pmcData, HideoutCustomizationApplyRequestData request, string sessionID) { - // return _hideoutController.HideoutCustomizationApply(sessionID, pmcData, info); - // TODO: HideoutController is not implemented rn - throw new NotImplementedException(); + return _hideoutController.HideoutCustomizationApply(sessionID, pmcData, request); } /** diff --git a/Core/Controllers/HideoutController.cs b/Core/Controllers/HideoutController.cs index 42883ac9..09e2f125 100644 --- a/Core/Controllers/HideoutController.cs +++ b/Core/Controllers/HideoutController.cs @@ -1,11 +1,16 @@ using Core.Annotations; +using Core.Generators; using Core.Helpers; using Core.Models.Eft.Common; using Core.Models.Eft.Hideout; using Core.Models.Eft.ItemEvent; +using Core.Models.Enums; +using Core.Models.Spt.Config; +using Core.Routers; using Core.Servers; using Core.Services; using Core.Utils; +using Core.Utils.Cloners; using ILogger = Core.Models.Utils.ILogger; namespace Core.Controllers; @@ -21,6 +26,21 @@ public class HideoutController private readonly InventoryHelper _inventoryHelper; private readonly ItemHelper _itemHelper; private readonly SaveServer _saveServer; + private readonly PlayerService _playerService; + private readonly PresetHelper _presetHelper; + private readonly PaymentHelper _paymentHelper; + private readonly EventOutputHolder _eventOutputHolder; + private readonly HttpResponseUtil _httpResponseUtil; + private readonly ProfileHelper _profileHelper; + private readonly HideoutHelper _hideoutHelper; + private readonly ScavCaseRewardGenerator _scavCaseRewardGenerator; + private readonly LocalisationService _localisationService; + private readonly ProfileActivityService _profileActivityService; + private readonly FenceService _fenceService; + private readonly CircleOfCultistService _circleOfCultistService; + private readonly ICloner _cloner; + private readonly ConfigServer _configServer; + private readonly HideoutConfig _hideoutConfig; public HideoutController( ILogger logger, @@ -30,7 +50,21 @@ public class HideoutController RandomUtil randomUtil, InventoryHelper inventoryHelper, ItemHelper itemHelper, - SaveServer saveServer) + SaveServer saveServer, + PlayerService playerService, + PresetHelper presetHelper, + PaymentHelper paymentHelper, + EventOutputHolder eventOutputHolder, + HttpResponseUtil httpResponseUtil, + ProfileHelper profileHelper, + HideoutHelper hideoutHelper, + ScavCaseRewardGenerator scavCaseRewardGenerator, + LocalisationService localisationService, + ProfileActivityService profileActivityService, + FenceService fenceService, + CircleOfCultistService circleOfCultistService, + ICloner cloner, + ConfigServer configServer) { _logger = logger; _hashUtil = hashUtil; @@ -40,6 +74,22 @@ public class HideoutController _inventoryHelper = inventoryHelper; _itemHelper = itemHelper; _saveServer = saveServer; + _playerService = playerService; + _presetHelper = presetHelper; + _paymentHelper = paymentHelper; + _eventOutputHolder = eventOutputHolder; + _httpResponseUtil = httpResponseUtil; + _profileHelper = profileHelper; + _hideoutHelper = hideoutHelper; + _scavCaseRewardGenerator = scavCaseRewardGenerator; + _localisationService = localisationService; + _profileActivityService = profileActivityService; + _fenceService = fenceService; + _circleOfCultistService = circleOfCultistService; + _cloner = cloner; + _configServer = configServer; + + _hideoutConfig = _configServer.GetConfig(ConfigTypes.HIDEOUT); } /** @@ -53,4 +103,84 @@ public class HideoutController { throw new NotImplementedException(); } + + public void StartUpgrade(PmcData pmcData, HideoutUpgradeRequestData info, string sessionId, ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } + + public void UpgradeComplete(PmcData pmcData, HideoutUpgradeCompleteRequestData request, string sessionId, ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse PutItemsInAreaSlots(PmcData pmcData, HideoutPutItemInRequestData request, string sessionId) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse TakeItemsFromAreaSlots(PmcData pmcData, HideoutTakeItemOutRequestData request, string sessionId) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse ToggleArea(PmcData pmcData, HideoutToggleAreaRequestData request, string sessionId) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse SingleProductionStart(PmcData pmcData, HideoutSingleProductionStartRequestData request, string sessionId) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse ScavCaseProductionStart(PmcData pmcData, HideoutScavCaseStartRequestData request, string sessionId) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse ContinuousProductionStart(PmcData pmcData, HideoutContinuousProductionStartRequestData request, string sessionId) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse TakeProduction(PmcData pmcData, HideoutTakeProductionRequestData request, string sessionId) + { + throw new NotImplementedException(); + } + + public void HandleQTEEventOutcome(string sessionId, PmcData pmcData, HandleQTEEventRequestData request, ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } + + public void RecordShootingRangePoints(string sessionId, PmcData pmcData, RecordShootingRangePoints request) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse ImproveArea(string sessionId, PmcData pmcData, HideoutImproveAreaRequestData request) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse CancelProduction(string sessionId, PmcData pmcData, HideoutImproveAreaRequestData request) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse CicleOfCultistProductionStart(string sessionId, PmcData pmcData, HideoutCircleOfCultistProductionStartRequestData request) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse HideoutDeleteProductionCommand(string sessionId, PmcData pmcData, HideoutDeleteProductionRequestData request) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse HideoutCustomizationApply(string sessionId, PmcData pmcData, HideoutCustomizationApplyRequestData request) + { + throw new NotImplementedException(); + } } diff --git a/Core/Models/Enums/HideoutEventActions.cs b/Core/Models/Enums/HideoutEventActions.cs index d7d0662e..24f82eeb 100644 --- a/Core/Models/Enums/HideoutEventActions.cs +++ b/Core/Models/Enums/HideoutEventActions.cs @@ -1,4 +1,4 @@ -namespace Core.Models.Enums; +namespace Core.Models.Enums; public class HideoutEventActions { @@ -17,4 +17,5 @@ public class HideoutEventActions public const string HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START = "HideoutCircleOfCultistProductionStart"; public const string HIDEOUT_DELETE_PRODUCTION_COMMAND = "HideoutDeleteProductionCommand"; public const string HIDEOUT_CUSTOMIZATION_APPLY_COMMAND = "HideoutCustomizationApply"; + public const string HIDEOUT_CUSTOMIZATION_SET_MANNEQUIN_POSE = "HideoutCustomizationSetMannequinPose"; } diff --git a/Core/Routers/ItemEvents/HideoutItemEventRouter.cs b/Core/Routers/ItemEvents/HideoutItemEventRouter.cs index 43f50174..43eedc00 100644 --- a/Core/Routers/ItemEvents/HideoutItemEventRouter.cs +++ b/Core/Routers/ItemEvents/HideoutItemEventRouter.cs @@ -1,4 +1,4 @@ -using Core.Annotations; +using Core.Annotations; using Core.Callbacks; using Core.DI; using Core.Models.Eft.Common; @@ -11,7 +11,7 @@ namespace Core.Routers.ItemEvents; [Injectable(InjectableTypeOverride = typeof(ItemEventRouterDefinition))] public class HideoutItemEventRouter : ItemEventRouterDefinition { - protected HideoutCallbacks _hideoutCallbacks; + private readonly HideoutCallbacks _hideoutCallbacks; public HideoutItemEventRouter ( @@ -38,7 +38,8 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition new HandledRoute(HideoutEventActions.HIDEOUT_CANCEL_PRODUCTION_COMMAND, false), new HandledRoute(HideoutEventActions.HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START, 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) }; } @@ -75,6 +76,8 @@ public class HideoutItemEventRouter : ItemEventRouterDefinition return _hideoutCallbacks.HideoutDeleteProductionCommand(pmcData, body as HideoutDeleteProductionRequestData, sessionID); case HideoutEventActions.HIDEOUT_CUSTOMIZATION_APPLY_COMMAND: return _hideoutCallbacks.HideoutCustomizationApplyCommand(pmcData, body as HideoutCustomizationApplyRequestData, sessionID); + case HideoutEventActions.HIDEOUT_CUSTOMIZATION_SET_MANNEQUIN_POSE: + return _hideoutCallbacks.HideoutCustomizationSetMannequinPose(pmcData, body as HideoutCustomizationSetMannequinPoseRequest, sessionID); default: throw new Exception($"HideoutItemEventRouter being used when it cant handle route {url}"); }