PKHeX/PKHeX.Core/Editing/Program/Settings/SaveLanguageSettings.cs
Kurt 93a381bfde Startup: load config before Main ctor
Allows specifying Dark mode in settings now.
Extracts reusable settings objects to PKHeX.Core (drawing/GUI stuff kept in WinForms).
Updating settings now refreshes backup paths/mgdb
2025-08-13 20:59:46 -05:00

45 lines
1.9 KiB
C#

using System.ComponentModel;
namespace PKHeX.Core;
public sealed class SaveLanguageSettings
{
[LocalizedDescription("Gen1: If unable to detect a language or version for a save file, use these instead.")]
public LangVersion OverrideGen1 { get; set; } = new();
[LocalizedDescription("Gen2: If unable to detect a language or version for a save file, use these instead.")]
public LangVersion OverrideGen2 { get; set; } = new();
[LocalizedDescription("Gen3 R/S: If unable to detect a language or version for a save file, use these instead.")]
public LangVersion OverrideGen3RS { get; set; } = new();
[LocalizedDescription("Gen3 FR/LG: If unable to detect a language or version for a save file, use these instead.")]
public LangVersion OverrideGen3FRLG { get; set; } = new();
[TypeConverter(typeof(ExpandableObjectConverter))]
public sealed record LangVersion
{
public LanguageID Language { get; set; } = LanguageID.English;
public GameVersion Version { get; set; }
}
public void Apply()
{
SaveLanguage.OverrideLanguageGen1 = OverrideGen1.Language;
if (OverrideGen1.Version.IsGen1())
SaveLanguage.OverrideVersionGen1 = OverrideGen1.Version;
SaveLanguage.OverrideLanguageGen2 = OverrideGen2.Language;
if (OverrideGen2.Version is GameVersion.GD or GameVersion.SI)
SaveLanguage.OverrideVersionGen2 = OverrideGen2.Version;
SaveLanguage.OverrideLanguageGen3RS = OverrideGen3RS.Language;
if (OverrideGen3RS.Version is GameVersion.R or GameVersion.S)
SaveLanguage.OverrideVersionGen3RS = OverrideGen3RS.Version;
SaveLanguage.OverrideLanguageGen3FRLG = OverrideGen3FRLG.Language;
if (OverrideGen3FRLG.Version is GameVersion.FR or GameVersion.LG)
SaveLanguage.OverrideVersionGen3FRLG = OverrideGen3FRLG.Version;
}
}