コード例 #1
0
 public void AddState(GlobalVariableState state)
 {
     if (_freezeStates)
     {
         return;
     }
     states.Add(state);
 }
コード例 #2
0
 public static void UpdateGameStates(GlobalVariableState state)
 {
     Debug.Log($"#Firebase#Updating game state: {state.CompleteId}");
     FirebaseWrapper.UpdateGameStates(state.Id,
                                      (float)state.CompletedTime,
                                      state.MissionIndex,
                                      state.NodeTechnicalName,
                                      state.SceneId,
                                      (int)state.SceneTag
                                      );
 }
コード例 #3
0
    private void StartReading(List <GlobalVariableState> states, List <Item> items)
    {
        Debug.Log("#StateRestore#Reading variables");
        Queue <GlobalVariableState> stateQueues = new Queue <GlobalVariableState>(states);
        GlobalVariableState         state       = null;

        while (stateQueues.Count != 0)
        {
            state = stateQueues.Dequeue();
            Debug.Log($"#StateRestore#Dequed state {state.CompleteId}");

            AddState(state);
        }

        foreach (var item in items)
        {
            AddState(item);
        }

        ApplyState(state);
        Ready = true;
    }
コード例 #4
0
    private void ApplyState(GlobalVariableState state)
    {
        if (state != null)
        {
            if (ArticyDatabase.IsObjectAvailable(state.NodeTechnicalName))
            {
                Debug.Log($"#StateRestore#Applying {state.NodeTechnicalName}");
                player.StartOn = ArticyDatabase.GetObject(state.NodeTechnicalName);
            }
#if UNITY_EDITOR
            else
            {
                Debug.LogError($"Technical name:{state.NodeTechnicalName} for state {state.Id} is not available in the database. Maybe it doesn't exist.");
                UnityEditor.EditorApplication.isPaused = true;
            }
#endif
            transition.newSceneName             = state.SceneId;
            transition.transitionDestinationTag = state.SceneTag;
            ArticyGlobalVariables.Default.Session.TargetLocation = state.targetLocation;
            GetCurrentMissionAndObjective(state.Id, out int mission, out int objective);
            manager.LastMission   = mission;
            manager.LastObjective = objective;
        }
    }
コード例 #5
0
 public void SaveGameState(GlobalVariableState state)
 {
     Debug.Log($"#Firebase#Saving gameState: {state.CompleteId}.");
     FirebaseWrapper.StartOperation(FirebaseWrapper.OperationGameState);
     FirebaseWrapper.UpdateGameStates(state);
 }