private void displayForLanguage(Language language) { LanguageWorldData languageWorldData = this.languageWorldData[language]; if (languageWorldData != null) { queryForWorlds(languageWorldData); displayButtonsForLanguage(languageWorldData.Language); loadButtonsForLanguage(languageWorldData.Language); } }
private void queryForWorlds(LanguageWorldData languageWorldData) { if (!languageWorldData.WorldsQueried) { string room = Service.Get <GameStateController>().SceneConfig.DefaultZoneName; if (dataEntityCollection.TryGetComponent <PresenceData>(dataEntityCollection.LocalPlayerHandle, out var component) && !string.IsNullOrEmpty(component.Room)) { room = component.Room; } Service.Get <INetworkServicesManager>().WorldService.GetWorldsWithRoomPopulation(room, languageWorldData.Language.ToString()); languageWorldData.WorldsQueried = true; } }
private void loadButtonsForLanguage(Language language) { if (!(buttonPrefab != null) || !this.languageWorldData.ContainsKey(language) || this.languageWorldData[language].ButtonsLoaded) { return; } HashSet <WorldDefinition> worlds = Service.Get <ZoneTransitionService>().Worlds; foreach (WorldDefinition item in worlds) { if (item.Language == language && !item.Igloo) { loadWorldButton(item, language); } } LanguageWorldData languageWorldData = this.languageWorldData[language]; languageWorldData.ButtonsLoaded = true; }
private void initializeLanguageDropdown() { this.languageWorldData.Clear(); Localizer localizer = Service.Get <Localizer>(); List <string> list = new List <string>(); HashSet <WorldDefinition> worlds = Service.Get <ZoneTransitionService>().Worlds; foreach (WorldDefinition item in worlds) { if (!this.languageWorldData.ContainsKey(item.Language) && !item.Igloo) { this.languageWorldData.Add(item.Language, new LanguageWorldData(list.Count, item.Language)); list.Add(localizer.GetTokenTranslation(LocalizationLanguage.GetLanguageToken(item.Language))); } } LanguageDropdown.ClearOptions(); LanguageDropdown.AddOptions(list); Language language = LocalizationLanguage.GetLanguage(); LanguageWorldData languageWorldData = this.languageWorldData[language]; LanguageDropdown.value = languageWorldData.DropdownIndex; onLanguageFilterChanged(languageWorldData.DropdownIndex); }