/// <summary> /// Get the themes based on the current dimesionIndex /// </summary> protected void FilterThemesByDimensions() { runningThemesList = new List <InteractableThemeBase>(); for (int i = 0; i < runningProfileSettings.Count; i++) { ProfileSettings settings = runningProfileSettings[i]; ThemeSettings themeSettings = settings.ThemeSettings[dimensionIndex]; for (int j = 0; j < themeSettings.Settings.Count; j++) { runningThemesList.Add(themeSettings.Settings[j].Theme); } } }
/// <summary> /// Creates the list of theme instances based on all the theme settings /// </summary> protected virtual void SetupThemes() { runningThemesList = new List <InteractableThemeBase>(); runningProfileSettings = new List <ProfileSettings>(); for (int i = 0; i < Profiles.Count; i++) { ProfileSettings profileSettings = new ProfileSettings(); List <ThemeSettings> themeSettingsList = new List <ThemeSettings>(); for (int j = 0; j < Profiles[i].Themes.Count; j++) { Theme theme = Profiles[i].Themes[j]; ThemeSettings themeSettings = new ThemeSettings(); if (Profiles[i].Target != null && theme != null) { List <InteractableThemePropertySettings> tempSettings = new List <InteractableThemePropertySettings>(); for (int n = 0; n < theme.Settings.Count; n++) { InteractableThemePropertySettings settings = theme.Settings[n]; settings.Theme = InteractableProfileItem.GetTheme(settings, Profiles[i].Target); // add themes to theme list based on dimension if (j == dimensionIndex) { runningThemesList.Add(settings.Theme); } tempSettings.Add(settings); } themeSettings.Settings = tempSettings; themeSettingsList.Add(themeSettings); } } profileSettings.ThemeSettings = themeSettingsList; runningProfileSettings.Add(profileSettings); } }