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;
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);
if (!locked && open)
UiHelpers.OpenCombo($"##{combo.Label}");

View file

@ -81,7 +81,7 @@ public sealed class WeaponCombo : FilterComboCache<EquipItem>
=> obj.Name;
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)
{

View file

@ -28,8 +28,10 @@ public sealed class PenumbraChangedItemTooltip : IDisposable
=> EquipSlotExtensions.EqdpSlots.Append(EquipSlot.MainHand).Append(EquipSlot.OffHand).Zip(_lastItems)
.Select(p => new KeyValuePair<EquipSlot, EquipItem>(p.First, p.Second));
public DateTime LastTooltip { get; private set; } = DateTime.MinValue;
public DateTime LastClick { get; private set; } = DateTime.MinValue;
public ChangedItemType LastType { get; private set; } = ChangedItemType.None;
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,
CustomizeService customize, GPoseService gpose)
@ -160,6 +162,8 @@ public sealed class PenumbraChangedItemTooltip : IDisposable
private void OnPenumbraTooltip(ChangedItemType type, uint id)
{
LastType = type;
LastId = id;
LastTooltip = DateTime.UtcNow;
if (!Player())
return;
@ -204,7 +208,7 @@ public sealed class PenumbraChangedItemTooltip : IDisposable
return true;
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)
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(_penumbraTooltip.LastTooltip > DateTime.MinValue ? _penumbraTooltip.LastTooltip.ToLongTimeString() : "Never");
ImGuiUtil.DrawTableColumn(_penumbraTooltip.LastTooltip > DateTime.MinValue ? $"{_penumbraTooltip.LastTooltip.ToLongTimeString()} ({_penumbraTooltip.LastType} {_penumbraTooltip.LastId})" : "Never");
ImGui.TableNextColumn();
ImGuiUtil.DrawTableColumn("Last Click Date");

View file

@ -143,11 +143,11 @@ public class DesignDetailTab
_manager.ChangeForcedRedraw(_selector.Selected!, forceRedraw);
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");
ImGui.TableNextColumn();
if (ImGui.Checkbox("##ResetAdvancedDyes", ref resetMaterials))
_manager.ChangeResetAdvancedDyes(_selector.Selected!, resetMaterials);
if (ImGui.Checkbox("##ResetAdvancedDyes", ref resetAdvancedDyes))
_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.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);
}
if (settings.ResetMaterials || mergedDesign.ResetAdvancedDyes)
if (settings.ResetMaterials || (!settings.RespectManual && mergedDesign.ResetAdvancedDyes))
state.Materials.Clear();
foreach (var (key, value) in mergedDesign.Design.Materials)

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