mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2025-12-15 05:04:16 +01:00
Add crest changing in designs.
This commit is contained in:
parent
2f1b85a02a
commit
6f4a7661d7
4 changed files with 44 additions and 1 deletions
|
|
@ -170,7 +170,7 @@ public class DesignBase
|
||||||
=> ApplyCustomize.HasFlag(idx.ToFlag());
|
=> ApplyCustomize.HasFlag(idx.ToFlag());
|
||||||
|
|
||||||
public bool DoApplyCrest(EquipSlot slot)
|
public bool DoApplyCrest(EquipSlot slot)
|
||||||
=> ApplyCrest.HasFlag(slot.ToFlag());
|
=> ApplyCrest.HasFlag(slot.ToCrestFlag());
|
||||||
|
|
||||||
internal bool SetApplyEquip(EquipSlot slot, bool value)
|
internal bool SetApplyEquip(EquipSlot slot, bool value)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -446,6 +446,31 @@ public class DesignManager
|
||||||
_event.Invoke(DesignChanged.Type.ApplyStain, design, slot);
|
_event.Invoke(DesignChanged.Type.ApplyStain, design, slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary> Change the crest visibility for any equipment piece. </summary>
|
||||||
|
public void ChangeCrest(Design design, EquipSlot slot, bool crest)
|
||||||
|
{
|
||||||
|
var oldCrest = design.DesignData.Crest(slot);
|
||||||
|
if (!design.GetDesignDataRef().SetCrest(slot, crest))
|
||||||
|
return;
|
||||||
|
|
||||||
|
design.LastEdit = DateTimeOffset.UtcNow;
|
||||||
|
_saveService.QueueSave(design);
|
||||||
|
Glamourer.Log.Debug($"Set crest visibility of {slot} equipment piece to {crest}.");
|
||||||
|
_event.Invoke(DesignChanged.Type.Crest, design, (oldCrest, crest, slot));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary> Change whether to apply a specific crest visibility. </summary>
|
||||||
|
public void ChangeApplyCrest(Design design, EquipSlot slot, bool value)
|
||||||
|
{
|
||||||
|
if (!design.SetApplyCrest(slot, value))
|
||||||
|
return;
|
||||||
|
|
||||||
|
design.LastEdit = DateTimeOffset.UtcNow;
|
||||||
|
_saveService.QueueSave(design);
|
||||||
|
Glamourer.Log.Debug($"Set applying of crest visibility of {slot} equipment piece to {value}.");
|
||||||
|
_event.Invoke(DesignChanged.Type.ApplyCrest, design, slot);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary> Change the bool value of one of the meta flags. </summary>
|
/// <summary> Change the bool value of one of the meta flags. </summary>
|
||||||
public void ChangeMeta(Design design, ActorState.MetaIndex metaIndex, bool value)
|
public void ChangeMeta(Design design, ActorState.MetaIndex metaIndex, bool value)
|
||||||
{
|
{
|
||||||
|
|
@ -514,6 +539,9 @@ public class DesignManager
|
||||||
|
|
||||||
if (other.DoApplyStain(slot))
|
if (other.DoApplyStain(slot))
|
||||||
ChangeStain(design, slot, other.DesignData.Stain(slot));
|
ChangeStain(design, slot, other.DesignData.Stain(slot));
|
||||||
|
|
||||||
|
if (other.DoApplyCrest(slot))
|
||||||
|
ChangeCrest(design, slot, other.DesignData.Crest(slot));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -528,6 +556,12 @@ public class DesignManager
|
||||||
|
|
||||||
if (other.DoApplyStain(EquipSlot.OffHand))
|
if (other.DoApplyStain(EquipSlot.OffHand))
|
||||||
ChangeStain(design, EquipSlot.OffHand, other.DesignData.Stain(EquipSlot.OffHand));
|
ChangeStain(design, EquipSlot.OffHand, other.DesignData.Stain(EquipSlot.OffHand));
|
||||||
|
|
||||||
|
if (other.DoApplyCrest(EquipSlot.MainHand))
|
||||||
|
ChangeCrest(design, EquipSlot.MainHand, other.DesignData.Crest(EquipSlot.MainHand));
|
||||||
|
|
||||||
|
if (other.DoApplyCrest(EquipSlot.OffHand))
|
||||||
|
ChangeCrest(design, EquipSlot.OffHand, other.DesignData.Crest(EquipSlot.OffHand));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UndoDesignChange(Design design)
|
public void UndoDesignChange(Design design)
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,9 @@ public sealed class DesignChanged : EventWrapper<Action<DesignChanged.Type, Desi
|
||||||
/// <summary> An existing design had a stain changed. Data is the old stain id, the new stain id and the slot [(StainId, StainId, EquipSlot)]. </summary>
|
/// <summary> An existing design had a stain changed. Data is the old stain id, the new stain id and the slot [(StainId, StainId, EquipSlot)]. </summary>
|
||||||
Stain,
|
Stain,
|
||||||
|
|
||||||
|
/// <summary> An existing design had a crest visibility changed. Data is the old crest visibility, the new crest visibility and the slot [(bool, bool, EquipSlot)]. </summary>
|
||||||
|
Crest,
|
||||||
|
|
||||||
/// <summary> An existing design changed whether a specific customization is applied. Data is the type of customization [CustomizeIndex]. </summary>
|
/// <summary> An existing design changed whether a specific customization is applied. Data is the type of customization [CustomizeIndex]. </summary>
|
||||||
ApplyCustomize,
|
ApplyCustomize,
|
||||||
|
|
||||||
|
|
@ -71,6 +74,9 @@ public sealed class DesignChanged : EventWrapper<Action<DesignChanged.Type, Desi
|
||||||
/// <summary> An existing design changed whether a specific stain is applied. Data is the slot of the equipment [EquipSlot]. </summary>
|
/// <summary> An existing design changed whether a specific stain is applied. Data is the slot of the equipment [EquipSlot]. </summary>
|
||||||
ApplyStain,
|
ApplyStain,
|
||||||
|
|
||||||
|
/// <summary> An existing design changed whether a specific crest visibility is applied. Data is the slot of the equipment [EquipSlot]. </summary>
|
||||||
|
ApplyCrest,
|
||||||
|
|
||||||
/// <summary> An existing design changed its write protection status. Data is the new value [bool]. </summary>
|
/// <summary> An existing design changed its write protection status. Data is the new value [bool]. </summary>
|
||||||
WriteProtection,
|
WriteProtection,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,9 @@ public sealed class StateChanged : EventWrapper<Action<StateChanged.Type, StateC
|
||||||
/// <summary> A characters saved state had a stain changed. Data is the old stain id, the new stain id and the slot [(StainId, StainId, EquipSlot)]. </summary>
|
/// <summary> A characters saved state had a stain changed. Data is the old stain id, the new stain id and the slot [(StainId, StainId, EquipSlot)]. </summary>
|
||||||
Stain,
|
Stain,
|
||||||
|
|
||||||
|
/// <summary> A characters saved state had a crest visibility changed. Data is the old crest visibility, the new crest visibility and the slot [(bool, bool, EquipSlot)]. </summary>
|
||||||
|
Crest,
|
||||||
|
|
||||||
/// <summary> A characters saved state had a design applied. This means everything may have changed. Data is the applied design. [DesignBase] </summary>
|
/// <summary> A characters saved state had a design applied. This means everything may have changed. Data is the applied design. [DesignBase] </summary>
|
||||||
Design,
|
Design,
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue