diff --git a/MenuTries/MenuTries.cs b/MenuTries/MenuTries.cs index 5100ea7..660d188 100644 --- a/MenuTries/MenuTries.cs +++ b/MenuTries/MenuTries.cs @@ -8,9 +8,28 @@ using UnityEngine.SceneManagement; using System; using System.Security.AccessControl; +using System.Collections.Generic; namespace MenuTries { + public class MenuOpener : MonoBehaviour + { + private Menu menu; + private Button button = null; + public void Initialize (Menu toOpen, Button toListen) + { + if (button!= null) + button.onClick.RemoveListener(OnEvent); + menu = toOpen; + button = toListen; + button.onClick.AddListener(OnEvent); + } + private void OnEvent() + { + menu.EnableMenu(true); + } + } + public class MenuTries : ModBehaviour { public static IModConsole console; @@ -19,14 +38,15 @@ public class MenuTries : ModBehaviour public static Button menubutton; public static Menu cusMenu, somemenu; public static Selectable first=null; + private static Dictionary dict = new Dictionary(); private void Start() { Application.logMessageReceived += OnLogMessageReceived; console = ModHelper.Console; - menubutton = ModHelper.Menus.MainMenu.AddButton("Custom Menu", 4); - menubutton.onClick.AddListener(OnEvent); + menubutton = ModHelper.Menus.MainMenu.AddButton("Custom Menu", 4); //button setup, as well as parenting should be moved to a listener, so it will re-setup after level change + menubutton.onClick.AddListener(OpenMenu); ModHelper.Console.WriteLine("copying menu"); canvas = GameObject.Find("KeyboardRebindingCanvas"); @@ -52,25 +72,52 @@ private void Start() content.GetChild(0).gameObject.SetActive(false); extramenu.transform.Find("HeaderPanel").GetComponentInChildren().text = "Custom Menu"; - var rtext = extramenu.transform.Find("FooterPanel").GetComponentsInChildren(); + + var footer = extramenu.transform.Find("FooterPanel"); + var rtext = footer.GetComponentsInChildren(); rtext[0].text = "Cancel and Exit"; rtext[1].text = "Default settings"; rtext[2].text = "Save and Exit"; rtext[3].text = "Discard changes"; + footer.GetChild(1).GetComponent