mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2025-12-12 18:27:24 +01:00
Merge branch 'Ottermandias:main' into random_no_repeat
This commit is contained in:
commit
45981f2fee
11 changed files with 40 additions and 19 deletions
|
|
@ -1 +1 @@
|
||||||
Subproject commit 8de6fa7246a403de50b3be4e17bb5f188717b279
|
Subproject commit 9f9bdf0873899d2e45fabaca446bb1624303b418
|
||||||
|
|
@ -301,7 +301,7 @@ public sealed class StateApi : IGlamourerApiState, IApiService, IDisposable
|
||||||
private void RevertToAutomation(Actor actor, ActorState state, uint key, ApplyFlag flags)
|
private void RevertToAutomation(Actor actor, ActorState state, uint key, ApplyFlag flags)
|
||||||
{
|
{
|
||||||
var source = (flags & ApplyFlag.Once) != 0 ? StateSource.IpcManual : StateSource.IpcFixed;
|
var source = (flags & ApplyFlag.Once) != 0 ? StateSource.IpcManual : StateSource.IpcFixed;
|
||||||
_autoDesigns.ReapplyAutomation(actor, state.Identifier, state, true, out var forcedRedraw);
|
_autoDesigns.ReapplyAutomation(actor, state.Identifier, state, true, false, out var forcedRedraw);
|
||||||
_stateManager.ReapplyAutomationState(actor, state, forcedRedraw, true, source);
|
_stateManager.ReapplyAutomationState(actor, state, forcedRedraw, true, source);
|
||||||
ApiHelpers.Lock(state, key, flags);
|
ApiHelpers.Lock(state, key, flags);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -225,7 +225,7 @@ public sealed class AutoDesignApplier : IDisposable
|
||||||
_state.ReapplyState(actor, forcedRedraw, StateSource.Fixed);
|
_state.ReapplyState(actor, forcedRedraw, StateSource.Fixed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ReapplyAutomation(Actor actor, ActorIdentifier identifier, ActorState state, bool reset, out bool forcedRedraw)
|
public void ReapplyAutomation(Actor actor, ActorIdentifier identifier, ActorState state, bool reset, bool forcedNew, out bool forcedRedraw)
|
||||||
{
|
{
|
||||||
forcedRedraw = false;
|
forcedRedraw = false;
|
||||||
if (!_config.EnableAutoDesigns)
|
if (!_config.EnableAutoDesigns)
|
||||||
|
|
@ -235,7 +235,7 @@ public sealed class AutoDesignApplier : IDisposable
|
||||||
_state.ResetState(state, StateSource.Game);
|
_state.ResetState(state, StateSource.Game);
|
||||||
|
|
||||||
if (GetPlayerSet(identifier, out var set))
|
if (GetPlayerSet(identifier, out var set))
|
||||||
Reduce(actor, state, set, false, false, false, out forcedRedraw);
|
Reduce(actor, state, set, false, false, forcedNew, out forcedRedraw);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Reduce(Actor actor, ActorIdentifier identifier, [NotNullWhen(true)] out ActorState? state)
|
public bool Reduce(Actor actor, ActorIdentifier identifier, [NotNullWhen(true)] out ActorState? state)
|
||||||
|
|
|
||||||
|
|
@ -251,7 +251,7 @@ public sealed class DesignQuickBar : Window, IDisposable
|
||||||
|
|
||||||
foreach (var actor in data.Objects)
|
foreach (var actor in data.Objects)
|
||||||
{
|
{
|
||||||
_autoDesignApplier.ReapplyAutomation(actor, id, state!, true, out var forcedRedraw);
|
_autoDesignApplier.ReapplyAutomation(actor, id, state!, true, false, out var forcedRedraw);
|
||||||
_stateManager.ReapplyAutomationState(actor, forcedRedraw, true, StateSource.Manual);
|
_stateManager.ReapplyAutomationState(actor, forcedRedraw, true, StateSource.Manual);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -291,7 +291,7 @@ public sealed class DesignQuickBar : Window, IDisposable
|
||||||
|
|
||||||
foreach (var actor in data.Objects)
|
foreach (var actor in data.Objects)
|
||||||
{
|
{
|
||||||
_autoDesignApplier.ReapplyAutomation(actor, id, state!, false, out var forcedRedraw);
|
_autoDesignApplier.ReapplyAutomation(actor, id, state!, false, false, out var forcedRedraw);
|
||||||
_stateManager.ReapplyAutomationState(actor, forcedRedraw, false, StateSource.Manual);
|
_stateManager.ReapplyAutomationState(actor, forcedRedraw, false, StateSource.Manual);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ public class GlamourerChangelog
|
||||||
Add1_3_3_0(Changelog);
|
Add1_3_3_0(Changelog);
|
||||||
Add1_3_4_0(Changelog);
|
Add1_3_4_0(Changelog);
|
||||||
Add1_3_5_0(Changelog);
|
Add1_3_5_0(Changelog);
|
||||||
|
Add1_3_6_0(Changelog);
|
||||||
}
|
}
|
||||||
|
|
||||||
private (int, ChangeLogDisplayType) ConfigData()
|
private (int, ChangeLogDisplayType) ConfigData()
|
||||||
|
|
@ -59,6 +60,22 @@ public class GlamourerChangelog
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void Add1_3_6_0(Changelog log)
|
||||||
|
=> log.NextVersion("Version 1.3.6.0")
|
||||||
|
.RegisterHighlight("Added some new multi design selection functionality to change design settings of many designs at once.")
|
||||||
|
.RegisterEntry("Also added the number of selected designs and folders to the multi design selection display.", 1)
|
||||||
|
.RegisterEntry("Glamourer will now use temporary settings when saving mod associations, if they exist in Penumbra.")
|
||||||
|
.RegisterEntry("Actually added the checkbox to reset all temporary settings to Automation Sets (functionality was there, just not exposed to the UI...).")
|
||||||
|
.RegisterEntry("Adapted the behavior for identified copies of characters that have a different state than the character itself to deal with the associated Penumbra changes.")
|
||||||
|
.RegisterEntry("Added '/glamour resetdesign' as a command, that re-applies automation but resets randomly chosen designs (Thanks Diorik).")
|
||||||
|
.RegisterEntry("All existing facepaints should now be accepted in designs, including NPC facepaints.")
|
||||||
|
.RegisterEntry("Overwriting a design with your characters current state will now discard any prior advanced dyes and only add those from the current state.")
|
||||||
|
.RegisterEntry("Fixed an issue with racial mount and accessory scaling when changing zones on a changed race.")
|
||||||
|
.RegisterEntry("Fixed issues with the detection of gear set changes in certain circumstances (Thanks Cordelia).")
|
||||||
|
.RegisterEntry("Fixed an issue with the Force to Inherit checkbox in mod associations.")
|
||||||
|
.RegisterEntry("Added a new IPC event that fires only when Glamourer finalizes its current changes to a character (for/from Cordelia).")
|
||||||
|
.RegisterEntry("Added new IPC to set a meta flag on actors. (for/from Cordelia).");
|
||||||
|
|
||||||
private static void Add1_3_5_0(Changelog log)
|
private static void Add1_3_5_0(Changelog log)
|
||||||
=> log.NextVersion("Version 1.3.5.0")
|
=> log.NextVersion("Version 1.3.5.0")
|
||||||
.RegisterHighlight("Added the usage of the new Temporary Mod Setting functionality from Penumbra to apply mod associations. This is on by default but can be turned back to permanent changes in the settings.")
|
.RegisterHighlight("Added the usage of the new Temporary Mod Setting functionality from Penumbra to apply mod associations. This is on by default but can be turned back to permanent changes in the settings.")
|
||||||
|
|
|
||||||
|
|
@ -393,7 +393,7 @@ public class ActorPanel
|
||||||
"Reapply the current automation state for the character on top of its current state..",
|
"Reapply the current automation state for the character on top of its current state..",
|
||||||
!_config.EnableAutoDesigns || _state!.IsLocked))
|
!_config.EnableAutoDesigns || _state!.IsLocked))
|
||||||
{
|
{
|
||||||
_autoDesignApplier.ReapplyAutomation(_actor, _identifier, _state!, false, out var forcedRedraw);
|
_autoDesignApplier.ReapplyAutomation(_actor, _identifier, _state!, false, false, out var forcedRedraw);
|
||||||
_stateManager.ReapplyAutomationState(_actor, forcedRedraw, false, StateSource.Manual);
|
_stateManager.ReapplyAutomationState(_actor, forcedRedraw, false, StateSource.Manual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -402,7 +402,7 @@ public class ActorPanel
|
||||||
"Try to revert the character to the state it would have using automated designs.",
|
"Try to revert the character to the state it would have using automated designs.",
|
||||||
!_config.EnableAutoDesigns || _state!.IsLocked))
|
!_config.EnableAutoDesigns || _state!.IsLocked))
|
||||||
{
|
{
|
||||||
_autoDesignApplier.ReapplyAutomation(_actor, _identifier, _state!, true, out var forcedRedraw);
|
_autoDesignApplier.ReapplyAutomation(_actor, _identifier, _state!, true, false, out var forcedRedraw);
|
||||||
_stateManager.ReapplyAutomationState(_actor, forcedRedraw, true, StateSource.Manual);
|
_stateManager.ReapplyAutomationState(_actor, forcedRedraw, true, StateSource.Manual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -636,6 +636,7 @@ public class DesignPanel
|
||||||
|
|
||||||
var design = panel._converter.Convert(state, ApplicationRules.FromModifiers(state))
|
var design = panel._converter.Convert(state, ApplicationRules.FromModifiers(state))
|
||||||
?? throw new Exception("The clipboard did not contain valid data.");
|
?? throw new Exception("The clipboard did not contain valid data.");
|
||||||
|
panel._selector.Selected!.GetMaterialDataRef().Clear();
|
||||||
panel._manager.ApplyDesign(panel._selector.Selected!, design);
|
panel._manager.ApplyDesign(panel._selector.Selected!, design);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
|
||||||
|
|
@ -121,8 +121,9 @@ public class CommandService : IDisposable, IApiService
|
||||||
"apply" => Apply(argument),
|
"apply" => Apply(argument),
|
||||||
"reapply" => ReapplyState(argument),
|
"reapply" => ReapplyState(argument),
|
||||||
"revert" => Revert(argument),
|
"revert" => Revert(argument),
|
||||||
"reapplyautomation" => ReapplyAutomation(argument, "reapplyautomation", false),
|
"reapplyautomation" => ReapplyAutomation(argument, "reapplyautomation", false, false),
|
||||||
"reverttoautomation" => ReapplyAutomation(argument, "reverttoautomation", true),
|
"reverttoautomation" => ReapplyAutomation(argument, "reverttoautomation", true, false),
|
||||||
|
"resetdesign" => ReapplyAutomation(argument, "resetdesign", false, true),
|
||||||
"automation" => SetAutomation(argument),
|
"automation" => SetAutomation(argument),
|
||||||
"copy" => CopyState(argument),
|
"copy" => CopyState(argument),
|
||||||
"save" => SaveState(argument),
|
"save" => SaveState(argument),
|
||||||
|
|
@ -151,6 +152,8 @@ public class CommandService : IDisposable, IApiService
|
||||||
"Reapplies the current automation state on top of the characters current state.. Use without arguments for help.").BuiltString);
|
"Reapplies the current automation state on top of the characters current state.. Use without arguments for help.").BuiltString);
|
||||||
_chat.Print(new SeStringBuilder().AddCommand("reverttoautomation",
|
_chat.Print(new SeStringBuilder().AddCommand("reverttoautomation",
|
||||||
"Reverts a given character to its supposed state using automated designs. Use without arguments for help.").BuiltString);
|
"Reverts a given character to its supposed state using automated designs. Use without arguments for help.").BuiltString);
|
||||||
|
_chat.Print(new SeStringBuilder().AddCommand("resetdesign",
|
||||||
|
"Reapplies the current automation and resets the random design. Use without arguments for help.").BuiltString);
|
||||||
_chat.Print(new SeStringBuilder()
|
_chat.Print(new SeStringBuilder()
|
||||||
.AddCommand("copy", "Copy the current state of a character to clipboard. Use without arguments for help.").BuiltString);
|
.AddCommand("copy", "Copy the current state of a character to clipboard. Use without arguments for help.").BuiltString);
|
||||||
_chat.Print(new SeStringBuilder()
|
_chat.Print(new SeStringBuilder()
|
||||||
|
|
@ -306,7 +309,7 @@ public class CommandService : IDisposable, IApiService
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ReapplyAutomation(string argument, string command, bool revert)
|
private bool ReapplyAutomation(string argument, string command, bool revert, bool forcedNew)
|
||||||
{
|
{
|
||||||
if (argument.Length == 0)
|
if (argument.Length == 0)
|
||||||
{
|
{
|
||||||
|
|
@ -328,7 +331,7 @@ public class CommandService : IDisposable, IApiService
|
||||||
{
|
{
|
||||||
if (_stateManager.GetOrCreate(identifier, actor, out var state))
|
if (_stateManager.GetOrCreate(identifier, actor, out var state))
|
||||||
{
|
{
|
||||||
_autoDesignApplier.ReapplyAutomation(actor, identifier, state, revert, out var forcedRedraw);
|
_autoDesignApplier.ReapplyAutomation(actor, identifier, state, revert, forcedNew, out var forcedRedraw);
|
||||||
_stateManager.ReapplyAutomationState(actor, forcedRedraw, revert, StateSource.Manual);
|
_stateManager.ReapplyAutomationState(actor, forcedRedraw, revert, StateSource.Manual);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 35b25bef92e9b0be96c44c150a3df89d848d2658
|
Subproject commit c67809057fac73a0fd407e3ad567f0aa6bc0bc37
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 0bc2b0f66eee1a02c9575b2bb30f27ce166f8632
|
Subproject commit 4eb7c118cdac5873afb97cb04719602f061f03b7
|
||||||
10
repo.json
10
repo.json
|
|
@ -17,8 +17,8 @@
|
||||||
"Character"
|
"Character"
|
||||||
],
|
],
|
||||||
"InternalName": "Glamourer",
|
"InternalName": "Glamourer",
|
||||||
"AssemblyVersion": "1.3.5.1",
|
"AssemblyVersion": "1.3.6.0",
|
||||||
"TestingAssemblyVersion": "1.3.5.5",
|
"TestingAssemblyVersion": "1.3.6.0",
|
||||||
"RepoUrl": "https://github.com/Ottermandias/Glamourer",
|
"RepoUrl": "https://github.com/Ottermandias/Glamourer",
|
||||||
"ApplicableVersion": "any",
|
"ApplicableVersion": "any",
|
||||||
"DalamudApiLevel": 11,
|
"DalamudApiLevel": 11,
|
||||||
|
|
@ -27,9 +27,9 @@
|
||||||
"IsTestingExclusive": "False",
|
"IsTestingExclusive": "False",
|
||||||
"DownloadCount": 1,
|
"DownloadCount": 1,
|
||||||
"LastUpdate": 1618608322,
|
"LastUpdate": 1618608322,
|
||||||
"DownloadLinkInstall": "https://github.com/Ottermandias/Glamourer/releases/download/1.3.5.1/Glamourer.zip",
|
"DownloadLinkInstall": "https://github.com/Ottermandias/Glamourer/releases/download/1.3.6.0/Glamourer.zip",
|
||||||
"DownloadLinkUpdate": "https://github.com/Ottermandias/Glamourer/releases/download/1.3.5.1/Glamourer.zip",
|
"DownloadLinkUpdate": "https://github.com/Ottermandias/Glamourer/releases/download/1.3.6.0/Glamourer.zip",
|
||||||
"DownloadLinkTesting": "https://github.com/Ottermandias/Glamourer/releases/download/testing_1.3.5.5/Glamourer.zip",
|
"DownloadLinkTesting": "https://github.com/Ottermandias/Glamourer/releases/download/1.3.6.0/Glamourer.zip",
|
||||||
"IconUrl": "https://raw.githubusercontent.com/Ottermandias/Glamourer/main/images/icon.png"
|
"IconUrl": "https://raw.githubusercontent.com/Ottermandias/Glamourer/main/images/icon.png"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue