private static IAcsStarter CreateFromSettings()
{
var type = SettingsHolder.Drive.SelectedStarterType;
if (type == SettingsHolder.DriveSettings.OfficialStarterType)
{
return(new OfficialStarter());
}
if (type == SettingsHolder.DriveSettings.UiModuleStarterType)
{
if (SettingsHolder.Drive.StarterFallbackIfNotAvailable && !ModuleStarter.IsAvailable())
{
return(new OfficialStarter());
}
return(new ModuleStarter());
}
if (type == SettingsHolder.DriveSettings.NaiveStarterType)
{
return(new NaiveStarter());
}
if (type == SettingsHolder.DriveSettings.SseStarterType)
{
return(new SseStarter());
}
if (type == SettingsHolder.DriveSettings.SidePassageStarterType)
{
return(new SidePassageStarter());
}
if (type == SettingsHolder.DriveSettings.SteamStarterType)
{
return(new SteamStarter());
}
if (type == SettingsHolder.DriveSettings.AppIdStarterType)
{
return(new AppIdStarter());
}
if (type == SettingsHolder.DriveSettings.DeveloperStarterType)
{
return(new DeveloperStarter());
}
if (type == SettingsHolder.DriveSettings.TrickyStarterType)
{
return(new TrickyStarter(AcRootDirectory.Instance.Value)
{
Use32BitVersion = SettingsHolder.Drive.Use32BitVersion
});
}
throw new ArgumentOutOfRangeException(nameof(SettingsHolder.Drive.SelectedStarterType));
}