public static void OnRevertButtonClick_Prefix(int idx) { if (idx == multiplayerTabIndex) { tempMultiplayerOptions = new MultiplayerOptions(); } }
public MultiplayerHostWindow(MultiplayerOptions options) { InitializeComponent(); Server = new GameHubServer(); Server.MessageReceived += MessageReceieved; Options = options; }
public static void _OnCreate_Postfix(UIOptionWindow __instance) { tempToUICallbacks = new Dictionary <string, System.Action>(); tempMultiplayerOptions = new MultiplayerOptions(); // Add multiplayer tab button UIButton[] tabButtons = AccessTools.Field(__instance.GetType(), "tabButtons").GetValue(__instance) as UIButton[]; multiplayerTabIndex = tabButtons.Length; RectTransform lastTab = tabButtons[tabButtons.Length - 1].GetComponent <RectTransform>(); RectTransform beforeLastTab = tabButtons[tabButtons.Length - 2].GetComponent <RectTransform>(); float tabOffset = lastTab.anchoredPosition.x - beforeLastTab.anchoredPosition.x; multiplayerTab = Object.Instantiate(lastTab, lastTab.parent, true); multiplayerTab.anchoredPosition = new Vector2(lastTab.anchoredPosition.x + tabOffset, lastTab.anchoredPosition.y); UIButton[] newTabButtons = CollectionExtensions.AddToArray(tabButtons, multiplayerTab.GetComponent <UIButton>()); AccessTools.Field(__instance.GetType(), "tabButtons").SetValue(__instance, newTabButtons); // Update multiplayer tab text Text tabText = multiplayerTab.GetComponentInChildren <Text>(); tabText.GetComponent <Localizer>().enabled = false; tabText.text = "Multiplayer"; Text[] tabTexts = AccessTools.Field(__instance.GetType(), "tabTexts").GetValue(__instance) as Text[]; Text[] newTabTexts = CollectionExtensions.AddToArray(tabTexts, tabText); AccessTools.Field(__instance.GetType(), "tabTexts").SetValue(__instance, newTabTexts); // Add multiplayer tab content Tweener[] tabTweeners = AccessTools.Field(__instance.GetType(), "tabTweeners").GetValue(__instance) as Tweener[]; RectTransform contentTemplate = tabTweeners[0].GetComponent <RectTransform>(); multiplayerContent = Object.Instantiate(contentTemplate, contentTemplate.parent, true); multiplayerContent.name = "multiplayer-content"; Tweener[] newContents = CollectionExtensions.AddToArray(tabTweeners, multiplayerContent.GetComponent <Tweener>()); AccessTools.Field(__instance.GetType(), "tabTweeners").SetValue(__instance, newContents); UIButton[] revertButtons = AccessTools.Field(__instance.GetType(), "revertButtons").GetValue(__instance) as UIButton[]; RectTransform revertButton = multiplayerContent.Find("revert-button").GetComponent <RectTransform>(); UIButton[] newRevertButtons = CollectionExtensions.AddToArray(revertButtons, revertButton.GetComponent <UIButton>()); AccessTools.Field(__instance.GetType(), "revertButtons").SetValue(__instance, newRevertButtons); // Find control templates foreach (RectTransform child in multiplayerContent) { if (child != revertButton) { Object.Destroy(child.gameObject); } } checkboxTemplate = contentTemplate.Find("fullscreen").GetComponent <RectTransform>(); comboBoxTemplate = contentTemplate.Find("resolution").GetComponent <RectTransform>(); sliderTemplate = contentTemplate.Find("dofblur").GetComponent <RectTransform>(); inputTemplate = Object.Instantiate(checkboxTemplate, multiplayerContent, false); Object.Destroy(inputTemplate.Find("CheckBox").gameObject); RectTransform inputField = Object.Instantiate(UIRoot.instance.saveGameWindow.transform.Find("input-filename/InputField").GetComponent <RectTransform>(), inputTemplate, false); Vector2 fieldPosition = checkboxTemplate.GetChild(0).GetComponent <RectTransform>().anchoredPosition; inputField.anchoredPosition = new Vector2(fieldPosition.x + 6, fieldPosition.y); inputField.sizeDelta = new Vector2(inputField.sizeDelta.x, 35); inputTemplate.gameObject.SetActive(false); AddMultiplayerOptionsProperties(multiplayerContent); }
public static void _OnOpen_Prefix() { tempMultiplayerOptions = (MultiplayerOptions)Config.Options.Clone(); }
public MultiplayerWindow(MultiplayerOptions _options) { this.options = _options; }
public MultiplayerClientWindow(MultiplayerOptions options) { InitializeComponent(); Options = options; Init(); }