Exemplo n.º 1
0
 void LoadGame(GameBuilderApplication.PlayOptions playOpts)
 {
     if (localVoosFile != null)
     {
         // Two action logs intentional.
     }
     else
     {
         ulong itemId = workshopItem.SteamNative.m_nPublishedFileId.m_PublishedFileId;
         // Two action logs intentional.
     }
     loadingScreen.ShowAndDo(() =>
     {
         if (localVoosFile != null)
         {
             var gameOpts = new GameBuilderApplication.GameOptions {
                 playOptions = playOpts
             };
             loadingScreen.ShowAndDo(() => sceneController.RestartAndLoad(localVoosFile, gameOpts));
         }
         else
         {
             sceneController.LoadWorkshopItem(
                 new LoadableWorkshopItem(workshopItem),
                 playOpts,
                 thumbnailImage.sprite.texture);
         }
     });
 }
Exemplo n.º 2
0
 public static void CommandMpNew(CommandTerminal.CommandArg[] args)
 {
     GameBuilderApplication.GameOptions gameOptions = new GameBuilderApplication.GameOptions();
     gameOptions.playOptions.isMultiplayer = true;
     gameOptions.playOptions.startAsPublic = false;
     GameObject.FindObjectOfType <GameBuilderSceneController>().RestartAndLoadMinimalScene(gameOptions);
 }
Exemplo n.º 3
0
 public void LoadMainSceneAsync(GameBuilderApplication.GameOptions gameOptions = new GameBuilderApplication.GameOptions())
 {
     bsod?.NotifySceneClosing();
     GameBuilderApplication.Get().SetGameOptionsDoNotUseExceptFromSceneController(gameOptions);
     OnBeforeReloadMainScene?.Invoke();
     LastLoadStart = Time.realtimeSinceStartup;
     SceneManager.LoadSceneAsync("main", LoadSceneMode.Single);
 }
Exemplo n.º 4
0
 void OpenNew()
 {
     dynamicPopup.AskHowToPlayMultiplayer(playOpts =>
     {
         var gameOpts = new GameBuilderApplication.GameOptions {
             playOptions = playOpts
         };
         loadingScreen.ShowAndDo(() => sceneController.RestartAndLoadMinimalScene(gameOpts));
     });
 }
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.F8) && Input.GetKey(KeyCode.LeftControl))
        {
            PerfBenchmark.CommandBenchmark(null);
        }

#if UNITY_EDITOR
        if (Input.GetKeyDown(KeyCode.F9) && Input.GetKey(KeyCode.LeftControl))
        {
            var gameOpts = new GameBuilderApplication.GameOptions
            {
                playOptions = new GameBuilderApplication.PlayOptions
                {
                    isMultiplayer    = true,
                    startAsPublic    = false,
                    startInBuildMode = true
                }
            };
            string path = System.IO.Path.Combine(Application.streamingAssetsPath, "ExampleGames", "Internal", "template-small.voos");
            loadingScreen.ShowAndDo(() => sceneController.RestartAndLoad(path, gameOpts));
        }
#endif

#if UNITY_EDITOR
        if (Input.GetKeyDown(KeyCode.F10) && Input.GetKey(KeyCode.LeftControl))
        {
            sceneController.JoinMultiplayerGameByCode($"1-dev-{System.Net.Dns.GetHostName().ToLowerInvariant()}");
        }
#endif

        if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.N))
        {
            sceneController.RestartAndLoadMinimalScene(new GameBuilderApplication.GameOptions());
        }

        if (Input.GetButtonDown("Cancel"))
        {
            if (creditsObject.activeSelf)
            {
                creditsObject.SetActive(false);
            }
            else if (templateSelectorMenu.IsOpen())
            {
                templateSelectorMenu.Close();
            }
            else
            {
                menuPanelManager.Back();
            }
        }

        AudioListener.volume = Application.isFocused ? 1 : 0;
    }
Exemplo n.º 6
0
    public void LoadWorkshopItem(LoadableWorkshopItem item, GameBuilderApplication.PlayOptions playOptions, Texture2D thumbnail)
    {
        resuming.SetWorkshopItemForResuming(item.steamId);
        var options = new GameBuilderApplication.GameOptions
        {
            displayName = item.displayName,
            playOptions = playOptions,
            thumbnailZippedJpegBytes = MaybeGetThumbnailBytes(thumbnail),
            steamWorkShopFileId      = item.steamId,
        };
        ulong itemId = item.steamId;

        this.RestartAndLoadBundleDirectory(item.installedLocalFolder, options);
    }
Exemplo n.º 7
0
    public void RestartAndLoad(string filePath, GameBuilderApplication.GameOptions gameOptions = new GameBuilderApplication.GameOptions())
    {
        SaveLoadController.SaveGame save = SaveLoadController.ReadSaveGame(filePath);

        LoadMainSceneAsync(gameOptions);

        // TODO couldn't I put this in gameOptions instead..?
        // And then, we need to communicate the desire to load, so we use this SaveGameToLoad object.
        GameObject loadMe = new GameObject("LoadMePlease");

        GameObject.DontDestroyOnLoad(loadMe);
        var tag = loadMe.AddComponent <SaveGameToLoad>();

        tag.voosFilePath = filePath;
        tag.saved        = save;
    }
Exemplo n.º 8
0
    public void RestartAndLoadLibraryBundle(GameBundleLibrary.Entry entry, GameBuilderApplication.PlayOptions playOptions)
    {
        if (!entry.IsAutosave())
        {
            resuming.SetBundleForResuming(entry.id);
        }
        var bundle      = entry.bundle;
        var gameOptions = new GameBuilderApplication.GameOptions
        {
            bundleIdToLoad           = entry.id,
            displayName              = bundle.GetMetadata().name,
            playOptions              = playOptions,
            thumbnailZippedJpegBytes = MaybeGetThumbnailBytes(bundle.GetThumbnail()),
        };

        this.LoadMainSceneAsync(gameOptions);
    }
Exemplo n.º 9
0
 void OpenSampleGame(GameThumbnail thumb, LocalSampleGames.GameInfo gameInfo)
 {
     SelectThumbnail(thumb, (rect) =>
     {
         gameDetail.FitTo(rect);
         string desc = "<b>Example game: " + gameInfo.title + "</b>\n" + gameInfo.description;
         gameDetail.OpenSpecial(desc, thumb.GetTexture(), playOpts =>
         {
             loadingScreen.ShowAndDo(() =>
             {
                 var gameOpts = new GameBuilderApplication.GameOptions {
                     playOptions = playOpts
                 };
                 loadingScreen.ShowAndDo(() => sceneController.RestartAndLoad(gameInfo.GetVoosFilePath(), gameOpts));
             });
         }, true);
     });
 }
Exemplo n.º 10
0
    void OnTemplateClicked(BuiltInTemplateInfo template)
    {
        string fullPath = Path.Combine(Application.streamingAssetsPath, "ExampleGames", "Public", template.baseFileName + ".voos");

        if (template.isTutorial)
        {
            loadingScreen.ShowAndDo(() => sceneController.RestartAndLoadTutorial());
        }
        else
        {
            popups.AskHowToPlay(playOpts =>
            {
                var gameOpts = new GameBuilderApplication.GameOptions {
                    playOptions = playOpts
                };
                loadingScreen.ShowAndDo(() => sceneController.RestartAndLoad(fullPath, gameOpts));
            });
        }
    }
Exemplo n.º 11
0
 public void RestartAndLoadTutorial()
 {
     GameBuilderApplication.GameOptions gameOptions = new GameBuilderApplication.GameOptions();
     gameOptions.tutorialMode = true;
     RestartAndLoad(Path.Combine(Application.streamingAssetsPath, "ExampleGames", "Public", "tutorial.voos"), gameOptions);
 }
Exemplo n.º 12
0
 public void RestartAndLoadMinimalScene(GameBuilderApplication.GameOptions gameOptions = new GameBuilderApplication.GameOptions())
 {
     RestartAndLoad(GetMinimalScenePath(false), gameOptions);
 }
Exemplo n.º 13
0
 public void RestartAndLoadBundleDirectory(string directory, GameBuilderApplication.GameOptions gameOptions)
 {
     this.RestartAndLoad((new GameBundle(directory)).GetVoosPath(), gameOptions);
 }