public static void SaveShips(List <ShipData> shipsInProgress, List <ShipData> finishedShips) { BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "/ships.data"; FileStream stream = new FileStream(path, FileMode.Create); ShipsBuildingData saveData = new ShipsBuildingData(shipsInProgress, finishedShips); formatter.Serialize(stream, saveData); stream.Close(); }
public void LoadSceneObjects() { //getting resources GameManager.instance.setResources(PlayerPrefs.GetInt("Resource0"), PlayerPrefs.GetInt("Resource1"), PlayerPrefs.GetInt("Resource2")); DeleteAll("StructureTile"); StructureData[] data = SaveSystem.LoadStructures().data; foreach (StructureData structure in data) { //print ("name " + structure.name); Vector2 structurePosition = new Vector2(structure.position[0], structure.position[1]); // GameObject go = GameObject.Find("SceneManager"); ObjectPairList other = this.GetComponent(typeof(ObjectPairList)) as ObjectPairList; string nameToReturn = structure.name; GameObject loadedObject; //Debug.Log (nameToReturn); if (nameToReturn.EndsWith("(Clone)")) { //Debug.Log(nameToReturn.Split('(')[0].Trim()); loadedObject = other.returnGameObject(nameToReturn.Split('(') [0].Trim()); } else { loadedObject = other.returnGameObject(nameToReturn); } //Modified if (structure.duration > 0) { loadedObject = other.returnGameObject("ConstructionSite"); } GameObject instantiatedObject = Instantiate(loadedObject, structurePosition, Quaternion.identity); StructureInfo script = instantiatedObject.GetComponent <StructureInfo> (); script.X = (int)structurePosition.x; script.Y = (int)structurePosition.y; script.Name = structure.name; script.Level = structure.level; script.Duration = structure.duration; } GameManager.instance.Invoke("updateStructureState", 0.1f); //ship part ShipsBuildingData allShips = SaveSystem.LoadShips(); GameManager.instance.setShipsInProgress(allShips.shipsInProgress); GameManager.instance.setFinishedShips(allShips.finishedShips); }
public static ShipsBuildingData LoadShips() { string path = Application.persistentDataPath + "/ships.data"; if (File.Exists(path)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Open); ShipsBuildingData saveData = formatter.Deserialize(stream) as ShipsBuildingData; stream.Close(); return(saveData); } else { Debug.LogError("no file at " + path); return(null); } }