From 0ddbabadd6313d9d9bcab2afcd68a5f916e0406d Mon Sep 17 00:00:00 2001 From: Atony <75191600+AtonyGit@users.noreply.github.com> Date: Sat, 17 Oct 2026 19:39:08 -0500 Subject: [PATCH] Add full grid options --- MiraAPI/MiraApiSettings.cs | 28 ++++++++++++++++------ MiraAPI/Patches/RoleGuidePatches.cs | 37 +++++++++++++++++++++++------ MiraAPI/Resources/Locale/en_US.xml | 7 +++++- 3 files changed, 57 insertions(+), 15 deletions(-) diff --git a/MiraAPI/MiraApiSettings.cs b/MiraAPI/MiraApiSettings.cs index 1047fcd..6d799b0 100644 --- a/MiraAPI/MiraApiSettings.cs +++ b/MiraAPI/MiraApiSettings.cs @@ -202,12 +202,6 @@ public class MiraApiSettings(ConfigFile config) : LocalSettingsTab(config) [LocalSliderSetting(min: 0.3f, max: 2f, suffixType: MiraNumberSuffixes.Multiplier, formatString: "0.00", displayValue: true)] public ConfigEntry TopRightButtonsFactorSlider { get; private set; } = config.Bind("MiraApi.VisualsUi", "MiraApi.TopRightButtonScaleFactor", 1f); - /// - /// Gets the scale of the match info guide. - /// - [LocalSliderSetting(min: 0.5f, max: 1f, suffixType: MiraNumberSuffixes.Multiplier, formatString: "0.00", displayValue: true)] - public ConfigEntry MatchInfoGuideScaleFactor { get; private set; } = config.Bind("MiraApi.VisualsUi", "MiraApi.MatchInfoGuideScaleFactor", 1f); - /// /// Gets the fps specified by the player. /// @@ -226,11 +220,24 @@ public class MiraApiSettings(ConfigFile config) : LocalSettingsTab(config) [LocalToggleSetting] public ConfigEntry ShowKeybinds { get; private set; } = config.Bind("MiraApi.VisualsUi", "MiraApi.ShowKeybindsOnButtons", true); + /// + /// Gets the scale of the match info guide. + /// + [LocalSliderSetting(min: 0.5f, max: 1f, suffixType: MiraNumberSuffixes.Multiplier, formatString: "0.00", displayValue: true)] + public ConfigEntry MatchInfoGuideScaleFactor { get; private set; } = config.Bind("MiraApi.MatchInfoGuide", "MiraApi.MatchInfoGuideScaleFactor", 1f); + /// /// Gets the flag indicating whether the wiki is on the bottom row. /// [LocalToggleSetting] - public ConfigEntry WikiOnBottomRow { get; private set; } = config.Bind("MiraApi.VisualsUi", "MiraApi.WikiOnBottomRow", true); + public ConfigEntry WikiOnBottomRow { get; private set; } = config.Bind("MiraApi.MatchInfoGuide", "MiraApi.WikiOnBottomRow", true); + + /// + /// Gets the flag indicating the position for the wiki's tabs. + /// + [LocalEnumSetting(names: ["MiraApi.WikiTabPosition.LeftSide", "MiraApi.WikiTabPosition.RightSide", "MiraApi.WikiTabPosition.Below"])] + public ConfigEntry WikiTabPosition { get; private set; } = + config.Bind("MiraApi.MatchInfoGuide", "MiraApi.WikiTabPosition", MiraApiPlugin.IsMobile ? MatchInfoTabPos.RightSide : MatchInfoTabPos.LeftSide); /// /// Gets whether to show the red flash from sabotages. @@ -250,3 +257,10 @@ public class MiraApiSettings(ConfigFile config) : LocalSettingsTab(config) [LocalToggleSetting] public ConfigEntry EnableVariableColors { get; private set; } = config.Bind("MiraApi.Accessibility", "MiraApi.EnableVariableColors", true); } + +public enum MatchInfoTabPos +{ + LeftSide, + RightSide, + Below, +} diff --git a/MiraAPI/Patches/RoleGuidePatches.cs b/MiraAPI/Patches/RoleGuidePatches.cs index 4b332f3..de7b945 100644 --- a/MiraAPI/Patches/RoleGuidePatches.cs +++ b/MiraAPI/Patches/RoleGuidePatches.cs @@ -318,6 +318,8 @@ public static class RoleGuidePatches Initialize(__instance); } + SetUpTabGrids(LocalSettingsTabSingleton.Instance.WikiTabPosition.Value); + if (RoleEntries.Count == 0) { BuildEntries(); @@ -386,6 +388,33 @@ public static class RoleGuidePatches return false; } + private static void SetUpTabGrids(MatchInfoTabPos position) + { + tabButtonContainer.startCorner = GridLayoutGroup.Corner.UpperLeft; + tabButtonContainer.startAxis = GridLayoutGroup.Axis.Horizontal; + tabButtonContainer.constraint = GridLayoutGroup.Constraint.FixedColumnCount; + switch (position) + { + case MatchInfoTabPos.LeftSide: + tabButtonContainer.childAlignment = TextAnchor.MiddleLeft; + tabButtonContainer.transform.localPosition = new Vector3(-4, 0, -0.2f); + break; + case MatchInfoTabPos.RightSide: + tabButtonContainer.childAlignment = TextAnchor.MiddleRight; + tabButtonContainer.transform.localPosition = new Vector3(4, 0, -0.2f); + break; + default: + tabButtonContainer.startCorner = GridLayoutGroup.Corner.LowerLeft; + tabButtonContainer.childAlignment = TextAnchor.LowerCenter; + tabButtonContainer.startAxis = GridLayoutGroup.Axis.Vertical; + tabButtonContainer.constraint = GridLayoutGroup.Constraint.FixedRowCount; + tabButtonContainer.transform.localPosition = new Vector3(0, -2.15f, -0.2f); + break; + } + + tabButtonContainer.constraintCount = 1; + } + private static void Initialize(MatchInfoGuide instance) { if (_uiInitialized) @@ -415,14 +444,8 @@ public static class RoleGuidePatches var newContainer = new GameObject("TabButtonContainer"); newContainer.transform.SetParent(instance.MatchInfoParent.transform); tabButtonContainer = newContainer.AddComponent(); - tabButtonContainer.cellSize = new Vector2(0.8f, 0.55f); + tabButtonContainer.cellSize = new Vector2(0.7f, 0.55f); tabButtonContainer.rectTransform.offsetMax = tabButtonContainer.rectTransform.offsetMin = Vector2.zero; - tabButtonContainer.startAxis = GridLayoutGroup.Axis.Horizontal; - tabButtonContainer.startCorner = GridLayoutGroup.Corner.UpperLeft; - tabButtonContainer.childAlignment = TextAnchor.MiddleLeft; - tabButtonContainer.constraint = GridLayoutGroup.Constraint.FixedColumnCount; - tabButtonContainer.constraintCount = 1; - newContainer.transform.localPosition = new Vector3(-4, 0, -0.2f); var sortingOrderButton = Object.Instantiate( HudManager.Instance.SettingsButton, diff --git a/MiraAPI/Resources/Locale/en_US.xml b/MiraAPI/Resources/Locale/en_US.xml index 3cff5f4..f09f71d 100644 --- a/MiraAPI/Resources/Locale/en_US.xml +++ b/MiraAPI/Resources/Locale/en_US.xml @@ -2,6 +2,7 @@ Mira API Visuals/UI + Match Info Guide Accessibility MiraAPI Show Modifiers HUD on Left Side @@ -9,8 +10,12 @@ Button Scale Factor Top-Right UI Scale Factor Match Info Guide Scale Factor + Tab Buttons Grid Placement + Left-Side + Right-Side + Below UI Max FPS - Display Wiki on Bottom Row + Display Button on Bottom Row Enable Sabotage Flashes Enable Sabotage Blare Enable Variable Color Changes