mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2025-12-12 10:17:23 +01:00
Fix customize check to use correct gender/clan.
This commit is contained in:
parent
488bea0e78
commit
c40853e5b2
5 changed files with 16 additions and 12 deletions
|
|
@ -264,7 +264,7 @@ public sealed class AutoDesignApplier : IDisposable
|
|||
|
||||
var mergedDesign = _designMerger.Merge(
|
||||
set.Designs.Where(d => d.IsActive(actor)).SelectMany(d => d.Design?.AllLinks.Select(l => (l.Design, l.Flags & d.Type)) ?? [(d.Design, d.Type)]),
|
||||
state.BaseData, true, _config.AlwaysApplyAssociatedMods);
|
||||
state.ModelData.Customize, state.BaseData, true, _config.AlwaysApplyAssociatedMods);
|
||||
_state.ApplyDesign(state, mergedDesign, new ApplySettings(0, StateSource.Fixed, respectManual, fromJobChange, false));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,15 +92,13 @@ public class DesignBase
|
|||
internal MetaFlag ApplyMeta = MetaFlag.HatState | MetaFlag.VisorState | MetaFlag.WeaponState;
|
||||
private bool _writeProtected;
|
||||
|
||||
public bool SetCustomize(CustomizeService customizeService, CustomizeArray customize, CustomizeSet? set = null)
|
||||
public bool SetCustomize(CustomizeService customizeService, CustomizeArray customize)
|
||||
{
|
||||
if (customize.Equals(_designData.Customize))
|
||||
return false;
|
||||
|
||||
set ??= customizeService.Manager.GetSet(customize.Clan, customize.Gender);
|
||||
Debug.Assert(set.Clan == customize.Clan && set.Gender == customize.Gender, "Invalid CustomizeSet provided.");
|
||||
_designData.Customize = customize;
|
||||
CustomizeSet = set;
|
||||
_designData.Customize = customize;
|
||||
CustomizeSet = customizeService.Manager.GetSet(customize.Clan, customize.Gender);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ using Glamourer.State;
|
|||
using Glamourer.Unlocks;
|
||||
using OtterGui.Services;
|
||||
using Penumbra.GameData.Enums;
|
||||
using Penumbra.GameData.Structs;
|
||||
|
||||
namespace Glamourer.Designs.Links;
|
||||
|
||||
|
|
@ -15,13 +16,14 @@ public class DesignMerger(
|
|||
ItemUnlockManager _itemUnlocks,
|
||||
CustomizeUnlockManager _customizeUnlocks) : IService
|
||||
{
|
||||
public MergedDesign Merge(LinkContainer designs, in DesignData baseRef, bool respectOwnership, bool modAssociations)
|
||||
=> Merge(designs.Select(d => ((DesignBase?) d.Link, d.Type)), baseRef, respectOwnership, modAssociations);
|
||||
public MergedDesign Merge(LinkContainer designs, in CustomizeArray currentCustomize, in DesignData baseRef, bool respectOwnership, bool modAssociations)
|
||||
=> Merge(designs.Select(d => ((DesignBase?) d.Link, d.Type)), currentCustomize, baseRef, respectOwnership, modAssociations);
|
||||
|
||||
public MergedDesign Merge(IEnumerable<(DesignBase?, ApplicationType)> designs, in DesignData baseRef, bool respectOwnership,
|
||||
public MergedDesign Merge(IEnumerable<(DesignBase?, ApplicationType)> designs, in CustomizeArray currentCustomize, in DesignData baseRef, bool respectOwnership,
|
||||
bool modAssociations)
|
||||
{
|
||||
var ret = new MergedDesign(designManager);
|
||||
ret.Design.SetCustomize(_customize, currentCustomize);
|
||||
CustomizeFlag fixFlags = 0;
|
||||
respectOwnership &= _config.UnlockedItemMode;
|
||||
foreach (var (design, type) in designs)
|
||||
|
|
@ -63,6 +65,8 @@ public class DesignMerger(
|
|||
private static void ReduceMeta(in DesignData design, MetaFlag applyMeta, MergedDesign ret, StateSource source)
|
||||
{
|
||||
applyMeta &= ~ret.Design.ApplyMeta;
|
||||
if (applyMeta == 0)
|
||||
return;
|
||||
|
||||
foreach (var index in MetaExtensions.AllRelevant)
|
||||
{
|
||||
|
|
@ -227,7 +231,7 @@ public class DesignMerger(
|
|||
ret.Sources[CustomizeIndex.Face] = source;
|
||||
}
|
||||
|
||||
var set = _customize.Manager.GetSet(ret.Design.DesignData.Customize.Clan, ret.Design.DesignData.Customize.Gender);
|
||||
var set = _customize.Manager.GetSet(customize.Clan, customize.Gender);
|
||||
var face = customize.Face;
|
||||
foreach (var index in Enum.GetValues<CustomizeIndex>())
|
||||
{
|
||||
|
|
@ -248,7 +252,7 @@ public class DesignMerger(
|
|||
fixFlags &= ~flag;
|
||||
}
|
||||
|
||||
ret.Design.SetCustomize(_customize, customize, set);
|
||||
ret.Design.SetCustomize(_customize, customize);
|
||||
}
|
||||
|
||||
private static void ApplyFixFlags(MergedDesign ret, CustomizeFlag fixFlags)
|
||||
|
|
|
|||
|
|
@ -78,6 +78,8 @@ public class DesignConverterPanel(DesignConverter _designConverter) : IGameDataD
|
|||
{
|
||||
using var f = ImRaii.PushFont(UiBuilder.MonoFont);
|
||||
ImGuiUtil.TextWrapped(_textUncompressed);
|
||||
if (ImGui.IsItemClicked())
|
||||
ImGui.SetClipboardText(_textUncompressed);
|
||||
}
|
||||
|
||||
if (_json != null)
|
||||
|
|
|
|||
|
|
@ -321,7 +321,7 @@ public class StateEditor(
|
|||
public void ApplyDesign(object data, DesignBase design, ApplySettings settings)
|
||||
{
|
||||
var merged = settings.MergeLinks && design is Design d
|
||||
? merger.Merge(d.AllLinks, ((ActorState)data).BaseData, false, Config.AlwaysApplyAssociatedMods)
|
||||
? merger.Merge(d.AllLinks, ((ActorState)data).ModelData.Customize, ((ActorState)data).BaseData, false, Config.AlwaysApplyAssociatedMods)
|
||||
: new MergedDesign(design);
|
||||
|
||||
ApplyDesign(data, merged, settings with
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue