Fix issues with ResetAdvancedDyes and weapon types.

This commit is contained in:
Ottermandias 2024-11-08 10:20:30 +01:00
parent dd217a2475
commit a5998b84ba
7 changed files with 15 additions and 11 deletions

View file

@ -558,7 +558,7 @@ public class EquipmentDrawer
label = combo.Label; label = combo.Label;
var locked = offhand.Locked var locked = offhand.Locked
|| !_gPose.InGPose && (offhand.CurrentItem.Type is FullEquipType.Unknown || mainhand.CurrentItem.Type is FullEquipType.Unknown); || !_gPose.InGPose && (offhand.CurrentItem.Type.IsUnknown() || mainhand.CurrentItem.Type.IsUnknown());
using var disabled = ImRaii.Disabled(locked); using var disabled = ImRaii.Disabled(locked);
if (!locked && open) if (!locked && open)
UiHelpers.OpenCombo($"##{combo.Label}"); UiHelpers.OpenCombo($"##{combo.Label}");

View file

@ -81,7 +81,7 @@ public sealed class WeaponCombo : FilterComboCache<EquipItem>
=> obj.Name; => obj.Name;
private static string GetLabel(FullEquipType type) private static string GetLabel(FullEquipType type)
=> type is FullEquipType.Unknown ? "Mainhand" : type.ToName(); => type.IsUnknown() ? "Mainhand" : type.ToName();
private static IReadOnlyList<EquipItem> GetWeapons(FavoriteManager favorites, ItemManager items, FullEquipType type) private static IReadOnlyList<EquipItem> GetWeapons(FavoriteManager favorites, ItemManager items, FullEquipType type)
{ {

View file

@ -28,8 +28,10 @@ public sealed class PenumbraChangedItemTooltip : IDisposable
=> EquipSlotExtensions.EqdpSlots.Append(EquipSlot.MainHand).Append(EquipSlot.OffHand).Zip(_lastItems) => EquipSlotExtensions.EqdpSlots.Append(EquipSlot.MainHand).Append(EquipSlot.OffHand).Zip(_lastItems)
.Select(p => new KeyValuePair<EquipSlot, EquipItem>(p.First, p.Second)); .Select(p => new KeyValuePair<EquipSlot, EquipItem>(p.First, p.Second));
public DateTime LastTooltip { get; private set; } = DateTime.MinValue; public ChangedItemType LastType { get; private set; } = ChangedItemType.None;
public DateTime LastClick { get; private set; } = DateTime.MinValue; public uint LastId { get; private set; } = 0;
public DateTime LastTooltip { get; private set; } = DateTime.MinValue;
public DateTime LastClick { get; private set; } = DateTime.MinValue;
public PenumbraChangedItemTooltip(PenumbraService penumbra, StateManager stateManager, ItemManager items, ObjectManager objects, public PenumbraChangedItemTooltip(PenumbraService penumbra, StateManager stateManager, ItemManager items, ObjectManager objects,
CustomizeService customize, GPoseService gpose) CustomizeService customize, GPoseService gpose)
@ -160,6 +162,8 @@ public sealed class PenumbraChangedItemTooltip : IDisposable
private void OnPenumbraTooltip(ChangedItemType type, uint id) private void OnPenumbraTooltip(ChangedItemType type, uint id)
{ {
LastType = type;
LastId = id;
LastTooltip = DateTime.UtcNow; LastTooltip = DateTime.UtcNow;
if (!Player()) if (!Player())
return; return;
@ -204,7 +208,7 @@ public sealed class PenumbraChangedItemTooltip : IDisposable
return true; return true;
var main = _objects.Player.GetMainhand(); var main = _objects.Player.GetMainhand();
var mainItem = _items.Identify(slot, main.Skeleton, main.Weapon, main.Variant); var mainItem = _items.Identify(EquipSlot.MainHand, main.Skeleton, main.Weapon, main.Variant);
if (slot == EquipSlot.MainHand) if (slot == EquipSlot.MainHand)
return item.Type == mainItem.Type; return item.Type == mainItem.Type;

View file

@ -76,7 +76,7 @@ public unsafe class PenumbraPanel(PenumbraService _penumbra, PenumbraChangedItem
} }
ImGuiUtil.DrawTableColumn("Last Tooltip Date"); ImGuiUtil.DrawTableColumn("Last Tooltip Date");
ImGuiUtil.DrawTableColumn(_penumbraTooltip.LastTooltip > DateTime.MinValue ? _penumbraTooltip.LastTooltip.ToLongTimeString() : "Never"); ImGuiUtil.DrawTableColumn(_penumbraTooltip.LastTooltip > DateTime.MinValue ? $"{_penumbraTooltip.LastTooltip.ToLongTimeString()} ({_penumbraTooltip.LastType} {_penumbraTooltip.LastId})" : "Never");
ImGui.TableNextColumn(); ImGui.TableNextColumn();
ImGuiUtil.DrawTableColumn("Last Click Date"); ImGuiUtil.DrawTableColumn("Last Click Date");

View file

@ -143,11 +143,11 @@ public class DesignDetailTab
_manager.ChangeForcedRedraw(_selector.Selected!, forceRedraw); _manager.ChangeForcedRedraw(_selector.Selected!, forceRedraw);
ImGuiUtil.HoverTooltip("Set this design to always force a redraw when it is applied through any means."); ImGuiUtil.HoverTooltip("Set this design to always force a redraw when it is applied through any means.");
var resetMaterials = _selector.Selected!.ResetAdvancedDyes; var resetAdvancedDyes = _selector.Selected!.ResetAdvancedDyes;
ImGuiUtil.DrawFrameColumn("Reset Advanced Dyes"); ImGuiUtil.DrawFrameColumn("Reset Advanced Dyes");
ImGui.TableNextColumn(); ImGui.TableNextColumn();
if (ImGui.Checkbox("##ResetAdvancedDyes", ref resetMaterials)) if (ImGui.Checkbox("##ResetAdvancedDyes", ref resetAdvancedDyes))
_manager.ChangeResetAdvancedDyes(_selector.Selected!, resetMaterials); _manager.ChangeResetAdvancedDyes(_selector.Selected!, resetAdvancedDyes);
ImGuiUtil.HoverTooltip("Set this design to reset any previously applied advanced dyes when it is applied through any means."); ImGuiUtil.HoverTooltip("Set this design to reset any previously applied advanced dyes when it is applied through any means.");
ImGuiUtil.DrawFrameColumn("Color"); ImGuiUtil.DrawFrameColumn("Color");

View file

@ -380,7 +380,7 @@ public class StateEditor(
Editor.ChangeMetaState(state, meta, mergedDesign.Design.DesignData.GetMeta(meta), Source(meta), out _, settings.Key); Editor.ChangeMetaState(state, meta, mergedDesign.Design.DesignData.GetMeta(meta), Source(meta), out _, settings.Key);
} }
if (settings.ResetMaterials || mergedDesign.ResetAdvancedDyes) if (settings.ResetMaterials || (!settings.RespectManual && mergedDesign.ResetAdvancedDyes))
state.Materials.Clear(); state.Materials.Clear();
foreach (var (key, value) in mergedDesign.Design.Materials) foreach (var (key, value) in mergedDesign.Design.Materials)

@ -1 +1 @@
Subproject commit 554e28a3d1fca9394a20fd9856f6387e2a5e4a57 Subproject commit 77d52b02d21e770b30c08f89bdf06e0cb75562f7