public static string ET(string text) { if (BannerlordConfig.Language != "English") { return(text); } StringBuilder stringBuilder1 = new StringBuilder(); StringBuilder stringBuilder2 = new StringBuilder(); if (text == null || text.Length <= 2 || (text[0] != '{' || text[1] != '=')) { return(text); } for (int index1 = 2; index1 < text.Length; ++index1) { if (text[index1] != '}') { stringBuilder1.Append(text[index1]); } else { for (int index2 = index1 + 1; index2 < text.Length; ++index2) { stringBuilder2.Append(text[index2]); } if (!(stringBuilder1.ToString() == "*") && !(stringBuilder1.ToString() == "!")) { string input = LocalizedTextManager.GetTranslatedText(BannerlordConfig.Language, stringBuilder1.ToString()); if (input != null) { string pattern = "{%.+?}"; foreach (Match match in Regex.Matches(input, pattern)) { input = input.Replace(match.Value, ""); } return(input); } } return(stringBuilder2.ToString()); } } return(stringBuilder2.ToString()); }
public void SetLocalizedText() { Text myTextObject = GetComponent <Text>(); LocalizedTextManager localizedTextManager = FindObjectOfType <LocalizedTextManager>(); myTextObject.text = localizedTextManager.GetLocalizedString(stringName); if (localizedTextManager.currentLanguage == LocalizedTextManager.Language.English) { myTextObject.resizeTextForBestFit = false; } else if (localizedTextManager.currentLanguage == LocalizedTextManager.Language.Arabic || alwaysResizeToBestFit) { myTextObject.resizeTextForBestFit = true; } else { myTextObject.resizeTextForBestFit = false; } }
public static int GetOptionsLimit(TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType optionType) { switch (optionType) { case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.Language: return(LocalizedTextManager.GetLanguageIds(NativeConfig.IsDevelopmentMode).Count); case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.ControlBlockDirection: return(3); case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.ControlAttackDirection: return(3); case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.NumberOfCorpses: return(6); case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.BattleSize: return(6); case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.TurnCameraWithHorseInFirstPerson: return(4); case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.ReportCasualtiesType: return(3); case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.CrosshairType: return(2); case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.OrderType: return(2); case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.AutoTrackAttackedSettlements: return(3); default: return(0); } }
public static void SetConfig(ManagedOptions.ManagedOptionsType type, float value) { switch (type) { case ManagedOptions.ManagedOptionsType.Language: List <string> languageIds = LocalizedTextManager.GetLanguageIds(NativeConfig.IsDevelopmentMode); BannerlordConfig.Language = (double)value < 0.0 || (double)value >= (double)languageIds.Count ? languageIds[0] : languageIds[(int)value]; break; case ManagedOptions.ManagedOptionsType.ControlBlockDirection: BannerlordConfig.DefendDirectionControl = (int)value; break; case ManagedOptions.ManagedOptionsType.ControlAttackDirection: BannerlordConfig.AttackDirectionControl = (int)value; break; case ManagedOptions.ManagedOptionsType.NumberOfCorpses: BannerlordConfig.NumberOfCorpses = (int)value; break; case ManagedOptions.ManagedOptionsType.BattleSize: BannerlordConfig.BattleSize = (int)value; break; case ManagedOptions.ManagedOptionsType.TurnCameraWithHorseInFirstPerson: BannerlordConfig.TurnCameraWithHorseInFirstPerson = (int)value; break; case ManagedOptions.ManagedOptionsType.ShowBlood: BannerlordConfig.ShowBlood = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.ShowAttackDirection: BannerlordConfig.DisplayAttackDirection = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.ShowTargetingReticle: BannerlordConfig.DisplayTargetingReticule = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.FriendlyTroopsBannerOpacity: BannerlordConfig.FriendlyTroopsBannerOpacity = value; break; case ManagedOptions.ManagedOptionsType.ReportDamage: BannerlordConfig.ReportDamage = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.ReportCasualtiesType: BannerlordConfig.ReportCasualtiesType = (int)value; break; case ManagedOptions.ManagedOptionsType.ReportExperience: BannerlordConfig.ReportExperience = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.ReportPersonalDamage: BannerlordConfig.ReportPersonalDamage = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.FirstPersonFov: BannerlordConfig.FirstPersonFov = value; break; case ManagedOptions.ManagedOptionsType.CombatCameraDistance: BannerlordConfig.CombatCameraDistance = value; break; case ManagedOptions.ManagedOptionsType.EnableDamageTakenVisuals: BannerlordConfig.EnableDamageTakenVisuals = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.EnableDeathIcon: BannerlordConfig.EnableDeathIcon = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.EnableNetworkAlertIcons: BannerlordConfig.EnableNetworkAlertIcons = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.ForceVSyncInMenus: BannerlordConfig.ForceVSyncInMenus = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.EnableVerticalAimCorrection: BannerlordConfig.EnableVerticalAimCorrection = (double)value != 0.0; break; case ManagedOptions.ManagedOptionsType.UIScale: BannerlordConfig.UIScale = value; break; case ManagedOptions.ManagedOptionsType.CrosshairType: BannerlordConfig.CrosshairType = (int)value; break; case ManagedOptions.ManagedOptionsType.OrderType: BannerlordConfig.OrderType = (int)value; break; case ManagedOptions.ManagedOptionsType.AutoTrackAttackedSettlements: BannerlordConfig.AutoTrackAttackedSettlements = (int)value; break; } if (ManagedOptions.OnManagedOptionChanged == null) { return; } ManagedOptions.OnManagedOptionChanged(type); }
public static float GetConfig(ManagedOptions.ManagedOptionsType type) { switch (type) { case ManagedOptions.ManagedOptionsType.Language: return((float)LocalizedTextManager.GetLanguageIds(NativeConfig.IsDevelopmentMode).IndexOf(BannerlordConfig.Language)); case ManagedOptions.ManagedOptionsType.ControlBlockDirection: return((float)BannerlordConfig.DefendDirectionControl); case ManagedOptions.ManagedOptionsType.ControlAttackDirection: return((float)BannerlordConfig.AttackDirectionControl); case ManagedOptions.ManagedOptionsType.NumberOfCorpses: return((float)BannerlordConfig.NumberOfCorpses); case ManagedOptions.ManagedOptionsType.BattleSize: return((float)BannerlordConfig.BattleSize); case ManagedOptions.ManagedOptionsType.TurnCameraWithHorseInFirstPerson: return((float)BannerlordConfig.TurnCameraWithHorseInFirstPerson); case ManagedOptions.ManagedOptionsType.ShowBlood: return(BannerlordConfig.ShowBlood ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.ShowAttackDirection: return(BannerlordConfig.DisplayAttackDirection ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.ShowTargetingReticle: return(BannerlordConfig.DisplayTargetingReticule ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.FriendlyTroopsBannerOpacity: return(BannerlordConfig.FriendlyTroopsBannerOpacity); case ManagedOptions.ManagedOptionsType.ReportDamage: return(BannerlordConfig.ReportDamage ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.ReportCasualtiesType: return((float)BannerlordConfig.ReportCasualtiesType); case ManagedOptions.ManagedOptionsType.ReportExperience: return(BannerlordConfig.ReportExperience ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.ReportPersonalDamage: return(BannerlordConfig.ReportPersonalDamage ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.FirstPersonFov: return(BannerlordConfig.FirstPersonFov); case ManagedOptions.ManagedOptionsType.CombatCameraDistance: return(BannerlordConfig.CombatCameraDistance); case ManagedOptions.ManagedOptionsType.EnableDamageTakenVisuals: return(BannerlordConfig.EnableDamageTakenVisuals ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.EnableDeathIcon: return(BannerlordConfig.EnableDeathIcon ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.EnableNetworkAlertIcons: return(BannerlordConfig.EnableNetworkAlertIcons ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.ForceVSyncInMenus: return(BannerlordConfig.ForceVSyncInMenus ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.EnableVerticalAimCorrection: return(BannerlordConfig.EnableVerticalAimCorrection ? 1f : 0.0f); case ManagedOptions.ManagedOptionsType.UIScale: return(BannerlordConfig.UIScale); case ManagedOptions.ManagedOptionsType.CrosshairType: return((float)BannerlordConfig.CrosshairType); case ManagedOptions.ManagedOptionsType.OrderType: return((float)BannerlordConfig.OrderType); case ManagedOptions.ManagedOptionsType.AutoTrackAttackedSettlements: return((float)BannerlordConfig.AutoTrackAttackedSettlements); default: return(0.0f); } }
static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form1 frm = new Form1(); frm.TopLevel = true; frm.BringToFront(); frm.Focus(); string path = ""; if (args.Length > 0) { path = args[0]; } else { path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Mount and Blade II Bannerlord", "Configs", "TournamentsXPanded", "tournamentxpsettings.json"); } DirectoryInfo di = new DirectoryInfo(Assembly.GetEntryAssembly().Location); LocalizedTextManager.LoadLocalizationXmls(di.Parent.Parent.Parent.Parent.Parent.FullName); frm.SetupLanguageDropdown(); frm.LoadConfig(path); #if DEBUG string pathxml = "E:\\Users\\Brandon\\OneDrive - Mathis Consulting, LLC\\Development\\BannerLord\\BrandonMods\\TournamentXPanded.Configurator\\Languages\\settings-en.xml"; string pathcs = "E:\\Users\\Brandon\\OneDrive - Mathis Consulting, LLC\\Development\\BannerLord\\BrandonMods\\TournamentsXPanded.Settings\\TournamentXPSettings.cs"; string pathoutput = "e:\\settings.cs"; var xmlstrings = File.ReadAllLines(pathxml); var csfile = File.ReadAllLines(pathcs); using (var sw = new StreamWriter(pathoutput, false)) { foreach (var line in csfile) { if (line.Trim().StartsWith("[SettingProperty")) { var parts = line.Split('"'); var newparts = ""; foreach(var p in parts) { var pt = LocalizedTextManager.FindStringId("English", p); if (pt.StartsWith("{")) { //pt = pt + LocalizedTextManager.GetTranslatedText("English", LocalizedTextManager.GetStringId(pt)); pt = LocalizedTextManager.GetTranslatedText("English", LocalizedTextManager.GetStringId(pt)); } newparts += pt + "\""; } newparts = newparts.Substring(0,newparts.Length - 1); sw.WriteLine(newparts); } else { sw.WriteLine(line); } } } #endif Application.Run(frm); }
void Start() { gameManager = GameObject.FindWithTag("GameManager").GetComponent<GameManager>(); gameManager.Register_Clipboard(this); localizedTextManager = gameManager.GetComponent<LocalizedTextManager>(); buttonTextComponent = GetComponentInChildren<Text>(); offscreenPosition = new Vector3(transform.position.x, transform.position.y - offscreenOffset, transform.position.z); offscreenScale = transform.localScale * offscreenScalar; originalPosition = transform.position; originalScale = transform.localScale; createAndDestroyLevelRef = GameObject.FindGameObjectWithTag("persistentObject").GetComponent<CreateAndDestroyAppointment>(); selectorRef = GameObject.Find("LevelSelector").GetComponent<LevelSelector>(); createAndDestroyLevelRef.levelsAvailable = selectorRef.dayToGenerate.numAppointments; CreateAllAppointments(); // place badges badgeCheckOriginalPos = badgeCheck.transform.localPosition; badgeStarOriginalPos = badgeStar.transform.localPosition; badgeCheck.transform.position = new Vector3(badgeCheck.transform.position.x, badgeCheck.transform.position.y + distanceToPushBadges, badgeCheck.transform.position.z); badgeStar.transform.position = new Vector3(badgeStar.transform.position.x, badgeStar.transform.position.y + distanceToPushBadges, badgeStar.transform.position.z); // place showMe banner Vector3 showMeScreenEdge = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width * showMeBannerScreenPos_X, Screen.height * showMeBannerScreenPos_Y)); showMeOutPosition = new Vector3( showMeScreenEdge.x, showMeScreenEdge.y, showMeBanner.transform.position.z); showMeInPosition = new Vector3(showMeOutPosition.x - distanceToPushShowMeBanner, showMeOutPosition.y, showMeOutPosition.z); showMeBanner.transform.position = showMeInPosition; // show notifications at start of clipboard if (selectorRef.dayToGenerate.dayIndex_internal == 0) { GameObject.Find("NotificationManager").GetComponent<NotificationManager>().DisplayNotification(1, false); } else if (selectorRef.dayToGenerate.dayIndex_internal == 4) { GameObject.Find("NotificationManager").GetComponent<NotificationManager>().DisplayNotification(9, false); } textDay.text = localizedTextManager.GetLocalizedString("Day") + " " + (selectorRef.dayToGenerate.dayIndex_internal + 1); restartFromResultsScreenButton = GameObject.Find("RestartFromResultsScreenButton"); ShowRestartButton(false); isFirstCreation = false; }
public static void SetLanguage(LocalizedTextManager.Language language) { SaveData.SetInt("languageSetting", (int)language); SaveAllData(); }
public void SetProperty(SettingPropertyAttribute attr, PropertyInfo pInfo, TournamentXPSettings settings) { _pInfo = pInfo; _settings = settings; string text = attr.DisplayName; if (text.Trim().StartsWith("{")) { var id = LocalizedTextManager.GetStringId(text); text = LocalizedTextManager.GetTranslatedText(languageId, id); } lblName.Text = text; if (!string.IsNullOrWhiteSpace(attr.HintText)) { string text2 = attr.HintText; if (text2.Trim().StartsWith("{")) { var id = LocalizedTextManager.GetStringId(text2); text2 = LocalizedTextManager.GetTranslatedText(languageId, id); } ToolTip tt = new ToolTip(); tt.IsBalloon = true; tt.SetToolTip(lblName, text2); } checkBox1.Visible = false; textBox1.Visible = false; textBox1.TextAlign = HorizontalAlignment.Right; trackBar1.Visible = false; trackBar2.Visible = false; switch (pInfo.PropertyType.Name) { case "Boolean": checkBox1.Visible = true; checkBox1.Checked = (bool)pInfo.GetValue(settings); break; case "Int32": case "Int64": case "Integer": textBox1.Visible = true; textBox1.Text = ((int)pInfo.GetValue(settings)).ToString(); trackBar1.Visible = true; trackBar1.Minimum = (int)attr.MinValue; trackBar1.Maximum = (int)attr.MaxValue; trackBar1.Value = ((int)pInfo.GetValue(settings)); break; case "Single": textBox1.Visible = true; textBox1.Text = ((float)pInfo.GetValue(settings)).ToString(); trackBar2.Visible = true; trackBar2.Minimum = attr.MinValue; trackBar2.Maximum = attr.MaxValue; trackBar2.Value = ((float)pInfo.GetValue(settings)); break; default: break; } }
public static TextObject Localized(this string id, string fallback) => new TextObject($"{{={id}}}{LocalizedTextManager.GetTranslatedText("English", id) ?? fallback}");
public void LoadConfig(TournamentXPSettings settings) { _settings = settings; pnlSettings.Controls.Clear(); settingprops = new List <XPSettingControlBase>(); //var groups = new List<SettingPropertyGroup>(); propList = (from p in typeof(TournamentXPSettings).GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) let propAttr = p.GetCustomAttribute <SettingPropertyAttribute>(true) let groupAttr = p.GetCustomAttribute <SettingPropertyGroupAttribute>(true) where propAttr != null let groupAttrToAdd = groupAttr ?? null select new ConfigInfo { attribute = propAttr, propertyInfo = p, pgroup = groupAttrToAdd }).ToList(); List <string> descriptions = new List <string>(); List <string> hints = new List <string>(); List <string> groups = new List <string>(); List <FlowLayoutPanel> groupPanels = new List <FlowLayoutPanel>(); groupPanels.Add(new FlowLayoutPanel() { Name = "Default" }); var groupcount = 0; foreach (var pr in propList) { FlowLayoutPanel pnl = groupPanels.Where(x => x.Name == "Default").First(); if (pr.pgroup != null) { pnl = groupPanels.Where(x => x.Name == pr.pgroup.GroupName).FirstOrDefault(); if (pnl == null) { pnl = new FlowLayoutPanel() { Name = pr.pgroup.GroupName }; pnl.AutoScroll = false; pnl.AutoSize = true; pnl.AutoSizeMode = AutoSizeMode.GrowAndShrink; pnl.BorderStyle = BorderStyle.FixedSingle; string text = pr.pgroup.GroupName; if (text.Trim().StartsWith("{")) { var id = LocalizedTextManager.GetStringId(text); text = LocalizedTextManager.GetTranslatedText(ddlLanguage.SelectedItem.ToString(), id); } pnl.Controls.Add(new Label() { AutoSize = true, MinimumSize = new Size(700, 50), Text = text, Font = new System.Drawing.Font("Arial Narrow", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))) }); groupPanels.Add(pnl); groupcount++; groups.Add(pr.pgroup.GroupName); } } var uc = new XPSettingControlBase(ddlLanguage.SelectedItem.ToString()); uc.Anchor = AnchorStyles.Top; uc.SetProperty(pr.attribute, pr.propertyInfo, _settings); pnl.Controls.Add(uc); settingprops.Add(uc); #if DEBUG descriptions.Add(pr.attribute.DisplayName); if (!string.IsNullOrWhiteSpace(pr.attribute.HintText)) { hints.Add(pr.attribute.HintText); } #endif } foreach (var pnl in groupPanels) { if (pnl.Controls.Count > 0) { pnlSettings.Controls.Add(pnl); } } pnlSettings.Refresh(); #if DEBUG using (var sw = new System.IO.StreamWriter("E:\\texts.json")) { var count = 0; foreach (var s in groups) { count++; string id = ("000" + count.ToString()); id = id.Substring(id.Length - 4); sw.WriteLine("<string id=\"txpg" + id + "\" text=\"" + s + "\" />"); } foreach (var s in descriptions) { count++; string id = ("000" + count.ToString()); id = id.Substring(id.Length - 4); sw.WriteLine("<string id=\"txpd" + id + "\" text=\"" + s + "\" />"); } foreach (var s in hints) { count++; string id = ("000" + count.ToString()); id = id.Substring(id.Length - 4); sw.WriteLine("<string id=\"txph" + id + "\" text=\"" + s + "\" />"); } } #endif }