/// <summary> /// Handler for UMM's OnGUI event. Displays the language chooser and /// every tweak's settings GUI. /// </summary> /// <param name="modEntry">UMM's mod entry for AdofaiTweaks.</param> private static void OnGUI(UnityModManager.ModEntry modEntry) { // Set some default GUI settings for better layouts if (GlobalSettings.Language == LanguageEnum.KOREAN) { GUI.skin.button.font = TweakAssets.KoreanNormalFont; GUI.skin.label.font = TweakAssets.KoreanNormalFont; GUI.skin.textArea.font = TweakAssets.KoreanNormalFont; GUI.skin.textField.font = TweakAssets.KoreanNormalFont; GUI.skin.toggle.font = TweakAssets.KoreanNormalFont; GUI.skin.button.fontSize = 15; GUI.skin.label.fontSize = 15; GUI.skin.textArea.fontSize = 15; GUI.skin.textField.fontSize = 15; GUI.skin.toggle.fontSize = 15; } GUI.skin.toggle = new GUIStyle(GUI.skin.toggle) { margin = new RectOffset(0, 4, 6, 6), }; GUI.skin.label.wordWrap = false; GUILayout.Space(4); // Language chooser GUILayout.BeginHorizontal(); GUILayout.Space(4); GUILayout.Label( TweakStrings.Get(TranslationKeys.Global.GLOBAL_LANGUAGE), new GUIStyle(GUI.skin.label) { fontStyle = GlobalSettings.Language == LanguageEnum.KOREAN ? FontStyle.Normal : FontStyle.Bold, font = GlobalSettings.Language == LanguageEnum.KOREAN ? TweakAssets.KoreanBoldFont : null, }); foreach (LanguageEnum language in Enum.GetValues(typeof(LanguageEnum))) { string langString = TweakStrings.GetForLanguage(TranslationKeys.Global.LANGUAGE_NAME, language); // Set special styles for selected and Korean language GUIStyle style = new GUIStyle(GUI.skin.button); if (language == GlobalSettings.Language) { if (language == LanguageEnum.KOREAN) { style.font = TweakAssets.KoreanBoldFont; style.fontSize = 15; } else { style.fontStyle = FontStyle.Bold; } } else if (language == LanguageEnum.KOREAN) { style.font = TweakAssets.KoreanNormalFont; style.fontSize = 15; } bool click = GUILayout.Button(langString, style); if (click) { GlobalSettings.Language = language; foreach (TweakRunner runner in tweakRunners) { runner.OnLanguageChange(); } } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); // Show each tweak's GUI GUILayout.Space(4); foreach (TweakRunner runner in tweakRunners) { runner.OnGUI(); } // Reset GUI settings to defaults GUI.skin.button.font = null; GUI.skin.label.font = null; GUI.skin.textArea.font = null; GUI.skin.textField.font = null; GUI.skin.toggle.font = null; GUI.skin.button.fontSize = 0; GUI.skin.label.fontSize = 0; GUI.skin.textArea.fontSize = 0; GUI.skin.textField.fontSize = 0; GUI.skin.toggle.fontSize = 0; }