private void OnMenuLanguageSettingRefreshAvailableLanguages(On.UnityEngine.UI.MenuLanguageSetting.orig_RefreshAvailableLanguages orig, UnityEngine.UI.MenuLanguageSetting self) { orig(self); LanguageCode[] customLangs; if (GameManager.instance.gameConfig.hideLanguageOption) { customLangs = (Enum.GetValues(typeof(LanguageCode)) as LanguageCode[]); } else { customLangs = (Enum.GetValues(typeof(LanguageCode)) as LanguageCode[]); } SupportedLanguages[] langs = (SupportedLanguages[])self.GetType().GetField("langs", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(self); List <SupportedLanguages> finalLangs = new List <SupportedLanguages>(); foreach (var l in customLangs) { if (File.Exists($"{DIR}/{l}/General.txt") || (langs.Contains((SupportedLanguages)l))) { finalLangs.Add((SupportedLanguages)l); } } self.GetType().GetField("langs", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(self, finalLangs.ToArray()); //self.optionList = new string[finalLangs.Count]; //for (int i = 0; i < finalLangs.Count; i++) //{ // self.optionList[i] = finalLangs[i].ToString(); //} }
private void OnMenuLanguageSettingPushUpdateOptionList(On.UnityEngine.UI.MenuLanguageSetting.orig_PushUpdateOptionList orig, UnityEngine.UI.MenuLanguageSetting self) { orig(self); SupportedLanguages[] langs = (SupportedLanguages[])self.GetType().GetField("langs", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(self); string[] array = new string[langs.Length]; for (int i = 0; i < langs.Length; i++) { array[i] = ((LanguageCode)langs[i]).ToString(); } self.SetOptionList(array); }