public void AddState(GlobalVariableState state) { if (_freezeStates) { return; } states.Add(state); }
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 ); }
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; }
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; } }
public void SaveGameState(GlobalVariableState state) { Debug.Log($"#Firebase#Saving gameState: {state.CompleteId}."); FirebaseWrapper.StartOperation(FirebaseWrapper.OperationGameState); FirebaseWrapper.UpdateGameStates(state); }