From 0d7f9f4aa4ba5b90ce90eaac26d09cc43c9087cc Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 3 Feb 2024 21:14:16 +0100 Subject: [PATCH] Add an option to never discard items crafted manually --- ARDiscard/ARDiscard.csproj | 2 +- ARDiscard/Configuration.cs | 1 + ARDiscard/GameData/InventoryUtils.cs | 3 +++ ARDiscard/Windows/ConfigWindow.cs | 12 +++++++++++- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ARDiscard/ARDiscard.csproj b/ARDiscard/ARDiscard.csproj index 0be9dbb..7c059e3 100644 --- a/ARDiscard/ARDiscard.csproj +++ b/ARDiscard/ARDiscard.csproj @@ -1,7 +1,7 @@ net7.0-windows - 4.5 + 4.6 11.0 enable true diff --git a/ARDiscard/Configuration.cs b/ARDiscard/Configuration.cs index b7f49b8..80a944c 100644 --- a/ARDiscard/Configuration.cs +++ b/ARDiscard/Configuration.cs @@ -15,6 +15,7 @@ internal sealed class Configuration : IPluginConfiguration public ContextMenuConfiguration ContextMenu { get; set; } = new(); public PreviewConfiguration Preview { get; set; } = new(); public uint IgnoreItemCountWhenAbove { get; set; } = 50; + public bool IgnoreItemWithSignature { get; set; } public sealed class CharacterInfo { diff --git a/ARDiscard/GameData/InventoryUtils.cs b/ARDiscard/GameData/InventoryUtils.cs index 93e8669..688d60e 100644 --- a/ARDiscard/GameData/InventoryUtils.cs +++ b/ARDiscard/GameData/InventoryUtils.cs @@ -133,6 +133,9 @@ internal sealed class InventoryUtils itemInfo.ILvl >= _configuration.Armoury.MaximumGearItemLevel) continue; + if (_configuration.IgnoreItemWithSignature && item->CrafterContentID != 0) + continue; + //PluginLog.Verbose($"{i} → {item->ItemID}"); if (_configuration.DiscardingItems.Contains(item->ItemID)) { diff --git a/ARDiscard/Windows/ConfigWindow.cs b/ARDiscard/Windows/ConfigWindow.cs index d9b1bea..ba19f5d 100644 --- a/ARDiscard/Windows/ConfigWindow.cs +++ b/ARDiscard/Windows/ConfigWindow.cs @@ -284,7 +284,8 @@ internal sealed class ConfigWindow : LImGui.LWindow ImGui.Indent(30); bool mainHandOffHand = _configuration.Armoury.CheckMainHandOffHand; - if (ImGui.Checkbox("Discard when items are found in Main Hand/Off Hand (Weapons and Tools)", ref mainHandOffHand)) + if (ImGui.Checkbox("Discard when items are found in Main Hand/Off Hand (Weapons and Tools)", + ref mainHandOffHand)) { _configuration.Armoury.CheckMainHandOffHand = mainHandOffHand; Save(); @@ -348,6 +349,15 @@ internal sealed class ConfigWindow : LImGui.LWindow Save(); } + bool ignoreItemWithSignature = _configuration.IgnoreItemWithSignature; + if (ImGui.Checkbox( + "Ignore items with a 'crafted by' signature (manually crafted by yourself or someone else)", + ref ignoreItemWithSignature)) + { + _configuration.IgnoreItemWithSignature = ignoreItemWithSignature; + Save(); + } + ImGui.Separator(); bool groupPreviewByCategory = _configuration.Preview.GroupByCategory;