From 04329e1c87348538fb7372c88d98737f5ac6462a Mon Sep 17 00:00:00 2001 From: David Higueros <111460331+TheDavSmasher@users.noreply.github.com> Date: Sun, 12 Jul 2026 16:22:55 -0600 Subject: [PATCH] Added generic to only have certain types of entries --- MiraAPI/Hud/CustomPhoneMenu.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/MiraAPI/Hud/CustomPhoneMenu.cs b/MiraAPI/Hud/CustomPhoneMenu.cs index 1f076011..ade867ec 100644 --- a/MiraAPI/Hud/CustomPhoneMenu.cs +++ b/MiraAPI/Hud/CustomPhoneMenu.cs @@ -39,9 +39,9 @@ public abstract class CustomPhoneMenu(IntPtr il2CppPtr) : Minigame(il2CppPtr) public static implicit operator BasicEntry(ShapeshifterPanel panel) => new(panel); } - protected List menuEntries = []; + protected List MenuEntries { get; set; } = []; - public List EntryPanels => menuEntries.Select(e => e.Panel).ToList(); + public List EntryPanels => MenuEntries.Select(e => e.Panel).ToList(); public float xStart = -0.8f; public float yStart = 2.15f; @@ -122,7 +122,7 @@ public abstract class CustomPhoneMenu(IntPtr il2CppPtr) : Minigame(il2CppPtr) Action entryPanelConfig, Func? menuEntryMaker = null) { - int currentEntries = menuEntries.Count; + int currentEntries = MenuEntries.Count; var list = entries.ToList(); @@ -137,7 +137,7 @@ public abstract class CustomPhoneMenu(IntPtr il2CppPtr) : Minigame(il2CppPtr) menuEntryMaker ??= (s, _) => new BasicEntry(s); var menuEntry = menuEntryMaker(shapeshifterPanel, entry); - menuEntries.Add(menuEntry); + MenuEntries.Add(menuEntry); var button = shapeshifterPanel.Button; var nameplate = shapeshifterPanel.gameObject.transform.FindChild("Nameplate"); @@ -196,3 +196,14 @@ public abstract class CustomPhoneMenu(IntPtr il2CppPtr) : Minigame(il2CppPtr) } } } + +/// +/// The type of menu entries. +public abstract class CustomPhoneMenu(IntPtr il2CppPtr) : CustomPhoneMenu(il2CppPtr) where TMenu : CustomPhoneMenu.IMenuEntry +{ + protected new List MenuEntries + { + get => base.MenuEntries.Cast().ToList(); + set => base.MenuEntries = value.Cast().ToList(); + } +}