예제 #1
0
        public static void Init()
        {
            if (Instance == null)
            {
                Instance = BeatSaberUI.CreateCustomMenu <CustomMenu>("Online Multiplayer");

                middleViewController = BeatSaberUI.CreateViewController <ListViewController>();


                Instance.SetMainViewController(middleViewController, true, (firstActivation, type) =>
                {
                    refreshAvailableLobbies();
                    if (firstActivation)
                    {
                        middleViewController.CreateText("Available Lobbies", new Vector2(BASE.x + 60f, BASE.y));

                        refresh = middleViewController.CreateUIButton("CreditsButton", new Vector2(BASE.x + 80f, BASE.y + 2.5f), new Vector2(25f, 7f));
                        refresh.SetButtonText("Refresh");
                        refresh.SetButtonTextSize(3f);
                        refresh.ToggleWordWrapping(false);
                        refresh.onClick.AddListener(delegate()
                        {
                            refreshAvailableLobbies();
                        });

                        if (!SteamAPI.isLobbyConnected())
                        {
                            Button host = middleViewController.CreateUIButton("CreditsButton", new Vector2(BASE.x, BASE.y + 2.5f), new Vector2(25f, 7f));
                            host.SetButtonTextSize(3f);
                            host.ToggleWordWrapping(false);

                            host.onClick.RemoveAllListeners();
                            host.SetButtonText("Host Public Lobby");
                            host.onClick.AddListener(delegate()
                            {
                                SteamAPI.CreateLobby(false);
                                Instance.Dismiss();
                                MultiplayerLobby.Instance.Present();
                            });

                            Button hostP = middleViewController.CreateUIButton("CreditsButton", new Vector2(BASE.x, BASE.y + 2.5f - 10f), new Vector2(25f, 7f));
                            hostP.SetButtonTextSize(3f);
                            hostP.ToggleWordWrapping(false);

                            hostP.onClick.RemoveAllListeners();
                            hostP.SetButtonText("Host Private Lobby");
                            hostP.onClick.AddListener(delegate()
                            {
                                SteamAPI.CreateLobby(true);
                                Instance.Dismiss();
                                MultiplayerLobby.Instance.Present();
                            });
                        }
                    }
                });
            }
        }
예제 #2
0
 private void CreateMainMenuButton()
 {
     MultiplayerButton = MenuButtonUI.AddButton($"Multiplayer", "", delegate()
     {
         try
         {
             if (SteamAPI.isLobbyConnected())
             {
                 MultiplayerLobby.Instance.Present();
             }
             else
             {
                 MultiplayerListing.Instance.Present();
             }
         }
         catch (Exception e)
         {
             Logger.Error($"Unable to present flow coordinator! Exception: {e}");
         }
     });
 }