// Gather together all details needed to save the game and initiate the save. public void GatherSaveDetails() { if (SavingGameAllowed == false) { Debug.Log("Saving the game is disabled."); return; } Collectables.Clear(); Interactables.Clear(); // FindObjectsOfType<Collectable>().Where(a => a.CollectableCollected == true).ToList<Collectable>().ForEach(x => Collectables.Add(new CollectableSave(x.CollectableID, x.CollectableType, x.CollectableCollected))); FindObjectsOfType <Interactable>().ToList <Interactable>().ForEach(x => Interactables.Add(new InteractableSave(x.InteractableID, x.IsDisabled, x.IsLocked, x.IsActivated))); // Hardcoding for the time being... SaveDetails gatheredSaveDetails = new SaveDetails( LoadSaveController.SaveGameLocation, MainGameController.current.player.transform.position, TotalTimePlayed, DateTime.Now, LoadSaveController.LoadedCollectables, //Collectables, Interactables); LoadSaveController.SaveMainGame(gatheredSaveDetails); }
public static void SaveMainGame(SaveDetails saveDetails) { Debug.LogFormat("Saving to...'{0}'", saveDetails.SaveGameLocation); XmlWriter xmlWriter; xmlWriter = XmlWriter.Create("saveGameTest.xml"); xmlWriter.WriteStartDocument(); xmlWriter.WriteWhitespace("\n"); xmlWriter.WriteStartElement("game"); xmlWriter.WriteWhitespace("\n\n"); xmlWriter.WriteComment("Player data."); xmlWriter.WriteWhitespace("\n\t"); xmlWriter.WriteStartElement("player"); xmlWriter.WriteAttributeString("saveName", "saveDataName"); xmlWriter.WriteAttributeString("saveTotalTime", saveDetails.TotalTime.ToString()); xmlWriter.WriteAttributeString("saveCurrentTimestamp", saveDetails.CurrentTimestamp.ToString()); xmlWriter.WriteAttributeString("playerPositionX", saveDetails.PlayerLocation.x.ToString()); xmlWriter.WriteAttributeString("playerPositionY", saveDetails.PlayerLocation.y.ToString()); xmlWriter.WriteAttributeString("playerPositionZ", saveDetails.PlayerLocation.z.ToString()); xmlWriter.WriteWhitespace("\n\t"); xmlWriter.WriteEndElement(); xmlWriter.WriteWhitespace("\n\n"); xmlWriter.WriteComment("This is the list of Collectables."); xmlWriter.WriteWhitespace("\n\t"); xmlWriter.WriteStartElement("collectables"); foreach (CollectableSave Collectable in saveDetails.Collectables) { xmlWriter.WriteWhitespace("\n\t\t"); xmlWriter.WriteStartElement("collectable"); xmlWriter.WriteAttributeString("CollectableID", Collectable.CollectableID); xmlWriter.WriteAttributeString("CollectableType", Collectable.CollectableType.ToString()); xmlWriter.WriteAttributeString("CollectableCollected", Collectable.CollectableCollected.ToString()); xmlWriter.WriteEndElement(); } xmlWriter.WriteWhitespace("\n\t"); xmlWriter.WriteEndElement(); xmlWriter.WriteWhitespace("\n\n"); xmlWriter.WriteComment("Interactables."); xmlWriter.WriteWhitespace("\n\t"); xmlWriter.WriteStartElement("interactables"); // foreach (Interactable interactable in Extend_List.NewFindObjectsOfTypeAll<Interactable>()) { foreach (InteractableSave Interactable in saveDetails.Interactables) { xmlWriter.WriteWhitespace("\n\t\t"); xmlWriter.WriteStartElement("interactable"); xmlWriter.WriteAttributeString("InteractableID", Interactable.InteractableID); xmlWriter.WriteAttributeString("IsActivated", Interactable.IsActivated.ToString()); xmlWriter.WriteAttributeString("IsDisabled", Interactable.IsDisabled.ToString()); xmlWriter.WriteAttributeString("IsLocked", Interactable.IsLocked.ToString()); xmlWriter.WriteEndElement(); } xmlWriter.WriteWhitespace("\n\t"); xmlWriter.WriteEndElement(); xmlWriter.WriteWhitespace("\n"); xmlWriter.WriteWhitespace("\n"); xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); xmlWriter.Close(); }