From 8c401cfd1fb4398a8f6be8898e814ca61fad7a5e Mon Sep 17 00:00:00 2001 From: Chomp Date: Tue, 14 Jan 2025 19:30:15 +0000 Subject: [PATCH] Various fixes + added`TimerUtil` --- Core/Callbacks/HideoutCallbacks.cs | 32 +++++++++--------- Core/Helpers/ProfileHelper.cs | 4 +-- Core/Models/Eft/Common/Globals.cs | 43 +++++++++++++++++++++--- Core/Models/Spt/Config/LocationConfig.cs | 7 ++-- Core/Utils/TimerUtil.cs | 30 +++++++++++++++++ 5 files changed, 92 insertions(+), 24 deletions(-) create mode 100644 Core/Utils/TimerUtil.cs diff --git a/Core/Callbacks/HideoutCallbacks.cs b/Core/Callbacks/HideoutCallbacks.cs index 335e319e..26a22479 100644 --- a/Core/Callbacks/HideoutCallbacks.cs +++ b/Core/Callbacks/HideoutCallbacks.cs @@ -32,9 +32,9 @@ public class HideoutCallbacks : OnUpdate /// /// Handle HideoutUpgrade event /// - public ItemEventRouterResponse Upgrade(PmcData pmcData, HideoutUpgradeRequestData info, string sessionID, ItemEventRouterResponse output) + public ItemEventRouterResponse Upgrade(PmcData pmcData, HideoutUpgradeRequestData request, string sessionID, ItemEventRouterResponse output) { - _hideoutController.StartUpgrade(pmcData, info, sessionID, output); + _hideoutController.StartUpgrade(pmcData, request, sessionID, output); return output; } @@ -42,9 +42,9 @@ public class HideoutCallbacks : OnUpdate /// /// Handle HideoutUpgradeComplete event /// - public ItemEventRouterResponse UpgradeComplete(PmcData pmcData, HideoutUpgradeCompleteRequestData info, string sessionID, ItemEventRouterResponse output) + public ItemEventRouterResponse UpgradeComplete(PmcData pmcData, HideoutUpgradeCompleteRequestData request, string sessionID, ItemEventRouterResponse output) { - _hideoutController.UpgradeComplete(pmcData, info, sessionID, output); + _hideoutController.UpgradeComplete(pmcData, request, sessionID, output); return output; } @@ -52,49 +52,49 @@ public class HideoutCallbacks : OnUpdate /// /// Handle HideoutPutItemsInAreaSlots /// - public ItemEventRouterResponse PutItemsInAreaSlots(PmcData pmcData, HideoutPutItemInRequestData info, string sessionID) + public ItemEventRouterResponse PutItemsInAreaSlots(PmcData pmcData, HideoutPutItemInRequestData request, string sessionID) { - return _hideoutController.PutItemsInAreaSlots(pmcData, info, sessionID); + return _hideoutController.PutItemsInAreaSlots(pmcData, request, sessionID); } /// /// Handle HideoutTakeItemsFromAreaSlots event /// - public ItemEventRouterResponse TakeItemsFromAreaSlots(PmcData pmcData, HideoutTakeItemOutRequestData info, string sessionID) + public ItemEventRouterResponse TakeItemsFromAreaSlots(PmcData pmcData, HideoutTakeItemOutRequestData request, string sessionID) { - return _hideoutController.TakeItemsFromAreaSlots(pmcData, info, sessionID); + return _hideoutController.TakeItemsFromAreaSlots(pmcData, request, sessionID); } /// /// Handle HideoutToggleArea event /// - public ItemEventRouterResponse ToggleArea(PmcData pmcData, HideoutToggleAreaRequestData info, string sessionID) + public ItemEventRouterResponse ToggleArea(PmcData pmcData, HideoutToggleAreaRequestData request, string sessionID) { - return _hideoutController.ToggleArea(pmcData, info, sessionID); + return _hideoutController.ToggleArea(pmcData, request, sessionID); } /// /// Handle HideoutSingleProductionStart event /// - public ItemEventRouterResponse SingleProductionStart(PmcData pmcData, HideoutSingleProductionStartRequestData info, string sessionID) + public ItemEventRouterResponse SingleProductionStart(PmcData pmcData, HideoutSingleProductionStartRequestData request, string sessionID) { - return _hideoutController.SingleProductionStart(pmcData, info, sessionID); + return _hideoutController.SingleProductionStart(pmcData, request, sessionID); } /// /// Handle HideoutScavCaseProductionStart event /// - public ItemEventRouterResponse ScavCaseProductionStart(PmcData pmcData, HideoutScavCaseStartRequestData info, string sessionID) + public ItemEventRouterResponse ScavCaseProductionStart(PmcData pmcData, HideoutScavCaseStartRequestData request, string sessionID) { - return _hideoutController.ScavCaseProductionStart(pmcData, info, sessionID); + return _hideoutController.ScavCaseProductionStart(pmcData, request, sessionID); } /// /// Handle HideoutContinuousProductionStart /// - public ItemEventRouterResponse ContinuousProductionStart(PmcData pmcData, HideoutContinuousProductionStartRequestData info, string sessionID) + public ItemEventRouterResponse ContinuousProductionStart(PmcData pmcData, HideoutContinuousProductionStartRequestData request, string sessionID) { - return _hideoutController.ContinuousProductionStart(pmcData, info, sessionID); + return _hideoutController.ContinuousProductionStart(pmcData, request, sessionID); } /// diff --git a/Core/Helpers/ProfileHelper.cs b/Core/Helpers/ProfileHelper.cs index 8de4d0dd..02255ad2 100644 --- a/Core/Helpers/ProfileHelper.cs +++ b/Core/Helpers/ProfileHelper.cs @@ -662,9 +662,9 @@ public class ProfileHelper } var customisationTemplateDb = _databaseService.GetTemplates().Customization; - var matchingCustomisation = customisationTemplateDb[reward.Target]; + var matchingCustomisation = customisationTemplateDb.GetValueOrDefault(reward.Target, null); - if (matchingCustomisation != null) + if (matchingCustomisation is null) { var rewardToStore = new CustomisationStorage { diff --git a/Core/Models/Eft/Common/Globals.cs b/Core/Models/Eft/Common/Globals.cs index f1c7609c..5f341e59 100644 --- a/Core/Models/Eft/Common/Globals.cs +++ b/Core/Models/Eft/Common/Globals.cs @@ -1,4 +1,4 @@ -using Core.Models.Eft.Common.Tables; +using Core.Models.Eft.Common.Tables; using Core.Models.Eft.Hideout; namespace Core.Models.Eft.Common; @@ -1294,13 +1294,13 @@ public class Mastering public class Customization { [JsonPropertyName("SavageHead")] - public Dictionary>? Head { get; set; } + public Dictionary>? Head { get; set; } [JsonPropertyName("SavageBody")] - public Dictionary>? Body { get; set; } + public Dictionary>? Body { get; set; } [JsonPropertyName("SavageFeet")] - public Dictionary>? Feet { get; set; } + public Dictionary>? Feet { get; set; } [JsonPropertyName("CustomizationVoice")] public List? VoiceOptions { get; set; } @@ -1309,6 +1309,41 @@ public class Customization public BodyParts? BodyParts { get; set; } } +public class WildHead +{ + [JsonPropertyName("head")] + public string Head { get; set; } + + [JsonPropertyName("isNotRandom")] + public string IsNotRandom { get; set; } + + [JsonPropertyName("NotRandom")] + public string NotRandom { get; set; } +} + +public class WildBody +{ + [JsonPropertyName("body")] + public string Body { get; set; } + + [JsonPropertyName("hands")] + public string Hands { get; set; } + + [JsonPropertyName("isNotRandom")] + public string IsNotRandom { get; set; } +} +public class WildFeet +{ + [JsonPropertyName("head")] + public string Head { get; set; } + + [JsonPropertyName("isNotRandom")] + public string IsNotRandom { get; set; } + + [JsonPropertyName("NotRandom")] + public string NotRandom { get; set; } +} + public class CustomizationVoice { [JsonPropertyName("voice")] diff --git a/Core/Models/Spt/Config/LocationConfig.cs b/Core/Models/Spt/Config/LocationConfig.cs index 2d751689..e6b9ffb0 100644 --- a/Core/Models/Spt/Config/LocationConfig.cs +++ b/Core/Models/Spt/Config/LocationConfig.cs @@ -1,4 +1,4 @@ -using System.Text.Json.Serialization; +using System.Text.Json.Serialization; using Core.Models.Common; using Core.Models.Eft.Common; @@ -131,7 +131,10 @@ public class LocationConfig : BaseConfig /// [JsonPropertyName("reserveRaiderSpawnChanceOverrides")] public ReserveRaiderSpawnChanceOverrides ReserveRaiderSpawnChanceOverrides { get; set; } - + + /// + /// Containers to remove all children from when generating static/loose loot + /// [JsonPropertyName("tplsToStripChildItemsFrom")] public List TplsToStripChildItemsFrom { get; set; } diff --git a/Core/Utils/TimerUtil.cs b/Core/Utils/TimerUtil.cs new file mode 100644 index 00000000..76ada3bf --- /dev/null +++ b/Core/Utils/TimerUtil.cs @@ -0,0 +1,30 @@ +using System.Diagnostics; +using Core.Annotations; + +namespace Core.Utils +{ + [Injectable] + public class TimerUtil + { + private readonly Stopwatch _stopwatch; + + public TimerUtil() + { + _stopwatch = new Stopwatch(); + _stopwatch.Start(); + } + + public int Stop(string unit = "sec") + { + _stopwatch.Stop(); + var timePassed = _stopwatch.Elapsed; + + return unit switch + { + "ns" => timePassed.Nanoseconds, + "ms" => timePassed.Milliseconds, + _ => timePassed.Seconds + }; + } + } +}