Beispiel #1
0
    public async Task UpdateBuildAndSaveBtns()
    {
        bool              success = false, successForce = false;
        string            messageForce = "";
        ButtonWithTooltip button       = null;

        switch (GameManager.Instance.GetGameState())
        {
        case GameManager.GameStateEnum.ProjectEditor:
            (successForce, messageForce) = await GameManager.Instance.CloseProject(true, true);

            button = CloseProjectBtn;

            if (!ProjectManager.Instance.ProjectChanged)
            {
                BuildBtn.SetInteractivity(true);
                SaveProjectBtn.SetInteractivity(false, "There are no unsaved changes");
                if (ProjectManager.Instance.ProjectMeta.HasLogic)
                {
                    BuildAndRunBtn.SetInteractivity(true);
                }
            }
            else
            {
                BuildBtn.SetInteractivity(false, "There are unsaved changes on project");
                BuildAndRunBtn.SetInteractivity(false, "There are unsaved changes on project");
                SaveProjectBtn.SetInteractivity(true);
            }
            break;

        case GameManager.GameStateEnum.SceneEditor:
            (successForce, messageForce) = await GameManager.Instance.CloseScene(true, true);

            button = CloseSceneBtn;
            if (!SceneManager.Instance.SceneChanged)
            {
                SaveSceneBtn.SetInteractivity(false, "There are no unsaved changes");
                CreateProjectBtn.SetInteractivity(true);
            }
            else
            {
                SaveSceneBtn.SetInteractivity(true);
                CreateProjectBtn.SetInteractivity(false, "There are unsaved changes");
            }
            break;
        }
        if (button != null)
        {
            if (successForce)
            {
                button.SetInteractivity(true);
            }
            else
            {
                button.SetInteractivity(false, messageForce);
            }
        }
    }
Beispiel #2
0
    public async void SaveScene()
    {
        IO.Swagger.Model.SaveSceneResponse saveSceneResponse = await Base.GameManager.Instance.SaveScene();

        if (!saveSceneResponse.Result)
        {
            saveSceneResponse.Messages.ForEach(Debug.LogError);
            Notifications.Instance.ShowNotification("Scene save failed", saveSceneResponse.Messages.Count > 0 ? saveSceneResponse.Messages[0] : "Failed to save scene");
            return;
        }
        else
        {
            SaveSceneBtn.SetInteractivity(false, "There are no unsaved changes");
            _ = UpdateBuildAndSaveBtns();
        }
    }