private void DrawBuildConfigSettings(BuildConfig.BuildConfig buildConfig, SerializedProperty settingsSerializedProperty, float currentViewWidth)
        {
            List <Type> settingsToAdd = new List <Type>();

            foreach (var settingsType in BuildSettingsTypes)
            {
                BuildConfigSettings settings = buildConfig.GetSettings(settingsType, out bool isInherited);

                if (settings == null)
                {
                    settingsToAdd.Add(settingsType);
                }
                else
                {
                    // Checking if we should skip this
                    if (isInherited && buildConfig.ShowInherited == false)
                    {
                        continue;
                    }

                    SerializedProperty currentSettings = null;

                    for (int i = 0; i < settingsSerializedProperty.arraySize; i++)
                    {
                        var s = settingsSerializedProperty.GetArrayElementAtIndex(i);

                        if (s.managedReferenceFullTypename.EndsWith(settingsType.FullName))
                        {
                            currentSettings = s;
                        }
                    }

                    this.DrawBuildConfigSettings(buildConfig, settings, currentSettings, isInherited, currentViewWidth, out bool didDeleteSettings);

                    if (didDeleteSettings)
                    {
                        break;
                    }
                }
            }

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.LabelField("Settings");
            this.DrawSettingsButtons(buildConfig, currentViewWidth, settingsToAdd);
        }
        public override void GetRuntimeConfigSettings(BuildConfig.BuildConfig buildConfig, Dictionary <string, string> runtimeConfigSettings)
        {
            var settings = buildConfig.GetSettings <BootloaderSettings>();

            if (settings == null)
            {
                return;
            }

            // Bootloader
            runtimeConfigSettings.Add(Bootloader.BootloaderLocation, ((int)settings.bootloaderLocation).ToString());
            runtimeConfigSettings.Add(Bootloader.BootloaderPath, settings.bootloaderPath);

            // Managers
            runtimeConfigSettings.Add(Bootloader.BootloaderManagersLocation, ((int)settings.managersLocation).ToString());
            runtimeConfigSettings.Add(Bootloader.BootloaderManagersPath, settings.managersPath);

            // Reboot
            runtimeConfigSettings.Add(Bootloader.BootloaderRebootSceneName, settings.rebootSceneName);

            // Ignoring
            runtimeConfigSettings.Add(Bootloader.BootloaderIgnoreSceneNames, settings.scenesToIgnore);
        }