mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 18:27:24 +01:00
Fix another issue with temporary mod settings.
This commit is contained in:
parent
3687c99ee6
commit
415e15f3b1
3 changed files with 12 additions and 6 deletions
|
|
@ -20,17 +20,23 @@ public sealed class TemporaryModSettings : ModSettings
|
||||||
public TemporaryModSettings()
|
public TemporaryModSettings()
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
public TemporaryModSettings(ModSettings? clone, string source, int key = 0)
|
public TemporaryModSettings(Mod mod, ModSettings? clone, string source, int key = 0)
|
||||||
{
|
{
|
||||||
Source = source;
|
Source = source;
|
||||||
Lock = key;
|
Lock = key;
|
||||||
ForceInherit = clone == null;
|
ForceInherit = clone == null;
|
||||||
if (clone != null)
|
if (clone != null && clone != Empty)
|
||||||
{
|
{
|
||||||
Enabled = clone.Enabled;
|
Enabled = clone.Enabled;
|
||||||
Priority = clone.Priority;
|
Priority = clone.Priority;
|
||||||
Settings = clone.Settings.Clone();
|
Settings = clone.Settings.Clone();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Enabled = false;
|
||||||
|
Priority = ModPriority.Default;
|
||||||
|
Settings = SettingList.Default(mod);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -277,19 +277,19 @@ public sealed class ModFileSystemSelector : FileSystemSelector<Mod, ModFileSyste
|
||||||
var actual = _collectionManager.Active.Current.GetActualSettings(mod.Value.Index).Settings;
|
var actual = _collectionManager.Active.Current.GetActualSettings(mod.Value.Index).Settings;
|
||||||
if (actual?.Enabled is true && ImUtf8.MenuItem("Disable Temporarily"u8))
|
if (actual?.Enabled is true && ImUtf8.MenuItem("Disable Temporarily"u8))
|
||||||
_collectionManager.Editor.SetTemporarySettings(_collectionManager.Active.Current, mod.Value,
|
_collectionManager.Editor.SetTemporarySettings(_collectionManager.Active.Current, mod.Value,
|
||||||
new TemporaryModSettings(actual, source) { Enabled = false });
|
new TemporaryModSettings(mod.Value, actual, source) { Enabled = false });
|
||||||
|
|
||||||
if (actual is not { Enabled: true } && ImUtf8.MenuItem("Enable Temporarily"u8))
|
if (actual is not { Enabled: true } && ImUtf8.MenuItem("Enable Temporarily"u8))
|
||||||
{
|
{
|
||||||
var newSettings = actual is null
|
var newSettings = actual is null
|
||||||
? TemporaryModSettings.DefaultSettings(mod.Value, source, true)
|
? TemporaryModSettings.DefaultSettings(mod.Value, source, true)
|
||||||
: new TemporaryModSettings(actual, source) { Enabled = true };
|
: new TemporaryModSettings(mod.Value, actual, source) { Enabled = true };
|
||||||
_collectionManager.Editor.SetTemporarySettings(_collectionManager.Active.Current, mod.Value, newSettings);
|
_collectionManager.Editor.SetTemporarySettings(_collectionManager.Active.Current, mod.Value, newSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tempSettings is null && ImUtf8.MenuItem("Turn Temporary"u8))
|
if (tempSettings is null && ImUtf8.MenuItem("Turn Temporary"u8))
|
||||||
_collectionManager.Editor.SetTemporarySettings(_collectionManager.Active.Current, mod.Value,
|
_collectionManager.Editor.SetTemporarySettings(_collectionManager.Active.Current, mod.Value,
|
||||||
new TemporaryModSettings(actual, source));
|
new TemporaryModSettings(mod.Value, actual, source));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetDefaultImportFolder(ModFileSystem.Folder folder)
|
private void SetDefaultImportFolder(ModFileSystem.Folder folder)
|
||||||
|
|
|
||||||
|
|
@ -252,7 +252,7 @@ public class ModPanelSettingsTab(
|
||||||
var actual = collectionManager.Active.Current.GetActualSettings(selection.Mod!.Index).Settings;
|
var actual = collectionManager.Active.Current.GetActualSettings(selection.Mod!.Index).Settings;
|
||||||
if (ImUtf8.ButtonEx("Turn Temporary"u8, "Copy the current settings over to temporary settings to experiment with them."u8))
|
if (ImUtf8.ButtonEx("Turn Temporary"u8, "Copy the current settings over to temporary settings to experiment with them."u8))
|
||||||
collectionManager.Editor.SetTemporarySettings(collectionManager.Active.Current, selection.Mod!,
|
collectionManager.Editor.SetTemporarySettings(collectionManager.Active.Current, selection.Mod!,
|
||||||
new TemporaryModSettings(actual, "yourself"));
|
new TemporaryModSettings(selection.Mod!, actual, "yourself"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue