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.StarterPlusType) {
return new StarterPlus();
}
if (type == SettingsHolder.DriveSettings.SseStarterType) {
return new SseStarter();
}
if (type == SettingsHolder.DriveSettings.TrickyStarterType) {
return new TrickyStarter(AcRootDirectory.Instance.Value) {
Use32Version = SettingsHolder.Drive.Use32BitVersion
};
}
throw new ArgumentOutOfRangeException(nameof(SettingsHolder.Drive.SelectedStarterType));
}