Implemented parts of HideoutCallbacks

This commit is contained in:
Chomp
2025-01-14 18:46:41 +00:00
parent 76a334b600
commit 80b077b74d
4 changed files with 171 additions and 126 deletions
+32 -121
View File
@@ -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<HideoutConfig>(ConfigTypes.HIDEOUT);
_hideoutConfig = _configServer.GetConfig<HideoutConfig>(ConfigTypes.HIDEOUT);
}
/// <summary>
/// Handle HideoutUpgrade event
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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;
}
/// <summary>
/// Handle HideoutUpgradeComplete event
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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;
}
/// <summary>
/// Handle HideoutPutItemsInAreaSlots
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle HideoutTakeItemsFromAreaSlots event
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle HideoutToggleArea event
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle HideoutSingleProductionStart event
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle HideoutScavCaseProductionStart event
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle HideoutContinuousProductionStart
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle HideoutTakeProduction event
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle HideoutQuickTimeEvent
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <param name="output"></param>
/// <returns></returns>
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;
}
/// <summary>
/// Handle client/game/profile/items/moving - RecordShootingRangePoints
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <param name="output"></param>
/// <returns></returns>
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;
}
/// <summary>
/// Handle client/game/profile/items/moving - RecordShootingRangePoints
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle client/game/profile/items/moving - HideoutCancelProductionCommand
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle client/game/profile/items/moving - HideoutCircleOfCultistProductionStart
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle client/game/profile/items/moving - HideoutDeleteProductionCommand
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/// <summary>
/// Handle client/game/profile/items/moving - HideoutCustomizationApply
/// </summary>
/// <param name="pmcData"></param>
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
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);
}
/**
+131 -1
View File
@@ -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<HideoutConfig>(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();
}
}
+2 -1
View File
@@ -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";
}
@@ -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}");
}