AcManager.Tools.Starters.AcsStarterFactory.CreateFromSettings C# (CSharp) Method

CreateFromSettings() private method

private CreateFromSettings ( ) : IAcsStarter
return IAcsStarter
        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));
        }