Esempio n. 1
0
 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;
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 public static void _OnOpen_Prefix()
 {
     tempMultiplayerOptions = (MultiplayerOptions)Config.Options.Clone();
 }
 public MultiplayerWindow(MultiplayerOptions _options)
 {
     this.options = _options;
 }
Esempio n. 6
0
 public MultiplayerClientWindow(MultiplayerOptions options)
 {
     InitializeComponent();
     Options = options;
     Init();
 }